Работа с программой

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

Продукт 1C-Битрикс: Управление сайтом - технологическое ядро для создания и управления сайтами, экономичный способ разработки, поддержки и развития интернет-проекта.

Программный продукт 1C-Битрикс: Управление сайтом может быть использован как корпоративными заказчиками, так и индивидуальными разработчиками в качестве фундамента для создания новых проектов, а также как инструмент для управления уже существующими сайтами.

1C-Битрикс: Управление сайтом позволяет создавать неограниченное количество сайтов с применением одной копии (лицензии) продукта, размещая ядро и базу данных системы в единственном экземпляре на сервере.

Также программный продукт 1C-Битрикс: Управление сайтом позволяет:

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

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

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


Техническая реализация и системные требования

Система 1C-Битрикс: Управление сайтом разработана на языке программирования PHP4. Продукт может эффективно работать на любой UNIX или Windows платформе.

Минимальные технические требования

  • PHP 4.1.2;
  • Apache 1.3 и выше или MS IIS 5.0* и выше или Eserv 3.0 и выше;
  • MySQL 4.0.18 и выше, Oracle 10g и выше или MSSQL 2000 и выше.

* Для MS IIS PHP должен быть установлен как ISAPI.

В качестве базы данных используется MySQL, MSSQL или Oracle.

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

1C-Битрикс: Управление сайтом (PHP+MySQL)

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

1C-Битрикс: Управление сайтом (PHP+Oracle)

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

1C-Битрикс: Управление сайтом (MS SQL Server/MS SQL Express)

MSSQL-версия продукта предназначена для создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных. База данных Microsoft SQL Server позволяет значительно сократить время выхода решений на рынок, одновременно обеспечивая масштабируемость, отвечающую самым высоким требованиям. В «1C-Битрикс: Управление сайтом» реализована поддержка как версии MS SQL Server 2000, так и новой версии MS SQL Server 2005, включая бесплатную версию MS SQL Server Express Edition.

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

Если вы не можете определиться с выбором платформы, обратитесь в компанию "1C-Битрикс" для консультации. Наши специалисты окажут вам необходимую помощь по всем техническим вопросам функционирования сайта на любой платформе.

Для управления сайтом, созданным с помощью продукта 1C-Битрикс: Управление сайтом, можно использовать любой браузер. Единственное ограничение в административном разделе касается HTML-редактора. Для его правильной работы необходимо наличие браузера Internet Explorer 5 и старших версий.


Поддержка нескольких сайтов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Поддержка нескольких сайтов (многосайтовость)

Система 1C-Битрикс: Управление сайтом позволяет создавать неограниченное количество сайтов с применением одной копии (лицензии) продукта, размещая ядро и базу данных системы в единственном экземпляре на сервере.

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

Система 1C-Битрикс: Управление сайтом разработана с учётом требований компаний, желающих поддерживать несколько сайтов (например, языковых зеркал или тематических секций). Концепция многосайтовости требует существенно меньших ресурсов для поддержки проектов и позволяет осуществлять управления всеми сайтами из одной точки.

Ядро системы 1C-Битрикс: Управление сайтом позволяет использовать следующие типы URL для идентификации сайтов, привязываемых к системе:

  • относительные (/ru/, /en/) - для работы зеркал сайта на одном домене под управлением одной системы;
  • абсолютные корневые (www.site.ru) - для работы различных сайтов под управлением одной системы;
  • абсолютные(www.site.ru/en/) - для работы разрозненных зеркал и/или сайтов под управлением одной системы.

Для создания нескольких сайтов без установки системы в каждой корневой папке каждого сайта или для создания нескольких сайтов, не располагая их в подпапках корневой папки, следует создать два веб-сервера (или виртуальных хоста одного веб-сервера) с разными корневыми папками и в каждой из них, используя средства операционной системы, создать symbolic links папок /bitrix и /upload.

Итак, общие сущности всех проектов на одном хостинге - папки /bitrix, /upload и база данных. Разделение сайтов осуществляется по статическим страницам сервера и по полю Сайт объектов БД (новостей, опросов и т.п.).


Система помощи

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

Справочная система 1C-Битрикс: Управление сайтом предназначена как для пользователей продукта, так и для разработчиков, которые собирают сайты на ядре 1C-Битрикс: Управление сайтом. Некоторые разделы документации (напр., Форум) могут также оказаться полезными посетителям сайтов, собранных на ядре данного продукта.

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

Вместе с тем, настоящая справочная система не содержит такой специфической информации, как, например, запуск системы, её конфигурирование и т.п. Эта информация доступна в виде отдельных руководств и может быть загружена с сервера компании "1C-Битрикс".

Данный раздел содержит обзор документов, доступных на момент выпуска этой версии справочной системы. Каждому документу посвящена отдельная статья, в которой даётся краткое описание руководства и ссылка для его загрузки с сервера компании "1C-Битрикс".

Комплект доступных руководств постоянно расширяется. Наиболее полный набор руководств доступен по следующему адресу: http://www.1c-bitrix.ru/sitemanager/doc.php.


Руководство по установке

Данное руководство предназначено для пользователей системы "1C-Битрикс: Управление сайтом". В документе рассматриваются следующие процедуры.

Установка

Описаны процессы установки:

  • после копирования файлов системы на сервер;
  • с помощью скрипта BitrixSetup;
  • с использованием Windows-инсталлятора (пробная версия);
  • перенос сайта с локального компьютера на удалённый сервер (хостинг);
  • интеграция версии ”статистика“ в существующий сайт;
  • установка PHP под Windows с IIS 6.0: установка и проверка работы PHP;
  • дополнительная справочная информация (файл конфигурации веб-сервера .htaccess, работа с архивами tar.gz, необходимый уровень прав на хостинге и пр.)

Регистрация и загрузка исходного кода

  • регистрация пробной (demo) версии продукта;
  • регистрация закодированной версии продукта с коммерческим лицензионным ключом;
  • загрузка обновлений и исходных текстов.

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Система помощи

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Руководство по интеграции: Быстрый старт

Данный документ предназначен для IT-специалистов компаний, специалистов по веб-технологиям и веб-мастеров, сотрудникам интернет-агентств и студий веб-дизайна. В документе описывается общие правил интеграции дизайна с программным продуктом "1С-Битрикс: Управление сайтом" и построение индивидуальных решений. Цель данного документа - дать общее представление и обеспечить специалиста основными знаниями для выполнения быстрой интеграции своего дизайна с программным продуктом.

В документе рассматриваются следующие аспекты, понимание которых необходимо для начала работы с системой.

Шаблоны и сайты

Рассматриваются основные концепции, положенные в основу архитектуры системы «1С-Битрикс: Управление сайтом»:

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

Структура шаблона. Управление шаблонами

Подробно описываются составные части шаблона сайта и основные операции над шаблонами: добавление, активация, редактирование.

Включаемые области и компоненты

Рассматривается концепция включаемых областей, на основе которой построена сборка динамических страниц сайта, управляемого системой 1С-Битрикс.

Программные компоненты

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

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Система помощи

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Рекомендации по конфигурированию веб-серверов

Это руководство предназначено для технических специалистов и системных администраторов.

Документ раскрывает специфические приёмы конфигурирования серверного ПО, что позволяет в несколько раз увеличить производительность системы в целом, сократить время генерации страниц, увеличить устойчивость системы к пиковым нагрузкам. В данном документе приведены рекомендации по настройке серверного ПО, которые выполняются сотрудниками компании "1C-Битрикс" при конфигурировании проектов с посещаемостью более 10 тысяч уникальных пользователей в день, либо при недостаточности системных ресурсов для обработки меньшей нагрузки. Все рекомендации относятся, в основном, к UNIX или Windows системам, использующим веб-сервер Apache.

Приведённые в документе рекомендации базируются на следующих подходах:

  • уменьшение потребляемой веб-сервером памяти;
  • создание двухуровневой конфигурации Front-end - Back-end;
  • конфигурирование PHP;
  • настройка базы данных MySQL;
  • настройка базы данных Oracle.

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Система помощи

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

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

Шаблоны и сайты

Рассматриваются основные концепции, положенные в основу архитектуры системы «1C-Битрикс: Управление сайтом»:

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

Управление шаблонами. Структура шаблона

Подробно описываются составные части шаблона сайта и основные операции над шаблонами: добавление, активация, редактирование.

Включаемые области и компоненты

Рассматривается концепция включаемых областей, на основе которой построена сборка динамических страниц сайта, управляемого системой 1C-Битрикс.

Структура файлов

Описывается файловая структура сайта, работающего на 1C-Битрикс: Управление сайтом.

Типовая страница

Показывается структура кода стандартной страницы в системе.

Свойства страниц и папок

Описываются некоторые строковые свойства (properties) страниц, позволяющие управлять их работой.

Создание шаблона сайта

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

Работа с компонентами

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

Использование файлов языковых сообщений

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

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Система помощи

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Руководство по конфигурированию многосайтовых систем

Документ описывает порядок конфигурирования программного продукта "1C-Битрикс: Управление сайтом" и серверного ПО для правильной работы многосайтовой версии программного продукта в двух возможных конфигурациях под управлением веб-сервера Apache:

  • продукт и все сайты работают под управлением одной копии веб-сервера Apache;
  • каждый сайт работает под управление отдельной копии веб-сервера Apache или отдельного виртуального веб-сервера.

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Система помощи

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Руководство по управлению рассылкой почтовых сообщений

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

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

Настройки модуля

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

Организация рассылки почтовых сообщений в ручном режиме

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

Управление выпусками (сообщениями) рассылок

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

Управление автоматическими рассылками сообщений

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

Управление подписчиками

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

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


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

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

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

Руководство рассматривает создание каталога товаров как процесс, состоящий из следующих главных этапов.

Создание Каталога товаров

Детально описываются процедуры: создания типа информационного блока Каталог книг; создания каталогов Книги, Авторы и Рецензии; добавления разделов каталога; создания разделов и подразделов каталога; добавления товаров в каталог.

Размещение каталога в публичном разделе сайта

Приводятся пошаговые инструкции для: создания страницы со списком каталогов; размещения каталогов; создания страниц:

  • списка разделов и товаров каталога;
  • просмотра полного списка элементов раздела каталога;
  • детального просмотра элемента каталога;
  • просмотра таблицы сравнения товаров;
  • просмотра связанных элементов (товаров).

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Руководство по созданию раздела новостей

В руководстве рассматривается пример использования модуля Информационный блок системы «1C-Битрикс: Управление сайтом» в качестве инструмента для создания на сайте раздела новостей. Данный модуль системы обладает широкими возможностями по созданию новостных блоков. Например, если вы хотите оповещать ваших посетителей о новостях интернет-магазина, то для этого может быть создан информационный блок Новости магазина, в котором будут представлены новые поступления товара, информация о конкурсах, о доставке товаров и т.д. В руководстве приведён пример создания блока новостей Новости компании.

Руководство описывает создание раздела новостей в следующей последовательности.

Создание блока новостей

  • создание нового типа информационных блоков Новости (News);
  • создание информационного блока (Новости компании);
  • создание разделов информационного блока (в примере - Услуги);
  • добавление новостей.

Размещение новости в публичном разделе сайта

  • создание страницы со списком новостей;
  • создание страницы детального просмотра новостей.

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Руководство по настройке прав доступа

Система «1C-Битрикс: Управление сайтом» позволяет решить актуальную для любого сайта задачу разграничения доступа к управлению его ресурсами. В системе реализован принцип централизованного управления пользователями сайта через группы пользователей. Система даёт администратору сайта неограниченные возможности управления доступом и позволяет:

  • организовать управление сайтом или отдельными его разделами совместно несколькими пользователями;
  • запретить доступ определённым группам пользователей ко всему сайту или к его разделам в публичной части;
  • управлять доступом к административному разделу сайта;
  • организовать поэтапное создание и редактирование элементов сайта в режиме документооборота (при наличии модуля Документооборот);
  • создавать на сайте закрытые разделы и форумы;
  • разрешать скачивание, добавление документов на сайт, просмотр рекламы или какой-либо другой информации пользователям, относящимся только к определённым группам.

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

Уровни прав доступа

В этом разделе объясняется, как установить права на доступ к каталогам и файлам; к модулям системы и операциям в них.

Управление правами доступа к статическим страницам

Раздел содержит инструкции по организации совместного управления содержанием статической страницы сайта (содержащей неизменяемые текст и графические элементы) путём создания и настройки группы пользователей, настройки прав доступа.

Управление правами доступа к динамическим страницам сайта

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

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Руководство по созданию и размещению веб-форм

В руководстве описан процесс создания и размещения веб-формы на примере формы обратной связи. Такая веб-форма может быть использована администратором для получения сообщений и вопросов от посетителей сайта. В примере веб-форма содержит 5 полей: ваше имя, компания, e-mail, телефон, ваши вопросы.

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

Создание и настройка веб-формы.

Пошаговые инструкции по созданию веб-формы, навигации по разделам, настройка веб-формы, создание вопросов веб-формы, добавление статусов веб-формы.

Размещение веб-формы на странице сайта

Рассказывается, как создать страницы для заполнения веб-формы, списка результатов, просмотра и редактирования результатов.

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Руководство пользователя

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

Руководство содержит развёрнутое и понятное описание следующих важнейших понятий и операций, требуемых для успешной поддержки сайта обычным пользователем:

  • регистрация и авторизация в системе;
  • разделы;
  • страницы сайта;
  • включаемые области страницы;
  • управление цепочкой навигации;
  • управление меню;
  • визуальные компоненты;
  • карта сайта;
  • версия для печати;
  • поиск.

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Руководство маркетолога по работе с модулем статистики

Данный документ подробно описывает методику работы модуля статистики продукта "1С-Битрикс: Управление сайтом", технологию учёта рекламных кампаний и рекомендации по настройке сайта для наиболее полного сбора информации о значимых событиях.

Руководство предназначено для маркетологов компаний и может использоваться как руководство по планированию и проведению рекламных кампаний с использованием продукта "1С-Битрикс: Управление сайтом". Документ содержит следующие главы, текст которых позволит любому маркетологу начать рекламную кампанию и продвижение товаров в интернете, даже при отсутствии практического опыта в области электронной коммерции.

  • термины- приводятся определения понятий, наиболее часто встречающихся в интернет-коммерции;
  • принципы сбора статистики- раскрываются теоретические и практические предпосылки к сбору статистических данных, а также методы их интерпретации;
  • рекламные кампании - поясняются принципы и приводятся примеры подходов к проведению рекламных кампаний в интернете;
  • начало рекламной кампании- на конкретных примерах объясняется, как начать рекламную кампанию с помощью системы;
  • интерпретация статистических результатов - раскрываются теоретические и практические подходы к трактовке результатов статистики;
  • события - объясняются принципы эффективного использования механизма событий в рекламных кампаниях;
  • пробные рекламные кампании- приводятся практические приёмы проведения малозатратных и в то же время эффективных рекламных кампаний.

Загрузка

  • Руководство в формате PDF
  • Руководство в формате Microsoft Word


Начало работы и авторизация

Управление сайтом осуществляется через административный раздел, зайти в который могут только зарегистрированные пользователи. Для обычных посетителей сайта доступ в административный раздел закрыт.

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

  1. Откройте в браузере страницу http://www.имя_сайта/admin/. Вы будете перенаправлены на страницу http://www.имя_сайта/bitrix/admin/. Все административные файлы сайта находятся в каталоге /bitrix/. Имя каталога выбрано не случайно. Уникальность названия позволяет с уверенностью сказать, что папки с подобным именем на вашем сайте не будет.
  2. В форме авторизации введите ваш логин (имя доступа) и пароль.

    Если на странице настроек Главного модуля системы выбрана опция Разрешить запоминание авторизации, то в форме авторизации появится поле Запомнить меня на этом компьютере. Если вы отметите это поле, то при последующих посещениях административного раздела с этого компьютера, вам не придётся ещё раз проходить процедуру авторизации.
  3. Нажмите кнопку Авторизоваться.

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

Система 1С-Битрикс: Управление сайтом позволяет осуществлять быстрый доступ к управлению сайтом непосредственно из публичного раздела с помощью административной панели, содержащей набор кнопок для выполнения стандартных операций над элементами сайта:

Административная панель отображается только для авторизованных пользователей. Набор кнопок, выводимый на административной панели, зависит от уровня доступа пользователя к управлению ресурсами сайта. Полный набор кнопок отображается для администраторов сайта.


Завершение работы

Для того чтобы закончить сеанс и перейти в режим неавторизованной работы, нажмите кнопку Закончить сеанс [image] на панели управления в публичной части или кнопку Выйти, расположенную на панели управления в административном разделе.


Основные элементы интерфейса

В этом разделе

  • Административная панель управления
  • Область выбора функций
  • Область доступа к функциям, содержанию и структуре
  • Основная рабочая область
  • Контекстная панель
  • Формы отчётов
  • Фильтр
  • Таблица элементов
  • Меню действий
  • Формы редактирования
    •
  • Управление общесистемными настройками интерфейса. Поведение мыши
  • Поведение мыши по умолчанию
    •

    Интерфейс административного раздела системы 1C-Битрикс: Управление сайтом логически разграничен на области, обеспечивающие доступ к функциональным возможностям системы. Интерфейс системы построен по иерархическому принципу: вышестоящие области интерфейса переключают зависимые области в тот или иной режим работы. Это позволяет скрыть функциональные возможности системы, в которых нет потребности в данный момент, и вынести на первый план требуемые функции. Такая организация интерфейса обеспечивает его наглядность и неперегруженность.

    Интерфейс содержит следующие области.

    Административная панель управления

    Административная панель управления содержит общие команды, которые могут понадобиться при управлении сайтом.

    Команда | Описание
 | Открывает публичный раздел сайта (т.е. раздел, доступный посетителям). Удерживая клавишу Shift, можно открыть публичный раздел в новом окне браузера.
 | Открывает страницу редактирования включаемых областей.
 | Открывает главную страницу административного раздела сайта (Рабочий стол).
 | Добавляет текущую страницу в список избранного. Страница добавляется со всеми активными в данный момент настройками фильтра.
 | Открывает форму настроек активного модуля. Например, если открыт раздел Управление структурой, эта кнопка открывает форму настроек модуля Управление структурой.
 | Открывает (в отдельном окне) раздел справочной системы по текущей форме.
 | Открывает форму получения обновлений системы.
 | Позволяет переключиться на другой (установленный в системе) язык административного интерфейса.
 | Завершает авторизованный сеанс в административном разделе.

    Область выбора функций

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

    Набор функций Контент содержит инструменты для управления информационными блоками, структурой сайта (т.е. папками и файлами), а также настройки документооборота и управления документами.

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

    Раздел Веб-аналитика полностью посвящён функциям сбора, обработки и отображения статистики по сайтам. Этот раздел присутствует, только если установлен модуль Статистика.

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

    Область доступа к функциям, содержанию и структуре

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

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

    Выбирая пункты дерева-меню, можно получить доступ непосредственно к тем функциям, которым они соответствуют. При этом, рабочая область (4) будет отображать интерфейс для работы именно с этими функциями.

    Основная рабочая область

    Это основная область, в которой происходит большинство операций по управлению сайтом: просмотр элементов, составляющих контент сайта (например, информационных блоков, баннеров и т.п.); добавление контента; создание и удаление папок и файлов; настройка меню и т.д. Такие операции реализуются формами двух основных видов:

    • формы отчетов. Формы отчетов предназначены для просмотра элементов в форме таблиц, а также, в отдельных случаях (напр., формы статистики) - в форме графиков и диаграмм;
    • формы редактирования. Такие формы применяются для добавления и правки элементов контента, а также для задания настроек модулей и системы в целом.

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

    Ссылка на текущую страницу

    Эта пиктограмма ( [image], вверху справа) содержит ссылку на текущую страницу (с учётом переходов по AJAX). Скопировать ссылку в буфер обмена можно, нажав на пиктограмме правой кнопкой мыши и выбрав команду Копировать ярлык. Ссылка на страницу может понадобиться вам, например, при обращении с службу технической поддержки компании 1C-Битрикс.

    Контекстная панель

    Контекстные панели могут отображаться как на формах отчетов, так и на формах редактирования. Если отображаемая форма позволяет производить какие-либо действия в отношении отображаемых элементов, ниже фильтра на форме может располагаться контекстная панель, содержащая такие команды. Например, форма отчета Каталог: Информационные блоки имеет такую контекстную панель:

    Первая кнопка панели этой формы позволяет добавить новый информационный блок.

    Обратите внимание на то, что большинство контекстных панелей содержит кнопки Excel и Настроить. Кнопка Excel экспортирует список в формат Microsoft Excel. Кнопка Настроить выводит диалоговое окно, в котором пользователь может выбрать колонки, которые требуется отобразить в таблице отчёта данной формы, а также задать некоторые параметры, применяемые по умолчанию (поле и направление сортировки и т.п.). Настройки каждой отдельной формы сохраняются для текущего авторизованного пользователя.

    Для применения выбранных настроек нажмите кнопку Сохранить. Для применения настроек по умолчанию нажмите Сбросить.

    Формы отчётов

    Формы отчётов обычно выводятся при выборе какого-либо пункта в дереве-меню области доступа к функциям, содержанию и структуре. Формы отчётов показывают подробную (обычно - наиболее важную) информацию об отображаемых элементах. Например, выбрав пункт Баннеры в разделе Реклама, пользователь получает полный отчет об имеющихся в системе баннерах:

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

    Формы отчетов имеют следующие общие элементы.

    Фильтр

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

    Типичный фильтр системы выглядит так:

    Кнопка Показать фильтр отображает фильтр и все критерии поиска. Нажатие кнопки Свернуть фильтр скрывает его, оставляя видимой лишь панель управления фильтра. Нажав кнопку Дополнительно, можно выбрать, какие поля фильтра следует показать, а какие - скрыть.

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

    Таблица элементов

    Таблица - основное средство группировки и отображения информации в системе. Несмотря на своё разнообразие, многие таблицы имеют схожие поля.

    Колонка флажков

    Колонка флажков позволяет выбрать один или более элементов для выполнения над ними каких-либо действий. Установка флажка в заголовке таблицы приводит к выбору всех элементов таблицы.

    Действия над отмеченными элементами производятся путём выбора требуемой команды в панели действий, расположенной ниже таблицы:

    Обратите особое внимание на команду Быстрое редактирование. С ее помощью можно изменить наиболее важные и часто используемые свойства одновременно для всех отмеченных элементов, отображаемых в таблиц. Наиболее важно то, что это даёт возможность правки свойств элементов, не покидая текущей формы отчёта (то есть, без переключения в форму редактирования).

    Например, находясь в форме Каталог: Информационные блоки, можно отметить для быстрой правки инфоблоки Книги и Авторы:

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

    Отредактировав параметры элементов, нажмите кнопку Сохранить для внесения изменений.

    Меню действий

    Колонка Меню действий( [image] ) содержит кнопки [image], нажатие на которые приводит к появлению контекстного меню, в котором можно выбрать желаемое действие, допустимое над элементом таблицы. Например, элементы таблицы формы Каталог: Информационные блоки предполагают такие действия:

    Формы редактирования

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

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

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

    Для краткости, в справочной системе используется термин вкладка как синоним страницы свойств.

    Некоторым пользователям (в особенности, привыкшим к интерфейсу предыдущих версий системы) бывает удобнее просматривать все поля формы в одной вкладке (то есть, не использовать вкладки вообще). Для показа всех полей в одном окне (или возврата в табулярный режим) нажмите кнопку в правой части области закладок:

    Управление общесистемными настройками интерфейса. Поведение мыши

    Пользовательский интерфейс системы 1C-Битрикс: Управление сайтом не только предлагает уникальные возможности и функциональность, призванные облегчить работу с сайтом, но и позволяет с лёгкостью настраивать и запоминать их для каждого зарегистрированного пользователя. Для настройки некоторых функций интерфейса "под себя", откройте форму Настройка интерфейса пользователя (Настройки -> Настройки продукта -> Интерфейс):

    Вкладка Настройки позволяет:

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

    По умолчанию, нажатие правой кнопки мыши в таблице отчёта выводит такое же меню, что и при нажатии кнопки меню действий (см. выше). Такому поведению соответствует активная опция Разрешить контекстное меню в списках. Также вы можете указать системе, что меню действий следует отображать, только если в момент нажатия кнопки мыши также нажата клавиша Ctrl клавиатуры.

    Если эта настройка отключена, нажатие правой кнопки в таблицах всегда отображает стандартное контекстное меню браузера.

    Раздел Общие настройки позволяет администратору назначить указанные параметры всем зарегистрированным пользователям. Раздел Удаление настроек позволяет сбросить собственные настройки, а также настройки других пользователей системы.

    Поведение мыши по умолчанию

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

    • левый клик на кнопке меню действий; правый клик на строке таблицы отчёта - вывод меню действий;
    • Ctrl + правая кнопка - выводит стандартное меню браузера;
    • двойной клик на строке таблицы отчёта - открывает сущность, отображаемую в строке, для редактирования;
    • Shift + двойной клик на строке таблицы отчёта - открывает сущность для редактирования в новом окне.


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

Поля фильтров с символом "?" позволяют вводить запросы.

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

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

Пётр & Иванов

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

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

Пётр | Иванов

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

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

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

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

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

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

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

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

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

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

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

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


Управление статикой

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Управление структурой сайта

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

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


Менеджер файлов

В этом разделе

  • Контекстная панель
  • Поля менеджера файлов
  • Операции над папками и файлами
  • Редактирование меню раздела
    •

    Управление структурой сайта осуществляется в Менеджере файлов: Контент -> Структура сайта. Менеджер файлов организован подобно правой панели Проводника Windows и представляет собой каталог папок и файлов, на верхнем уровне иерархии которого располагаются сайты, работающие под управлением системы.

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

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

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

    Информация об имени файла или папки, размере, дате последнего изменения, уровне прав доступа к файлу показаны в форме таблицы. Нажав на название папки (оно представлено в виде ссылки), можно перейти внутрь этой папки. C помощью двойного щелчка по названию файла, можно открыть данный файла для редактирования.

    Контекстная панель

    Меню менеджера файлов служит для управления содержимым папки, а также настройки ее свойств.

    Кнопка | Описание
Новая папка | Создать новую папку в текущем каталоге.
Новый файл | Создать новый файл в текущей папке.
Загрузить файл | Загрузить файл в текущую папку с локального компьютера.
Добавить меню | Добавить меню в данный раздел.
Свойства папки | Просмотр и изменение свойств текущей папки (изменение заголовка раздела; управление правами доступа к разделу, а также значениями свойств страниц раздела).
Показать права на доступ для | Показать в колонке Права на доступ продукта уровень прав доступа к отображаемым файлам и папкам для выбранной группы пользователей. См. также Права доступа
Путь | Для того чтобы перейти в определённую директорию сайта, укажите путь к папке в этом поле и нажмите кнопку "OK".
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Поля менеджера файлов

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

    Операции над папками:
    • Открыть - открыть папку в менеджере файлов;
    • Свойства папки - перейти к форме редактирования свойств папки;
    • Переименовать - изменить название папки. Пункт меню действует при работе с физической структурой сайта;
    • Удалить - удалить выбранную папку;
    • Доступ - переход к форме изменения прав доступа к данной папке.
    Операции над файлами:
    • Редактировать как текст - изменение файла в текстовом формате;
    • Редактировать как HTML - изменение файла в HTML-формате;
    • Редактировать как PHP - изменение PHP-кода файла;
    • Редактировать в модуле документооборота - изменение файла с регистрацией в модуле документооборота;
    • Просмотр файла - просмотр содержимого файла, а также информации о его размере, дате последнего доступа и изменения;
    • Переименовать - изменить название файла. Пункт меню действует при работе с физической структурой сайта;
    • Удалить - удаление файла;
    • Доступ - переход к форме изменения прав доступа к данному файлу.
    Имя | Имя папки или файла.
    Размер файла | Размер файла в байтах.
    Изменен | Дата и время последнего изменения файла или папки.
    Тип Тип элемента списка:
    • Папка;
    • Файл (изображение, архив и т.д.);
    • Системный файл;
    • Текстовый документ;
    • Документ HTML;
    • Скрипт PHP.
    Права на доступ | Права доступа к файлам и папка на уровне операционной системы.
    Права на доступ продукта | Права доступа к файлам и папка для выбранной группы пользователей.

    Операции над папками и файлами

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

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

    Выберите нужное действие в списке и нажмите кнопку "Применить".

    Действие | Описание
Доступ | Открывает форму редактирования прав доступа к выбранным файлам и папкам. Для изменения прав доступа достаточно выбрать право для конкретной группы пользователей и сохранить изменения.
Копировать | Позволяет скопировать выбранные файлы и папки в указанную в поле справа папку. Для выбора папки можно воспользоваться кнопкой [image] .
Перенести | Позволяет переместить выбранные файлы и папки в указанную в поле справа папку. Для выбора папки можно воспользоваться кнопкой [image] .

    Редактирование меню текущего раздела

    Меню текущего раздела показываются в менеджере как файлы с именами вида Меню типа «ХХХ» (например, Меню типа «top»). Для того, чтобы перейти к редактированию меню, достаточно кликнуть по ссылке с его названием.

    См. также Меню


HTML редактор

В этом разделе

  • Закладка Редактирование
  • Поля HTML-редактора
  • Панель инструментов HTML-редактора
    •
  • Закладка Свойства
  • Закладка Меню
  • Кнопки управления
  • Загрузка графики на сайт
  • Визуальные компоненты
    •

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

    • Редактирование;
    • Свойства;
    • Меню.

    Управлять сайтом с помощью HTML-редактора вы можете с любого компьютера, на котором установлен Internet Explorer версии 5.0 и выше.

    Закладка "Редактирование"

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

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

    Поля HTML-редактора

    Поле | Описание
Шаблон | Шаблон, на основе которого будет создана страница. Например, Стандартная страница, Включаемая область для страницы или Включаемая область для раздела.
Имя файла | Имя создаваемого файла (с указанием расширения). Например, news.php.
Заголовок страницы | Произвольный заголовок страницы. Указанный заголовок будет отображаться в теле страницы.

    Панель инструментов HTML-редактора

    Общие действия
 | Переключение в полноэкранный режим.
 | Изменение настроек визуального редактора.
 | Вырезать выделенный фрагмент и поместить его в буфер обмена.
 | Копировать выделенный фрагмент в буфер обмена.
 | Вставить фрагмент из буфера обмена.
 | Вставить из Word. Позволяет очистить добавляемый текст от дополнительных элементов форматирования (например, стилей).
 | Вставить фрагмент как текст.
 | Выделить все на странице.
 | Отменить выполненное действие.
 | Вернуть отменённое действие.
 | Отобразить или скрыть границы таблиц.
 | Создать таблицу.
 | Добавить якорь.
 | Вставить гиперссылку.
 | Удалить гиперссылку.
 | Добавить изображение.
 | Вставить специальный символ.
 | Проверка орфографии.
 | Вставка Flash-ролика.
 | Переключение в режим визуального редактирования.
 | Переключение в режим редактирования исходного кода страницы.
 | Переключение в совмещённый режим редактирования.
 | Выход.
 | Создание новой страницы.
 | Сохранить изменения на странице.
 | Сохранение страницы с помощью менеджера файлов.
 | Переход к форме управления свойствами страницы.
Свойства текста
 | Цвет фона.
 | Цвет текста.
Кнопки форматирования текста
 | Полужирный.
 | Курсив.
 | Подчёркнутый.
 | Выравнивание абзаца по левому краю.
 | Выравнивание абзаца по центру.
 | Выравнивание абзаца по правому краю.
 | Выравнивание абзаца по ширине.
 | Нумерованный список.
 | Маркированный список.
 | Уменьшить отступ.
 | Увеличить отступ.
 | Добавить горизонтальный разделитель.
 | Удалить форматирование.
Элементы выбора начертания
 | Предопределённые стили текста (CSS). Примечание: Для сохранения дизайна сайта при форматировании текста рекомендуется пользоваться предопределёнными стилями.
 | Уровень (формат) текста. Например, Заголовок1, Заголовок2, ..., Основной текст.
 | Шрифт.
 | Размер шрифта.
 | Шаблон (дизайн) сайта, в соответствии с которым будет отображаться страница.
Дополнительно
 | Вставить разделитель страниц для печати.
 | Вставить разделитель страниц <BREAK/> для вывода постраничной навигации.
Свойства
Секция Свойства служит для отображения и изменения параметров форматирования выделенного текста, а также служит для отображения и настройки параметров визуальных компонентов, размещённых в теле страницы.

    Закладка "Свойства"

    Данная форма предназначена для задания и редактирования значений свойств страницы, а также для управления значениями тегов META: ключевыми словами (keywords) и описанием (description) страницы.

    Поле | Описание
Код | Название свойства.
Значение | Поле для задания значения свойства.

    Примечание: Кнопка "ещё" добавляет пустую строку для создания нового свойства текущей страницы (данное свойство будет использоваться только для текущей страницы). При создании свойства в поле "Код" необходимо указать код (мнемоническое имя) свойства. Код свойства задается символами латинского алфавита.

    Закладка "Меню"

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

    Поле | Описание
    Добавить страницу в меню | Если вы хотите добавить пункт, ссылающийся на созданную страницу, в меню текущего раздела сайта, установите флаг в этом поле.
    Тип меню | Выберите тип меню, в которое будет добавлена ссылка на созданную страницу.
    Пункт меню Укажите, каким образом ссылка на страницу будет добавлена в меню:
    • Добавить новый- будет создан новый пункт меню;
    • Привязать к существующему - ссылка на страницу будет добавлена в существующий пункт меню.
    Значение данного поля определяет набор нижеследующих полей.
    "Добавить новый"
    Название нового пункта меню | Название нового пункта меню, ссылающегося на созданную страницу.
    Вставить перед пунктом | В данном поле можно указать положение пункта в меню. Например, если значение поля "Последний пункт", то создаваемый пункт будет добавлен последним пунктом в меню раздела.
    "Привязать к существующему"
    Пункт | Поле для выбора существующего пункта меню, в который будет добавлена ссылка на созданную страницу.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение созданной страницы.
Применить | Сохранение выполненных изменений. Продолжение редактирования страницы.
Отменить | Отмена внесённых изменений.

    Загрузка графики на сайт

    HTML-редактор позволяет загружать графику с локального диска и размещать ее на веб-странице. Процесс размещения изображения очень прост:

    1. Выберите место для изображения на странице, установив туда позицию курсора, и нажмите кнопку [image] на панели редактора.
    2. Перейдите к форме загрузки изображения, нажав кнопку [image].
    3. С помощью Менеджера файлов выберите папку на сервере, в которую будет сохранено изображение (обычно images).
    4. На закладке "Загрузить файл" укажите путь к загружаемому файлу на локальном компьютере. Для выбора файла воспользуйтесь кнопкой "Обзор".
    5. Нажмите кнопку "Загрузить". Указанный файл будет загружен в выбранную папку.

    6. Если отмечена опция Открыть файл после загрузки, то после нажатия кнопки Загрузить изображение будет открыто в форме добавления изображения.
    7. Если необходимо, укажите дополнительные параметры изображения: ширину, высоту, толщину рамки и т.д.
    8. Нажмите кнопку "Сохранить".

    Визуальные компоненты

    Компоненты являются блоками, с помощью которых строится публичная часть сайта. Они позволяют повторно использовать единожды написанный и отлаженный код в рамках одного сайта или на разных сайтах. Визуальные средства среды "1C-Битрикс: Управление сайтом" позволяют размещать и настраивать компоненты без написания кода. Поставляемые с продуктом системные компоненты регулярно обновляются, при этом расширяется функционал компонентов и исправляются возможные ошибки.

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

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

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

    Компоненты включают набор параметров, определяющих поведение компонента. Основная особенность компонентов заключается в том, что они позволяют управлять данными параметрами через визуальный интерфейс продукта: после размещения компонента в рабочей области внизу страницы отобразится панель свойств компонента. Например, панель свойств компонента "Новости" имеет следующий вид:

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


Меню

В этом разделе

  • Типы меню
  • Режимы редактирования меню
    •

    Использование меню обеспечивает удобство навигации по разделам и страницам сайта. Система 1C-Битрикс: Управление сайтом позволяет полностью управлять меню веб-сайта:

    • добавлять новые пункты меню, ссылающиеся на страницы и разделы сайта;
    • изменять названия и ссылки пунктов меню;
    • управлять условиями показа и параметрами пунктов меню;
    • удалять пункты меню.

    Система 1C-Битрикс: Управление сайтом не устанавливает никаких ограничений на использование меню сайта. Количество и типы используемых на страницах сайта меню определяются шаблоном дизайна сайта. Вид меню в публичном разделе сайта определяется шаблоном меню.

    Типы меню

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

    Обычно на сайте используется два типа меню:

    • Главное меню (обычно верхнее), используемое для навигации по разделам сайта;
    • Дополнительное меню (обычно левое или правое), используемое для навигации по подразделам и страницам раздела сайта.

    Обратите внимание!
    По умолчанию меню родительского раздела используется во всех подразделах сайта, если для них не создано собственное меню.
    Например, главное меню сайта предназначено для отображения ссылок на основные разделы сайта. Поэтому обычно главное меню создаётся только для корневой папки сайта и отображается во всех разделах сайта.
    Второстепенное меню используется для отображения ссылок на документы и подразделы внутри раздела. Поэтому обычно второстепенное меню создаётся отдельно для каждого раздела сайта.

    На сайте могут использоваться также и другие типы меню, например, нижнее. Используемые на сайте типы меню указываются в настройках модуля Управление структурой.

    Режимы редактирования меню

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

    • Для того чтобы приступить к управлению меню из публичного раздела, нужно переключиться в режим отображения включаемых областей с помощью кнопки [image] на административной панели, а затем нажать на иконку [image], расположенную в правом верхнем углу меню или области для размещения меню.
    • Для создания меню в менеджере файлов выберите пункт Добавить меню. Для того чтобы отредактировать меню раздела, нужно перейти в папку данного раздела и кликнуть по ссылки с названием нужного меню, например, Меню типа "top".

    Система предусматривает два режима редактирования меню.

    • Упрощённый режим. Редактирование меню в упрощённом режиме позволяет быстро добавить новые пункты, указав только ссылку на соответствующую страницу или раздел и порядок, в котором пункты меню будут показаны в публичном разделе.
    • Расширенный режим. При редактировании меню в расширенном режиме вы можете указать дополнительные ссылки для подсветки, задать условие отображения и параметры пункта меню.

    Переключение между режимами выполняется с помощью пункта Расширенный/Упрощённый режим в меню страницы редактирования.


Редактирование меню

В этом разделе

  • Контекстная панель
  • Упрощённый режим
  • Расширенный режим
  • Кнопки управления
    •

    Форма редактирования меню предназначена для создания нового и редактирования пунктов уже существующего меню.

    Контекстная панель

    Пункт | Описание
Каталог | Переход в папку, открытую в данный момент в менеджере файлов.
Расширенный/ Упрощённый режим | Переключение между режимами редактирования.
Редактировать как файл | Переключение в режим редактирования кода меню. Кнопка отображается при редактировании существующего меню.
Удалить меню | Удаление редактируемого меню.

    Редактирование меню - упрощённый режим

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

    Поле | Описание
Тип меню | Тип создаваемого меню.
Пункты меню
Название | Название пункта меню. Именно это название будет показано в меню в публичной части.
Ссылка | Ссылка на страницу или раздел сайта.
Сортировка | Порядок, в котором будут расположены пункты меню. Чем меньшее число вы укажете, тем выше будет расположен данный пункт.
Удалить | Удаление пункта меню. Для того чтобы удалить пункт меню, установите флаг в это поле и нажмите кнопку "Сохранить" или "Применить".

    Редактирование меню - расширенный режим

    Расширенный режим, в дополнение к полям, показываемым в упрощённом режиме, позволяет изменять значения дополнительных параметров пунктов меню.

    Поле | Описание
    Тип меню | Тип создаваемого меню.
    Шаблон меню | Если для отображения меню будет использоваться отдельный шаблон, то в данном поле можно указать путь к этому шаблону.
    Пункты меню
    Название | Название пункта меню. Именно это название будет показано в меню в публичной части.
    Ссылка | Ссылка на страницу или раздел сайта.
    Сортировка | Порядок, в котором будут расположены пункты меню. Чем меньшее число вы укажете, тем выше будет расположен данный пункт.
    Удалить | Удаление пункта меню. Для того чтобы удалить пункт меню, установите флаг в это поле и нажмите кнопку "Сохранить" или "Применить".
    Дополнительные ссылки для подсветки В данном поле указываются страницы сайта, при переходе на которые также будет подсвечиваться (выделяться) создаваемый пункт меню.

    Например, пункт меню Siemens ссылается на страницу со списком телефонов соответствующей марки (/catalog/phone/section.php). Если вы хотите, чтобы при просмотре детальной информации о каждой модели телефона также выделялся пункт меню Siemens, то в этом поле нужно указать путь к странице с детальной информацией о модели телефона (например, /catalog/phone/element.php).

    Путь к страницам задается относительно корня сайта. Если все страницы, при переходе на которые должен быть подсвечен пункт меню, хранятся в одной папке сайта, то в поле "Дополнительные ссылки для подсветки" можно указать путь к данной папке относительно корня сайта. Например, /catalog/phone/.
    Тип условия Тип условия, при выполнении которого пункт меню будет показываться посетителям:
    • Для папки или файла: страница или подраздел текущего раздела сайта, в котором будет показываться данный пункт меню;
    • Для групп пользователей: группы пользователей, для которых будет показываться данный пункт;
    • Период времени: период времени, в течение которого пункт меню будет показываться посетителям;
    • Параметр в URL: параметр в URL страницы, при наличии которого пункт меню будет показан посетителям;
    • Выражение PHP: произвольное условие на языке PHP. Условие должно быть указано так, как оно выглядит внутри оператора if(). При формировании страницы с помощью оператора if() осуществляется проверка условия на выполнение. Если условие выполняется (т.е. выражение принимает значение true), то пункт меню будет показан пользователю.
      Например, с помощью условия $USER->IsAuthorized() можно проверять, является ли текущий пользователь авторизованным на сайте.
    Условие | Условие, при выполнении которого будет отображаться создаваемый пункт меню.
    Параметры Здесь могут указываться любые параметры, используемые при построении шаблоном пункта меню. Параметры хранятся в ассоциированном массиве $PARAMS в виде пар "имя => значение". При построении меню по шаблону, в самом шаблоне может быть добавлена проверка параметра, например:

if ($PARAMS["MY_PARAM"]=="Y")
    или подставлено его значение:

<a href='".$link."'
 class='".$clrtext."'
 title='".$PARAMS["ALT"]."'>".$TEXT."". $clrimg ."</a>

    В поставляемом дистрибутиве продукта для меню используется параметр "Дополнительное выделение пунктов меню", позволяющий выделить первый пункт меню с помощью разделителя. Для этого в поле "Название" параметра необходимо указать SEPARATOR, а в поле "Значение" ввести Y.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений.
Применить | Применение внесённых изменений. Продолжение редактирования пунктов меню.
Отменить | Отмена внесённых изменений.


Права доступа

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления
    •

    Управление доступом пользователей к страницам и разделам сайта выполняется с помощью инструментов Менеджера файлов: Контент -> Структура сайта.

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

    • Установить флаг в поле рядом с названием папки или файла (уровень прав доступа может быть настроен одновременно для нескольких файлов и папок);
    • Выбрать в поле Действия, расположенном на панели управления внизу страницы, пункт Доступ и нажать кнопку "Применить".

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

    Контекстная панель

    Кнопка | Описание
Каталог | Переход в папку, открытую в данный момент в менеджере файлов.

    Поля формы

    Поле | Описание
    Группа | Группа пользователей сайта, для которой выполняется настройка прав доступа. Управление группами пользователей осуществляется в модуле Пользователи.
    Право Поле для изменения текущего права доступа группы пользователей к файлу или разделу. Вы можете назначить следующие уровни доступа для разных групп пользователей:
    • Запрещён – доступ пользователей к данной папке или файлу закрыт;
    • Чтение – пользователям разрешено просматривать информацию файла или папки;
    • Запись – пользователи могут создавать, изменять и удалять файлы;
    • Полный доступ – пользователям разрешается не только изменять файлы, но и управлять правами доступа других пользователей;
    • Наследовать – для выбранных файлов или папок будут назначены те же права, что и для вышележащей папки;
    • Документооборот - пользователям разрешена работа с файлами в документоообороте.
    Текущее право | Право доступа к файлу или разделу, которым группа пользователей обладает в данный момент.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение выполненных настроек.
Применить | Сохранение выполненных настроек. Продолжение изменения прав доступа.
Сбросить | Отмена внесённых изменений.


Папки

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание новой папки

В этом разделе

  • Контекстная панель
  • Поля формы
  • Пример создания раздела
    •

    Данная форма открывается всякий раз, когда вы выбираете пункт меню Новая папка в менеджере файлов или нажимаете кнопку [image] на административной панели в публичном разделе сайта. Новая папка создаётся в той папке, которая открыта в настоящее время в менеджере. Например, если у вас открыта папка /site2/about/, то новая папка будет добавлена в раздел /about/.

    Контекстная панель

    Кнопка | Описание
Каталог | Переход в папку, открытую в данный момент в менеджере файлов.

    Форма создания новой папки

    Поле | Описание
Имя папки | Название новой папки. Имя папки должно содержать только латинские символы.
Название раздела | Название нового раздела, как оно будет показано в цепочке навигации в публичной части.
Создать пункт меню | Если эта опция включена, ссылка на создаваемый раздел будет добавлена в указанное ниже меню.
Меню | Тип меню, в которое должна быть добавлена ссылка на создаваемый раздел.
Название пункта | Текст пункта меню, как он будет показан в публичной части сайта.
Создать индексную страницу раздела | Если эта опция включена, сразу же после создания раздела в нем будет создан файл index.php. Это позволит открывать раздел сайта без указания имени страницы, например: http://yoursite.ru/site2/about/ourdepartment/, - пользователи будут автоматически перенаправляться на индексную страницу раздела.
Шаблон | Шаблон, на основе которого будет создана индексная страница.
Перейти к редактированию | Если эта опция включена, после создания раздела откроется редактор файлов, в котором можно будет изменить и наполнить созданную индексную страницу.

    Пример создания раздела

    1. Перейдите в менеджер файлов: Настройки -> Структура сайта.
    2. Нажмите кнопку Новая папка на контекстной панели страницы.
    3. Введите имя папки. Имя папки должно содержать только латинские символы.
    4. Введите название раздела. Именно это название будет отображено в цепочке навигации в качестве ссылки на созданный раздел.
    5. Отметьте флажком поле Создать индексную страницу раздела, чтобы добавить в новую папку файл index.php. При открытии нового раздела сайта в браузере, по умолчанию первой будет показана эта страница.
    6. Выберите шаблон индексной страницы. В дистрибутив продукта включены следующие шаблоны страниц: Стандартная страница, Включаемая область для страницы или Включаемая область для раздела.
      • Шаблон Стандартная страница применяется для всех страниц сайта и представляет собой текстовое сообщение Text here… без определённого стиля.
      • Шаблон Включаемая область для страницы применяется для включаемых областей отдельной страницы сайта.
      • Шаблон Включаемая область для раздела применяется при создании включаемой области для всех страниц раздела сайта.
    7. Отметьте флажком поле Перейти к редактированию, чтобы приступить к редактированию индексной страницы непосредственно после сохранения раздела.
    8. Отредактируйте страницу по своему усмотрению.
    9. Нажмите кнопку "Сохранить", чтобы сохранить файл в новой папке.


Свойства папки

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления
    •

    Перейти к управлению свойствами папки можно, выбрав пункт Свойства папки в меню менеджера файлов либо нажав кнопку [image] на административной панели.

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

    Контекстная панель

    Кнопка | Описание
Каталог | Переход в папку, открытую в данный момент в менеджере файлов.

    Поля формы

    Поле | Описание
    Заголовок | Заголовок папки, отображаемый в цепочки навигации в качестве ссылки на соответствующий раздел.
    Свойства папки
    Поле | Описание
Код | Название свойства, указанное в настройках модуля Управление структурой.
Значение | Произвольное значение свойства.

    Пустое поле формы служит для создания свойства, значение которого будет использоваться только для страниц данного раздела. В этом случае в поле "Код" указывается код (мнемоническое имя) свойства. Код свойства задается символами латинского алфавита. Кнопка "Ещё" добавляет строку для создания нового свойства страниц текущего раздела.
    Права доступа
    [Группа пользователей] Право доступа группы пользователей к данному разделу. Возможны следующие уровни доступа.
    • Запрещён - доступ запрещён в любой форме, в т.ч. чтение и просмотр свойств.
    • Чтение - пользователю разрешено просматривать содержимое папки.
    • Документооборот - пользователю разрешено редактирование документов в папке через систему документооборота.
    • Запись - пользователю разрешено самостоятельно изменять файлы папки.
    • Полный доступ - пользователю разрешено самостоятельно изменять и удалять файлы папки, а также управлять их свойствами.
    • Наследовать - уровень прав доступа пользователей к данной папке наследуется из настроек прав доступа вышележащего каталога.
    Настройка доступа в поле "Все группы, для которых уровень доступа Наследовать" позволяет изменить уровень доступа к папке для всех групп с правом доступа Наследовать.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение свойств папки. Возврат в папку, открытую в менеджере файла.
Применить | Сохранение внесённых изменений. Продолжение редактирования свойств папки.
Отменить | Отмена внесённых изменений. Возврат в папку, открытую в менеджере файла.


Файлы

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание и редактирование файла

В этом разделе

  • Контекстная панель
  • Поля формы
  • Пример создания нового файла
    •

    Данная форма служит для создания и редактирования файлов. Чтобы перейти к созданию нового файла, выберите пункт Новый файл в меню менеджера файлов или нажмите кнопку [image] на административной панели в публичном разделе сайта. Новый файл (страница) будет создан в текущей (открытой в данный момент) папке. Создав новый файл, вы добавите новую страницу в текущий раздел сайта.

    Для того чтобы перейти к редактированию существующего документа, кликните по имени данного файла в менеджере файлов либо нажмите кнопку [image] на административной панели.

    Контекстная панель

    Кнопка | Описание
Просмотр файла | Переключение в режим просмотра исходного кода файла. Кнопка отображается при редактировании документа.
Редактировать как PHP | Редактирование исходного кода файла. Режим предназначен исключительно для использования разработчиками.
Редактировать как HTML | Редактирование документа в режиме встроенного визуального редактора HTML, позволяющего форматировать текст аналогично Microsoft Word.
Редактировать как текст | Отображение текста файла, без включения PHP кода. Однако, в этом режиме отображаются все HTML-теги.
Переименовать | Кнопка для перехода к форме задания нового имени файла. Отображается при редактировании документа.
Скачать файл | Кнопка для загрузки файла на локальный компьютер. Отображается при редактировании документа.

    Поля формы

    Поле | Описание
    Шаблон | Шаблон, на основе которого будет создана страница. Например, Стандартная страница, Включаемая область для страницы или Включаемая область для раздела. Поле отображается при создании нового файла.
    Имя файла | Имя создаваемого файла (с указанием расширения). Например, news.php. Поле отображается при создании нового файла.
    Заголовок страницы | Произвольный заголовок страницы. Указанный заголовок будет выводиться в теле страницы. Поле отображается при создании и редактировании страницы в режиме "Редактировать как текст" или "Редактировать как HTML".
    Свойства страницы
    Данная секция предназначена для задания и редактирования значений свойств страницы, а также для управления значениями тегов META: ключевыми словами (keywords) и описанием (description) страницы. Секция отображается при создании и редактировании страницы в режиме "Редактировать как текст" или "Редактировать как HTML".
    Поле | Описание
Код | Название свойства.
Значение | Поле для задания значения свойства.

    Примечание: Набор доступных для всех страниц свойств определяется на странице настроек модуля Управление структурой. Пустое поле формы служит для создания свойства, значение которого будет использоваться только для текущей страницы. В этом случае в поле "Код" указывается код (мнемоническое имя) свойства. Код свойства задается символами латинского алфавита.

    См. также Свойства папки

    Поле для создания и редактирования документа.

    Кнопки управления

    Кнопка | Значение
Сохранить | Сохранение страницы.
Применить | Сохранение выполненных изменений. Продолжение редактирования страницы.
Отменить | Отмена внесённых изменений.

    Пример создания нового файла

    1. Выберите пункт Новый файл в меню менеджера файлов. Для создания страницы будет открыт редактор, выбранный в настройках модуля Управление структурой как редактор по умолчанию.
    2. Выберите шаблон, на основе которого будет создана страница.
    3. Укажите имя файла (например, company.php).
    4. Нажмите кнопку "Сохранить", чтобы добавить новый файл в текущую папку, или "Применить", чтобы сохранить файл в текущей папке и продолжить его редактирование.


Создание нового файла (загрузка)

В этом разделе

  • Загрузка файлов
  • Поля формы
  • Кнопки управления
    •
  • Пример загрузки
    •

    Загрузка файлов

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

    Поля формы

    Поле | Описание
Имя файла | Имя, которое будет присвоено файлу после загрузки на сайт. По умолчанию указывается оригинальное имя загружаемого файла.
Файл для загрузки | С помощью кнопки "Обзор" в данном поле указывается имя и путь к загружаемому файлу.

    Кнопки управления

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

    Пример загрузки изображений на сайт

    1. Откройте менеджер файлов и перейдите в папку /images/ (все изображения рекомендуется загружать в эту папку).
    2. Выберите пункт меню Загрузить файл.
    3. Нажмите кнопку "Обзор" и выберите файлы на локальном диске. После этого в поле Имя файла появится название выбранного файла, а в поле Файл для загрузки будет указан путь к данному файлу на вашем локальном диске. При необходимости измените имя, которое будет присвоено файлу после загрузки.
    4. Нажмите кнопку "Загрузить файлы".


Настройки

В этом разделе

  • Настройки модуля
  • Настройки визуального редактора
  • Уровень доступа к модулю
  • Кнопки управления
    •

    Форма Настройки модуля Управления структурой сайта предназначена для управления глобальными настройками модуля. Для удобства выполнения настроек форма разделена на три закладки: Настройки, Визуальный редактор и Доступ.

    Закладка "Настройки"

    На данной закладке выполняется настройка общих параметров модуля.

    Поле | Описание
    Редактор страниц по умолчанию Режим редактирования страниц по умолчанию. Доступны следующие режимы:
    • Текстовый редактор - отображает сам текст файла, без включения PHP кода. Однако, в этом режиме отображаются все HTML-теги.
    • Редактирование PHP скрипта - отображает исходный текст файла. Режим предназначен исключительно для использования разработчиками.
    • Визуальный HTML редактор - открывает встроенный визуальный редактор HTML, позволяющий форматировать текст аналогично Microsoft Word.
    Расширения исполняемых файлов | Указываются расширения исполняемых файлов через запятую для контроля доступа.
    Настройки для сайтов
    Использовать индивидуальные настройки для каждого сайта | При включенной опции для каждого из созданных в системе сайтов могут быть заданы индивидуальные Типы меню и Типы свойств.
    Настройки для сайта | В выпадающем списке доступны все созданные в системе сайты. Выбор доступен при отмеченной опции Использовать индивидуальные настройки для каждого сайта.
    Типы меню В данной мини-форме указываются используемые на сайте типы меню и их описания.
    Поле | Описание
Тип | Тип (мнемоническое имя) используемого на сайте меню. Обычно мнемонические имена типов меню назначаются, исходя из расположения меню на странице сайта (например, top, left и т.д.). Имя типа меню указывается латинскими буквами.
Название | Произвольное название (описание) типа меню.
    Количество дополнительных параметров меню | Количество полей для задания значений параметров, обрабатываемых в шаблоне показа меню и влияющих на представление меню.
    Типы свойств Данная форма служит для создания свойств страниц сайта и задания их описания.
    Поле | Описание
Тип | Тип (мнемоническое имя) свойства. Указывается латинскими буквами.
Название | Произвольное название (описание) свойства. Указанное название будет отображаться в форме задания значений свойств для папки или страницы.

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

    Закладка "Визуальный редактор"

    На данной закладке производится настройка визуального HTML редактора.

    Поле | Описание
Разрешить в визуальном HTML редакторе выводить стили без названий | Флаг в этом поле позволяет при редактировании страницы в режиме HTML редактора выводить в списке доступных CSS стилей в том числе и те стили, для которых не заданы названия. Примечание: Названия стилей задаются в файле .styles.php, размещённом в папке соответствующего шаблона сайта.
По умолчанию открывать HTML редактор в полноэкранном режиме | При отмеченной опции визуальный редактор по умолчанию открывается в полноэкранном режиме, т.е. занимает все окно браузера.
Настройки системы проверки орфографии
Использовать для проверки орфографии MS Word (если установлен) | При включенной опции проверка орфографии будет проводиться с помощью редактора Microsoft Word, если он установлен на компьютере пользователя.
Использовать для проверки pSpell/aSpell | Опция доступна, если на сервере установлено расширение php - pSpell и имеются библиотеки aSpell (система словарей). Они доступны по адресу http://aspell.sourceforge.net/.
Имя каталога для хранения пользовательских словарей | Если установлена опция Использовать для каждого пользователя свой словарь, то в данном поле определяется директория, в которой будут храниться личные словари каждого из пользователей. Либо общий словарь всех пользователей, если опция Использовать для каждого пользователя свой словарь не установлена.
Использовать для каждого пользователя свой словарь | При установленной опции для каждого пользователя будет создаваться свой словарь.

    Закладка "Доступ"

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

    Поле | Описание
    По умолчанию | Уровень доступа к модулю Управление структурой для всех групп пользователей, для которых установлено право доступа "по умолчанию".
    [Группа пользователей] Изменение настроек доступа для конкретной группы. Возможно задание следующих уровней доступа:
    • закрыт - доступ пользователей к файлам и папка невозможен;
    • только к доступным папкам - доступ открыт к тем папкам, в свойствах которых разрешен доступ для данной группы пользователей;
    • просмотр настроек модуля без изменения - просмотр только настроек модуля без возможности изменения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений.
Сбросить | Отмена внесённых изменений. Возврат первоначальных значений параметров.
По умолчанию | Установка значений свойств модуля равными значениям по умолчанию.


Информационные блоки

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

  • новости;
  • каталог продукции;
  • фотогалереи;
  • список вакансий и другая информация.

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

Интернет-магазин, возможности по созданию которого при помощи системы 1C-Битрикс: Управление сайтом поистине безграничны, базируется на применении информационных блоков для группировки товаров. Поэтому если вы планируете открыть торговое представительство вашей компании в Интернете, ознакомьтесь с данным разделом внимательнее.

Модуль информационных блоков реализует следующую иерархическую модель построения хранилищ информации.

Типы инфоблоков создаются в форме Типы информационных блоков и отображаются в меню административной части в разделе Контент:

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

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

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

Для начала работы вам необходимо настроить типы информационных блоков, которые будут присутствовать на сайте. Для каждого типа нужно указать, требуется ли группировать элементы данного типа по различным категориям. Примером типа с возможностью группировки является каталог продукции, когда продукты можно объединять в различные группы. Например, товар Видеоплеер можно привязать к группам "Бытовая техника" и "Аудио- и видеотехника".


Типы информационных блоков

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список типов инфоблоков
    •

    Управление типами инфоблоков осуществляется на странице Типы информационных блоков: Контент -> Информационные блоки -> Типы информационных блоков.

    Форма поиска

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

    Поле | Описание
Название | Название типа информационного блока.
ID | Идентификатор информационного блока.

    Для того чтобы отобрать типы информационных блоков по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех типов инфоблоков нажмите кнопку "Отменить".

    Контекстная панель

    Кнопкаы | Описание
Добавить новый тип | Переход на страницу с формой создания нового типа информационных блоков.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список типов информационных блоков

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора типов инфоблоков, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные действия:
    • Информационные блоки - переход на страницу со списком информационных блоков данного типа;
    • Изменить - переход к редактированию типа информационных блоков;
    • Удалить - удаление типа информационных блоков.
    ID | Идентификатор информационного блока. Указывается символами латинского алфавита и служит для выборки элементов инфоблоков того или иного типа, в том числе для показа в публичном разделе сайта.
    Название | Произвольное название типа информационных блоков.
    Сортировка | Относительный "вес" типа информационных блоков, определяющий его положение в списке.
    Содержит разделы Признак того, что информационные блоки данного типа имеют иерархическую структуру, т.е. элементы инфоблоков могут быть сгруппированы по разделам и подразделам.

    Такая организация элементов может быть применена, например, для объединения товаров в группы или классификации растений по родам, видам и т.п.
    Экспорт в RSS | Признак того, что содержимое инфоблоков данного типа может экспортироваться в RSS-файл.
    Файл для модификации | Путь к файлу, отвечающему за обработку полей элементов инфоблоков данного типа при сохранения.
    Файл с формой редактирования | Путь к файлу-обработчику вывода интерфейса редактирования элемента.


Создание и редактирование типов информационных блоков

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Закладка Основное
  • Закладка Дополнительно
    •
  • Кнопки управления
  • Пример создание нового типа инфоблоков
    •

    Типы информационных блоков в системе 1C-Битрикс: управление сайтом создаются и при помощи формы Новый тип информационных блоков. Каждый тип информационного блока, созданный в системе, автоматически добавляется в левое меню административного раздела для быстрого доступа к информационным блокам данного типа:

    Для изменения параметров типа инфоблоков служит форма Редактирование типа информационных блоков.

    Контекстная панель

    Кнопка | Описание
Список | Переход на страницу со списком типов информационных блоков.
Создать | Создание нового типа информационных блоков. Отображается при редактировании существующего типа инфоблоков.
Удалить | Удаление редактируемого типа информационных блоков. Важно! Все информационные блоки данного типа также будут удалены.

    Форма редактирования

    Закладка Основное

    Данная форма служит для настройки основных параметров типа информационных блоков.

    Поле | Описание
    *Идентификатор (ID) | Код, однозначно идентифицирующий тип инфоблоков в системе. Должен содержать только латинские символы.
    Использовать древовидный классификатор элементов по разделам Если этот флаг установлен, информационные блоки данного типа будут иметь иерархическую структуру, т.е. они могут быть разбиты по разделам и подразделам (названия разделов и подразделов задаются в поле Разделы).

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

    Если этот флаг сброшен, то информационные блоки этого типа не будут разбиваться по разделам.
    Языкозависимые названия и заголовки объектов:
    Язык | *Название | Разделы | Элементы
[1] | [2] | [3] | [4]
    Поле | Описание
[1] Язык | Список языков, используемых в системе. Названия типов, а также разделов и элементов информационных блоков указываются отдельно для каждого языка.
[2] *Название | Название типа инфоблоков для данного языка (например, Каталог).
[3] Разделы | Название разделов инфоблоков данного типа для этого языка (например, Группы).
[4] Элементы | Название элементов инфоблоков данного типа для этого языка (например, Товары).

    * Поля, обязательные для заполнения.

    Закладка Дополнительно
    Поле | Описание
Использовать экспорт в RSS | Если этот флаг установлен, содержимое инфоблоков данного типа может экспортироваться в RSS-файл и сохраняться в директории, указанной в поле Путь к экспортируемым RSS файлам в форме настроек модуля Информационные блоки.
Индекс сортировки | Относительный "вес", влияющий на порядок расположения типов информационных блоков в меню административного раздела.
Файл для редактирования элемента, позволяющий модифицировать поля перед сохранением | Полный путь к файлу, отвечающему за обработку полей элементов инфоблоков данного типа при сохранения. Может быть использован для модификации данных перед сохранением элементов в административном разделе. Это поле предназначено только для использования разработчиками. См. Пользовательские формы редактирования
Файл с формой редактирования элемента | Полный путь к файлу-обработчику вывода интерфейса редактирования элемента. Может быть использован для создания кастомизированной формы редактирования элементов данного типа. Это поле предназначено только для использования разработчиками. См. Пользовательские формы редактирования

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход к списку типов информационных блоков.
Применить | Сохранение внесённых изменений. Продолжение редактирования типа инфоблоков.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.

    Создание нового типа информационного блока

    1. Откройте страницу создания нового типа информационных блоков: Административный раздел -> Контент -> Информационные блоки -> Типы информационных блоков.
    2. Для создания нового типа информационных блоков выберите пункт Добавить новый тип в меню страницы.
    3. Укажите символьный код нового типа информационного блока в поле Идентификатор (ID). Код представляет собой произвольный набор латинских символов, понятный администратору сайта. Например, символьный код типа информационных блоков Каталог может быть catalog.
    4. Если подразумевается, что информационные блоки создаваемого типа будут иметь иерархическую структуру (т.е. содержать разделы и подразделы), то установите флаг в поле Использовать древовидный классификатор элементов по разделам.
    5. Введите название типа информационных блоков для разных языков.
    6. Если создаваемый тип информационных блоков содержит разделы, укажите название разделов. Например, информационные блоки типа Каталог могут состоять из групп.
    7. Укажите название элементов для данного типа информационных блоков. Например, элементами информационных блоков типа Каталог могут быть товары, а элементами инфоблоков типа Новости – новости.
    8. Нажмите кнопку "Сохранить".
    9. После сохранения новый тип информационных блоков будет добавлен в административное меню (секция "Контент").


Список информационных блоков

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список информационных блоков
    •

    Для того чтобы перейти к списку информационных блоков определённого типа, выберите название типа инфоблоков в секции "Контент" административного меню.

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

    Форма поиска

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

    Поле | Описание
Название | Название блока. Допустимо использование операторов сложного поиска.
Сайты | Сайт(ы), на котором используются отбираемые информационные блоки.
Активен | Признак активности отбираемого информационного блока (доступна ли информация блока для просмотра в публичной части сайта).
ID | Идентификатор информационного блока в системе.
Мнемонический код | Символьный код информационного блока.

    Для того чтобы отобрать информационные блоки по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех типов инфоблоков нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить инфоблок | Переход к форме создания нового информационного блока данного типа.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список информационных блоков

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора информационных блоков, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные действия:
    • Ссылка с названием раздела - переход к списку разделов данного информационного блока;
    • Ссылка с названием элементов - переход к списку элементов данного информационного блока;
    • Изменить - переход к редактированию информационного блока;
    • Удалить - удаление информационного блока.
    Название | Название информационного блока.
    Сорт. | Относительный "вес", влияющий на порядок показа информационных блоков в списке.
    Акт. | Признак активности блока. Если поле отмечено, содержимое инфоблока доступно для показа в публичной части сайта.
    Символьный код | Мнемонический код информационного блока, состоящий из латинских символов.
    URL страницы инфоблока | Адрес страницы в публичной части для показа списка элементов инфоблока.
    URL страницы элемента | Адрес страницы для просмотра детальной информации об элементе инфоблока в публичной части.
    Элементов | Количество элементов в данном информационном блоке.
    Разделов | Количество разделов в данном информационном блоке.
    Сайт | Сайты, на которых используется информационный блок.
    Индексировать элементы | Определяется возможность индексации элементов информационного блока для внутреннего поиска.
    Документооборот | Признак участия инфоблока в документообороте.
    Дата изм. | Дата и время последнего изменения блока.
    ID | Идентификатор информационного блока.


Создание и редактирование инфоблока

В этом разделе

  • Контекстная панель
  • Поля формы
  • Инфоблок
  • Свойства
  • RSS
  • Доступ
  • Подписи
    •
  • Кнопки управления
  • Пример создания блока новостей
    •

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

    Контекстная панель

    Кнопка | Описание
Вернуться в список информационных блоков | Переход на страницу со списком информационных блоков соответствующего типа.

    Поля формы

    Закладка "Инфоблок"

    В данной форме выполняется настройка общих параметров информационного блока.

    Поле | Описание
    ID | Идентификатор информационного блока. Данное поле отображается только при редактировании существующего инфоблока и изменению не подлежит.
    Значения свойств хранятся Есть возможность выбора:
    • в общей таблице (по умолчанию)
    • в отдельной таблице для данного информационного блока: в некоторых случаях увеличивает производительность сайта.
    Изменена | Дата и время последней модификации инфоблока. Данное поле отображается только при редактировании существующего инфоблока.
    Запись активна | Признак активности информационного блока. Если поле отмечено, блок и его содержимое доступны для показа в публичной части сайта.
    Символьный код Мнемонический код информационного блока, состоящий из латинских символов.

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

    Обычно блоки показываются в публичной части отдельно друг от друга, но иногда возникает необходимость вывести различные блоки на одной странице сайта (например, на главной). В этом случае, чем меньше значение индекса сортировки у блока, тем выше он будет отображаться на странице.
    Внешний код | Символьный код, используемый для связи инфоблока с внешним источником данных. Поле отображается при включенной опции Показывать код загрузки из внешних источников в настройках модуля Информационные блоки.
    URL страницы информационного блока Адрес страницы в публичной части для показа списка элементов инфоблока (см. пример ниже). Для указания URL возможно использование следующих шаблонов:
    • #SITE_DIR# - корневая папка для сайта (берется из настроек сайта);
    • #SERVER_NAME# - URL сайта (берется из настроек сайта);
    • #IBLOCK_ID# - ID информационного блока.
    Необходимые шаблоны можно выбрать в списке, открываемом с помощью кнопки
    URL страницы раздела Адрес страницы в публичной части сайта со списком элементов раздела данного информационного блока.
    Поле будет отображаться в форме только в том случае, если для типа информационных блоков, к которому относится настраиваемый инфоблок, было выбрано свойство Использовать древовидный классификатор элементов по разделам.
    Для указания URL возможно использование следующих шаблонов:
    • #SITE_DIR# - корневая папка сайта (берется из настроек сайта);
    • #SERVER_NAME# - URL сайта (берется из настроек сайта);
    • #ID# - ID раздела информационного блока (код группы);
    • #EXTERNAL_ID# - внешний код раздела информационного блока.
    • #IBLOCK_ID# - ID информационного блока;
    • #IBLOCK_CODE# - Символьный код инфоблока;
    • #IBLOCK_EXTERNAL_ID# - Внешний код инфоблока;
    • #IBLOCK_TYPE_ID# - Тип инфоблока;
    Необходимые шаблоны можно выбрать в списке, открываемом с помощью кнопки

    Значение данного поля используется для формирования ссылок в модуле поиска, а также при размещении и настройке визуальных компонентов в публичной части сайта.
    URL страницы детального просмотра Адрес страницы для просмотра детальной информации об элементе инфоблока в публичной части (см. пример ниже). Используется для формирования ссылок на страницу с информацией об элементе инфоблока, например, при показе результатов поиска. Возможно использование следующих шаблонов:
    • #SITE_DIR# - корневая папка для сайта (берется из настроек сайта);
    • #SERVER_NAME# - URL сайта (берется из настроек сайта);
    • #IBLOCK_ID# - ID информационного блока;
    • #ID# - ID элемента;
    • #CODE# - символьный код элемента.
    • #EXTERNAL_ID# - внешний код элемента.
    Необходимые шаблоны можно выбрать в списке, открываемом с помощью кнопки [image].
    Индексировать разделы для модуля поиска Определяет возможность индексации разделов информационного блока в модуле поиска.

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

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

    Для добавления элементов информационного блока в поисковый индекс необходимо задать значение поля URL страницы детального просмотра и разрешить индексацию элементов, затем полностью переиндексировать сайт.

    Для исключения элементов уже существующего информационного блока из поискового индекса нужно запретить индексацию элементов блока (снять флажок в данном поле) и полностью переиндексировать сайт.
    Участвует в документообороте | Признак участия инфоблока в документообороте.
    Файл для редактирования элемента, позволяющий модифицировать поля перед сохранением Полный путь к файлу, отвечающему за обработку полей элементов данного инфоблока. Может быть использован для модификации данных перед сохранением элементов в административном разделе.

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

    Это поле предназначено только для использования разработчиками. См. Пользовательские формы редактирования
    Описание
    Изображение | Изображение, ассоциируемое с данным информационным блоком.
    Text / HTML | Выбор формата создания и вывода информации инфоблока.
    Использовать визуальный редактор | Если эта опция включена, при использовании формата HTML отображаются панели управления, содержащая опции форматирования текста.

    * Поля, обязательные для заполнения.

    Закладка "Свойства"

    Эта форма служит для создания и настройки свойств элементов текущего инфоблока.

    При добавлении нового элемента в информационном блок вы сможете установить значения этих свойств. Например, на сайте можно разместить различные статьи о компании, опубликованные в СМИ. Все эти статьи могут быть представлены в одном информационном блоке – Публикации. Для элементов инфоблока Публикации можно задать следующие свойства: Автор и Источник. При добавлении статьи (элемента инфоблока) вам будет предложено указать значения этих свойств.

    Поле | Описание
    ID | Идентификатор свойства элементов информационного блока.
    Название | Произвольное название свойства элементов инфоблока.
    Акт. | Признак активности свойства (если свойство активно, оно может быть выбрано для показа в публичной части сайта).
    Тип Тип свойства:
    • строка - значение свойства задается в виде текстовой строки;
    • число - значение свойства задается в виде числа;
    • список - значение свойства выбирается из списка;
    • файл - в качестве значения свойства используется файл;
    • привязка к разделам - с помощью данного свойства можно задать связь между элементом данного инфоблока и разделами другого информационного блока;
    • привязка к элементам - с помощью данного свойства можно задать связь между элементами информационных блоков.
    • привязка к элементам по XML_ID - привязка хранится как строка и значением является xml_id привязанного элемента.
    • HTML/текст - значение свойства задается в виде текста с HTML-тегами.
    • привязка к пользователю - с помощью данного свойства можно задать связь между элементом данного инфоблока и пользователями системы.
    • привязка к теме форума - с помощью данного свойства можно задать связь между элементом данного инфоблока и темами форума.
    • привязка к файлу на сервере - с помощью данного свойства можно задать связь между элементом данного инфоблока и файлом на сервере.
    • дата/время - значение свойства задается в виде даты/времени.
    Каждый тип свойств характеризуется собственным набором параметров, настраиваемых в форме Детальное редактирование свойства.
    Множ. | Признак множественности свойства. Т.е. для данного свойства может быть задано несколько значений. Количество полей для ввода значений определяется в форме детального редактирования свойства (кнопка "Изм.").
    Сорт. | Относительный "вес" свойства. Влияет на положение свойства в списке.
    Код | Мнемонический код свойства. Может состоять из латинских символов и цифр, но не должен начинаться с цифры.
    Изм. | Кнопка, при нажатии на которую открывается форма детального редактирования свойства (см. Детальное редактирование свойства).
    Удал. | Для удаления свойства установите флаг в это поле и нажмите кнопку "Сохранить".
    Закладка "RSS"

    В этой форме настраиваются параметры выгрузки данных из информационного блока в RSS.

    Поле | Описание
Разрешен экспорт в RSS динамически | Если опция включена, экспорт в формат RSS будет происходить без создания файла, напрямую в поток.
Действительно (часов) | Период актуальности RSS.
Разрешен экспорт в RSS файл | Если опция включена, экспорт в формат RSS будет осуществляться через создаваемый файл.
Количество экспортируемых в RSS файл элементов | Количество элементов блока, экспортируемых в RSS файл. Значение -1 принуждает экспортировать все элементы.
За сколько последних дней экспортировать в RSS файл | Количество дней, за которые будет выполняться RSS экспорт. Значение -1 принуждает экспортировать данные за весь период.
Разрешен экспорт в RSS файл в формате yandex | Включите эту опцию, если вам требуется отдавать файлы с содержимым блока в формате RSS для yandex.
Привязка полей для выгрузки в RSS
Поле RSS | Поле RSS, в которое осуществляется экспорт.
Шаблон поля | Поле блока, из которого осуществляется экспорт.
    Закладка "Доступ"

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

    Поле Описание
    [Группа пользователей] Право доступа групп пользователей к управлению информационным блоком.
    • чтение - просмотр элементов информационного блока в публичной части;
    • документооборот - редактирование элементов инфоблока в режиме документооборота;
    • изменение - право на редактирование параметров разделов и элементов информационного блока;
    • нет доступа - доступ к информационному блоку запрещён;
    • полный доступ - изменение параметров разделов и элементов инфоблока, а также управление уровнем доступа других групп.
    Закладка "Подписи"

    С помощью данной закладки можно задать произвольные подписи и заголовки объектам инфоблока.

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров информационного блока. Возврат к списку инфоблоков данного типа.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров информационного блока.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.

    Пример создания блока новостей

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

    1. Откройте страницу со списком информационных блоков типа Новости: Контент -> Новости.
    2. Выберите пункт Добавить инфоблок в меню страницы.
    3. Отметьте флажком поле Запись активна, чтобы раздел новостей мог быть отображен в публичной части.
    4. Укажите символьный код раздела, например, company_news.
    5. Выберите сайт, на котором будут публиковаться новости данного информационного блока, например, Сайт компании.
    6. Введите название инфоблока: Новости компании.
    7. Укажите индекс сортировки.
    8. Укажите значения полей URL страницы списка элементов, URL страницы раздела (если информационный блок содержит разделы) и URL страницы детального просмотра. Например:
      • URL страницы списка элементов: #SITE_DIR#/about/news.php?ID=#IBLOCK_ID#
      • URL страницы раздела: #SITE_DIR#/about/news_list.php?ID=#ID#
      • URL страницы детального просмотра: #SITE_DIR#/about/news_detail.php?ID=#ID#
    9. Разрешите индексацию разделов и элементов информационного блока для модуля поиска.
    10. Укажите права доступа для разных групп пользователей.
    11. Нажмите кнопку "Сохранить", чтобы сохранить новый информационный блок.


Детальное редактирование свойств инфоблока

В этом разделе

  • Поля формы
  • Кнопки управления
    •

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

    Поля формы

    Поле | Описание
    Поля, общие для всех типов свойств
    ID | Идентификатор свойства.
    Символьный код | Мнемонический код свойства, состоящий из латинских символов и цифр.
    Внешний код | Символьный код, используемый для связи свойства с внешним источником данных. Поле отображается при включенной опции Показывать код загрузки из внешних источников в настройках модуля Информационные блоки.
    Название | Название свойства элементов инфоблока.
    Свойство активно | Признак активности свойства (если свойство активно, оно может быть выбрано для показа в публичной части сайта).
    Тип Тип свойства:
    • строка - значение свойства задается в виде текстовой строки;
    • число - значение свойства задается в виде числа;
    • список - значение свойства выбирается из списка;
    • файл - в качестве значения свойства используется файл;
    • привязка к разделам - с помощью данного свойства можно задать связь между элементом данного инфоблока и разделами другого информационного блока;
    • привязка к элементам - с помощью данного свойства можно задать связь между элементами информационных блоков.
    • привязка к элементам по XML_ID - привязка хранится как строка и значением является xml_id привязанного элемента.
    • HTML/текст - значение свойства задается в виде текста с HTML-тегами.
    • привязка к пользователю - с помощью данного свойства можно задать связь между элементом данного инфоблока и пользователями системы.
    • привязка к теме форума - с помощью данного свойства можно задать связь между элементом данного инфоблока и темами форума.
    • привязка к файлу на сервере - с помощью данного свойства можно задать связь между элементом данного инфоблока и файлом на сервере.
    • дата/время - значение свойства задается в виде даты/времени.
    Множественное Признак множественности свойства, т.е. наличия одновременно нескольких значений данного свойства.
    Например, свойство элементов инфоблока Мобильные телефоны Цвет панели может одновременно иметь следующие значения: синий, красный, черный и т.д.
    Количество полей для ввода новых множественных значений | Если данное свойство является множественным, то в этом определяется количество полей для ввода значений свойства (т.е. количество возможных значений свойства).
    Порядок сортировки | Задается "вес" свойства, определяющий его положение в общем списке свойств.
    Тип свойства "Строка" , "Число"
    Значение по умолчанию | Значение данного свойства, присваиваемое всем вновь создаваемым элементам информационного блока по умолчанию.
    Размер поля для ввода значения Определяется длина и ширина поля для ввода значения данного свойства в форме создания/редактирования элементов инфоблока.
    Длина и ширина поля задаются числом столбцов и строк соответственно.
    Значения свойств участвуют в поиске | Разрешается или запрещается индексация значений данного свойства для внутреннего поиска.
    Выводить на странице списка элементов поле для фильтрации по этому свойству Определяет возможность вывода в фильтре на странице со списком элементов отдельного поля, с помощью которого будет осуществляться фильтрация элементов по значениям данного свойства.

    Поле в фильтре будет иметь то же название и тип, что и данное свойство. Например, для свойства Год выпуска типа список данное поле в фильтре будет называться Год выпуска, а доступные значения поля будут представлены в виде списка.
    Выводить поле для описания значения | Определяется, будет ли выводиться поле для описания данного свойства в форме создания/редактирования элементов информационного блока.
    Тип свойства "Список"
    Внешний вид Форма представления списка доступных значений свойства:
    • список - значение свойства выбирается из списка;
    • флажки - значение свойства указывается с помощью флажка, устанавливаемого в поле рядом с нужным значением.
    Количество строк (для внешнего вида "список") | Высота поля со списком в строках (используется, если в предыдущем поле выбрано значение список).
    Значения свойств участвуют в поиске | Разрешается или запрещается индексация значений данного свойства для внутреннего поиска.
    Выводить на странице списка элементов поле для фильтрации по этому свойству Определяет возможность вывода в фильтре на странице со списком элементов отдельного поля, с помощью которого будет осуществляться фильтрация элементов по значениям данного свойства.

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

    Данное поле служит для создания списка доступных значений свойства:

    ID | Значение | Сорт. | Умолч.
[1] | [2] | [3] | [4]
    Поле | Описание
[1] ID | Идентификатор значения свойства в списке. Задается символами латинского алфавита и цифрами (не должен начинаться с цифры).
[2] Значение | Поле для создания возможного значения свойства.
[3] Сорт. | Относительный "вес" возможного значения, определяющий положение значения в списке.
[4] Умолч. | Признак того, что для новых элементов инфоблока по умолчанию настраиваемое свойство будет принимать данное значение.
    Тип свойства "Файл"
    Типы загружаемых файлов | Список расширений (через запятую) доступных для загрузки файлов.
    Размер поля для ввода (столбцов) | Длина поля для ввода значения свойства. Задается количеством столбцов.
    Выводить поле для описания значения | Определяется, будет ли выводиться поле для описания данного свойства в форме создания/редактирования элементов информационного блока.
    Тип свойства "Привязка к разделам "
    Информационный блок | Информационный блок, к разделам которого может осуществляться привязка элементов данного инфоблока.
    Выводить на странице списка элементов поле для фильтрации по этому свойству Определяет возможность вывода в фильтре на странице со списком элементов отдельного поля, с помощью которого будет осуществляться фильтрация элементов по значениям данного свойства.

    Поле в фильтре будет иметь то же название и тип, что и данное свойство. Например, для свойства Год выпуска типа список данное поле в фильтре будет называться Год выпуска, а доступные значения поля будут представлены в виде списка.
    Тип свойства "Привязка к элементам "
    Информационный блок | Информационный блок, к элементам которого может осуществляться привязка элементов данного инфоблока.
    Выводить на странице списка элементов поле для фильтрации по этому свойству Определяет возможность вывода в фильтре на странице со списком элементов отдельного поля, с помощью которого будет осуществляться фильтрация элементов по значениям данного свойства.

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

    Кнопки управления

    Кнопка | Описание
Далее | Сохранение параметров свойства. Возврат к форме редактирования информационного блока.
Сброс | Отмена изменений параметров свойства.


Разделы информационного блока

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список разделов
    •

    Если при создании типа информационного блока вы указали, что инфоблоки данного типа имеют иерархическую структуру, то помимо конкретных элементов (например, товаров), каждый инфоблок также может содержать разделы и подразделы.

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

    С помощью данной формы вы можете управлять элементами иерархии (разделами и подразделами) выбранного информационного блока.

    Форма поиска

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

    Поле | Описание
Название | Название раздела. Допустимо использование операторов сложного поиска.
Раздел | Вышележащий (родительский) раздел.
ID | Идентификатор раздела.
Дата изменения | Дата последнего изменения параметров раздела.
Символьный код | Мнемонический код раздела.
Внешний код | Внешний код раздела, используемый для связи раздела с внешними источниками данных.
Активен | Позволяет отобрать активные или неактивные разделы информационного блока.

    Для того чтобы отобрать разделы информационного блока по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех разделов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Список элементов | Переход к списку элементов информационного блока. Кнопка доступна при снятом флаге Совместный просмотр секций и элементов в настройках модуля Информационные блоки.
Добавить подраздел | Переход к форме создания нового раздела или подраздела для данного информационного блока.
Добавить элемент | Переход к форме создания нового элемента для данного информационного блока.
Свойства инфоблока | Переход к форме управления свойствами информационного блока, список разделов которого представлен на странице.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список разделов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора разделов, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные действия:
    • Ссылка с названием раздела - переход к списку подразделов данного раздела;
    • Ссылка с названием элементов - переход к списку элементов данного раздела;
    • Изменить - редактирование раздела;
    • Удалить - удаление раздела.
    Название | Название раздела.
    Акт. | Признак активности раздела. Если поле отмечено, информация раздела доступна для отображения в публичной части сайта.
    Сорт. | Вес сортировки раздела. Определяет последовательность, в которой будут показаны разделы в публичной части сайта.
    Элементов | Количество элементов в данном разделе. Ссылка "+" позволяет добавить новый элемент в данный раздел.
    Подразделов | Количество подразделов в данном разделе. Ссылка "+" позволяет добавить новый подраздел в данный раздел.
    Дата изм. | Дата последнего изменения раздела.
    ID | ID раздела.


Создание и редактирование разделов инфоблока

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Параметры раздела
  • Дополнительно
  • Доп. свойства
    •
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список разделов | Переход на страницу со списком разделов инфоблока.
Новый раздел | Переход к форме создания нового раздела инфоблока. Кнопка отображается в режиме редактирования существующего раздела.
Удалить раздел | Удаление редактируемого раздела.

    Форма редактирования

    Для создания нового раздела просто заполните поля формы и нажмите кнопку "Сохранить".

    Закладка "Название раздела"
    Поле | Описание
ID | Идентификатор раздела в системе. Отображается в режиме редактирования раздела.
Изменена | Дата и время последнего изменения параметров раздела.
Запись активна | Признак активности раздела информационного блока.
Родительский раздел | Раздел, дочерним элементом которого является этот раздел.
*Название | Название раздела.
Изображение | Изображение, ассоциируемое с данным разделом информационного блока. Для выбора изображения используйте кнопку "Обзор".
Описание
Text / HTML | Выбор формата создания и вывода описания раздела инфоблока.
Использовать визуальный редактор | Если эта опция включена, при использовании формата HTML отображается панель управления, содержащая опции форматирования текста.
Описание раздела | Информационно насыщенное описание раздела, как оно показывается в публичной части.
    Закладка "Дополнительно"
    Поле | Описание
Индекс сортировки | Относительный "вес", влияющий на положение раздела в списке.
Внешний код | Символьный код, используемый для связи раздела с внешним источником данных. Поле отображается при включенной опции Показывать код загрузки из внешних источников в настройках модуля Информационные блоки.
Символьный код | Мнемонический код раздела, состоящий из латинских символов. Используется при выборе разделов и элементов разделов для показа в публичной части сайта.
Детальная картинка | Детальное изображение, ассоциируемое с данным разделом информационного блока.
    Закладка "Доп. свойства"

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

    Кнопки управления

    Поле | Описание
Сохранить | Сохранение параметров раздела инфоблока. Возврат к списку разделов информационного блока.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров раздела информационного блока.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Элементы информационного блока

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список элементов
    •

    На данной странице представлен список элементов разделов информационного блока или самого блока. Элемент раздела - сущность, не поддающаяся дальнейшей классификации в пределах созданной вами иерархии. Например, элемент-товар Коврик для мыши раздела Аксессуары.

    Форма поиска

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

    Поле | Описание
Название | Название элемента. Допустимо использование операторов сложного поиска.
Раздел | Родительский раздел элемента.
ID (начальный и конечный) | Отрезок ID для выборки элементов.
Дата изменения | Дата и время последнего изменения.
Символьный код | Мнемонический код элемента.
Внешний код | Символьный код, используемый для связи элемента с внешним источником данных.
Кто изменил | Последний изменивший элемент.
Дата создания | Дата создания элемента.
Кто создал | Пользователь, создавший элемент.
Статус | Статус элемента (при использовании документооборота).
Активен | Активность элемента раздела. Активные элементы доступны для просмотра в публичной части сайта.
Описание | Описание элемента (фильтр по описанию для анонса и детальному описанию). Допустимо использование операторов сложного поиска.
[Свойство] | Поля для фильтрации элементов по значениям свойств, для которых было задано свойство "Выводить на странице списка элементов поле для фильтрации по этому свойству".

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

    Контекстная панель

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

    Список элементов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора элементов, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные действия:
    • Разблокировать - освободить заблокированный элемент;
    • Изменить - редактировать элемент инфоблока;
    • История изменений - просмотреть историю изменения элемента (возможно только при наличии установленного модуля Документооборот);
    • Просмотреть - перейти к просмотру элемента в публичном разделе сайта;
    • Удалить - удалить элемент инфоблока.
    Название | Название элемента.
    Акт. | Активность элемента. Если поле отмечено, то элемент доступен для показа в публичной части сайта.
    Сорт. | Относительный "вес", определяющий положение элемента в списке.
    Символьный код | Мнемонический код элемента.
    Внешний код | Символьный код, используемый для связи элемента с внешним источником данных.
    Дата изм. | Дата и время последнего изменения элемента.
    Элементов | На данной странице это поле будет пустым, т.к. элемент не поддается иерархии. Данное поле доступно для отображения только при отмеченной опции Совместный просмотр секций и элементов на странице настроек модуля.
    Подразделов | На данной странице это поле будет пустым, т.к. элемент не поддается иерархии. Данное поле доступно для отображения только при отмеченной опции Совместный просмотр секций и элементов на странице настроек модуля.
    Начало активности | Дата начала активности.
    Окончание активности | Дата окончания активности.
    Кем изменена | Логин и имя пользователя, который совершил последние изменения.
    Дата создания | Время и дата создания данной записи.
    Кем создана | Логин и имя пользователя, который создал запись о элементе.
    Количество показов | Количество показов данного элемента на сайте.
    Дата первого показа | Время и дата первого показа элемента на сайте.
    Картинка для анонса | Изображение, указанное в анонсе элемента.
    Описание для анонса | Краткое описание элемента для анонса.
    Детальная картинка | Изображение, которое выводится в детальном описании элемента.
    Детальное описание | Детальное описание элемента.
    ID | Идентификатор элемента.
    Статус | Статус элемента (при использовании документооборота). Например, Опубликован.
    Блокировка Значение поля информирует о доступности элемента для редактирования:
  • - элемент доступен для редактирования;
  • - элемент заблокирован вами. Для того чтобы освободить элемент, выберите пункт Разблокировать в меню столбца Действие;
  • - элемент заблокирован другим пользователем (т.е. редактирование элемента выполняется другим пользователем).
            •
    Кем заблокирована | Логин и имя пользователя, который заблокировал данную запись.
    Когда заблокирована | Время и дата произведения блокировки записи.
    Комментарий администратора | Произвольный комментарий, который отображается только в административном разделе.
    [Свойство] | Выводится значение этого свойства, если оно указано.
    [Тип цены] | Величина стоимости в соответствии с данным типом цены.


Создание и редактирование элемента инфоблока

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание и редактирование элемента информационного блока

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Параметры элемента
  • Описание для анонса
  • Подробное описание
  • Привязка к разделам
  • Дополнительные параметры
  • Документооборот
    •
  • Кнопки управления
    •

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

    Контекстная панель

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

    Форма редактирования

    Закладка "Параметры элемента"
    Поле | Описание
    Запись активна | Признак активности элемента. Активный элемент доступен для отображения в публичной части сайта.
    Период активности Период активности элемента, по истечении которого элемент станет неактивным (т.е. недоступным для показа в публичной части сайта):
    • Если конечная дата отсутствует, элемент признается бессрочно активным.
    • Если отсутствует начальная дата, то элемент считается активным с момента его сохранения.
    *Название | Название элемента, как оно отображается в публичной части.
    Значения свойств
    Имя свойства | Имя свойства элементов инфоблока. Свойства элемента назначаются в настройках информационного блока.
    Значение | Значение свойства.
    Торговый каталог
    Данная секция отображается, если в настройках модуля Торговый каталог для данного информационного блока была установлена опция "Является торговым каталогом"
    Вкладка Цены
    Данная вкладка служит для задания стоимости товара для разных типов цен.
    Поле | Описание
*Базовая цена (Базовая) | Базовая цена элемента (товара).
*Валюта базовой цены | Валюта, в которой указана базовая цена.
Тип цены | Перечень доступных типов цен товара.
Тип наценки | Поле для выбора типа наценки, используемой при формировании стоимости товара для данного типа цены.
Сумма | Стоимость товара с учётом выбранного типа наценки. Стоимость товара рассчитывается по формуле [Цена] = [Базовая цена] + [Базовая цена] * [Процент наценки] / 100. Если тип наценки не выбран, то стоимость товара для данного типа цены можно ввести вручную.
Валюта | Наименование валюты, в которой указана стоимость товара для данного типа цены.
    Вкладка Цены (расш.)
    Данная вкладка служит для задания стоимости товара для разных типов цен с указанием дополнительных параметров, влияющих на стоимость.
    Поле | Описание
Тип цены | Перечень доступных типов цен товара.
От | Данные поля служат для задания связи между количеством приобретаемых товаров и их стоимостью. Например, можно указать, что при приобретении от 1 до 5 единиц товара, товар будет продаваться по цене 500 руб./шт, а при приобретении от 6 до 10 единиц товара, стоимость товара будет равна 400 руб./шт. Количество товара может быть задано как одним числом, так и в виде диапазона.
До
Тип наценки | Поле для выбора типа наценки, используемой при формировании стоимости товара для данного типа цены. Выбор наценки для базового типа цены не производится.
Цена за единицу | Стоимость единицы товара для данного типа цены, при условии приобретения указанного товаров.
Валюта | Наименование валюты, в которой указана стоимость товара для данного типа цены.

    Кнопка "Ещё" позволяет добавить новую стpоку для указания стоимости товаров и условий ее применения.
    Вкладка Параметры
    На данной вкладке указываются дополнительные сведения о продаваемом товаре, а также (если каталог настроен на продажу контента) параметры подписки на контент сайта.
    Поле | Описание
    Количество на складе | Количество товаров на складе в данный момент. Если установлена опция Уменьшать количество при заказе, это значение вручную изменить нельзя.
    Уменьшать при заказе | Если опция установлена, при каждом заказе количество товаров, хранимое в базе, будет соответственно уменьшаться.
    Вес | Вес единицы товара в граммах.
    Параметры подписки
    Тип оплаты Задается тип оплаты приобретения контента сайта. Доступно три типа оплаты:
    • одноразовая - означает, что товар приобретается покупателем один раз. В дальнейшем никаких движений по приобретенному товару не предусматривается;
    • регулярная (или "подписка") - означает, что по истечении заданного периода времени покупателю будет выставлен новый счет на продление использования товара;
    • пробный период ("триал") - предусматривает приобретение пробной версии товара (например, пробного доступа). По истечении указанного периода покупателю будет выставлен счет на покупку полной версии товара.
    Длина периода оплаты | Указывается длительность периода времени, по истечении которого системой будет выставлен новый счет на приобретение товара. Значение поля задается для не одноразовых типов оплаты (регулярная и пробный период).
    Единица времени периода оплаты | Определяются единицы времени, используемые для задания продолжительности периода оплаты (месяц, сутки, час и т.д.).
    Пробная для | В данном поле для товара с типом оплаты пробный период указывается полная версия товара. По истечении пробного периода пользователю будет предложено приобрести указанный товар (полную версию).
    Продление без оформления заказа | Данная опция доступна для типа оплаты регулярная. Если опция выбрана, то при продлении товара (пользования товаром) будет рассчитана сумма заказа, но сам заказ не будет сформирован в базе системы. Данная опция может быть полезна при проведении небольших регулярных списаний с внутреннего счета покупателя.
    Вкладка Группы
    Вкладка Группы отображается для элементов торгового каталога, настроенного на режим продажи контента. Служит для управления продажей прав доступа к контенту сайта.
    Поле | Описание
Включить | Поле для выбора группы пользователей, к которой будет осуществляться привязка покупателей данного товара.
Группа пользователей | Название группы пользователей, к которой будет осуществляться привязка покупателей данного товара.
Длительность приписывания | Указывается длительность привязки покупателей к выбранной группе пользователей. По истечении указанного периода покупатель будет удален из списка пользователей данной группы. Если значение поля равно 0, то покупатели приписываются к группе на неограниченный период.
    Вкладка Скидки
    На вкладке Скидки вы можете выбрать виды скидок, которые будут применены к данному товару.
    Поле | Описание
ID | Идентификатор скидки.
Сайт | Идентификатор сайта, на товары которого распространяется действие данной скидки.
Активность | Признак активности скидки. Если скидка не является активной, она не может быть применена.
Название | Название скидки.
Величина | Размер скидки.
Действие | Доступные действия над скидками. С помощью ссылки Изменить вы можете перейти к редактированию параметров скидки.

    * Поля, обязательные для заполнения.

    Закладка "Анонс"

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

    Описание для анонса
Изображение | Изображение малого размера, ассоциируемое с данным элементом для предпросмотра.
Text / HTML | Выбор формата создания и вывода краткого описания элемента инфоблока.
Использовать визуальный редактор | Если эта опция включена, при использовании формата HTML отображаются панели управления, содержащая опции форматирования текста.
    Закладка "Подробно"

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

    Поле | Описание
Изображение | Крупноформатное изображение, ассоциируемое с данным элементом.
Text / HTML | Выбор формата создания и вывода полного описания элемента инфоблока.
Использовать визуальный редактор | Если эта опция включена, при использовании формата HTML отображается панель управления, содержащая опции форматирования текста.
    Закладка "Название разделов"

    Данная форма служит для выбора одного или нескольких разделов инфоблока, к которым относится элемент.

    Поле | Описание
Разделы | Разделы, к которым привязан элемент. Поле не отображается, если для данного типа информационного блока в настройках модуля снят флажок "Содержит разделы" либо в инфоблоке не создан ни один раздел.
    Закладка "Дополнительно"
    Поле | Описание
Индекс сортировки | Вес сортировки элемента. Чем меньше вес сортировки, тем выше отображается элемент.
Внешний код | Символьный код, используемый для связи элемента с внешним источником данных. Поле отображается при включенной опции Показывать код загрузки из внешних источников в настройках модуля Информационные блоки.
Символьный код | Мнемонический код элемента.
Теги | Слова или словосочетания, с помощью которых формируется поиск по тегам.
    Закладка "Документооборот"
    Поле | Описание
Создана | Дата и время создания записи элемента, а также имя пользователя, создавшего элемент.
Изменена | Дата и время последнего изменения записи элемента, а также имя пользователя, изменившего элемент.
Заблокирована | Дата и время блокирования элемента и имя пользователя, заблокировавшего элемент.
Статус | Текущий статус элемента. Создание и настройка параметров статусов выполняется в модуле документооборота.
Комментарии
Произвольный комментарий к статусу документа (например, описание причины изменения статуса).

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Возврат к списку элементов текущего информационного блока.
Применить | Применение внесённых изменений. Продолжение редактирования элемента.
Отменить | Отмена внесённых изменений. Возврат к списку элементов текущего информационного блока.


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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Настройки модуля

В этом разделе

  • Поля формы
  • Кнопки управления
    •

    Управление общими параметрами модуля Информационные блоки осуществляется с помощью формы Настройки модуля: Настройки -> Настройки продукта -> Настройки модулей -> Информационные блоки.

    Поля формы

    Поле | Описание
Использовать визуальный редактор для изменения HTML содержимого | Если эта опция включена, для редактирования наполнения информационных блоков используется HTML-редактор, позволяющий изменять форматирование текста (размер, шрифт и т.д.), вставлять изображения и пр.
Показывать код загрузки из внешних источников | Если опция включена, в административном разделе отображается код, при помощи которого система связывает данные вашего сайта с данными из других источников (например, других каталогов в Интернете).
Путь к экспортируемым RSS файлам | Путь к директории относительно корня сайта, в которой будут сохраняться файлы RSS, содержащие последние данные об изменениях в информационных блоках.
Совместный просмотр секций и элементов | Режим совместного просмотра секций и элементов напоминает функционирование проводника Windows: элементы и подразделы определённого раздела могут быть просмотрены лишь внутри этого раздела.
Максимальная глубина меню разделов | Число в данном поле определяет максимальную глубину разделов информационных блоков при отображении в левом меню, чтобы не создавать перегруженности левого меню.
Максимальное количество разделов в меню | Число в данном поле определяет максимальное количество отображаемых разделов информационных блоков в левом меню административного раздела, чтобы не создавать перегруженности меню.

    Кнопки управления

    Поле | Описание
Сохранить | Сохранение внесённых изменений.
Применить | Сохранить внесённые изменения и остаться на текущей странице.
По умолчанию | Установить настройки по умолчанию.


Экспорт инфоблока в формате CSV

В этом разделе

  • Шаг 1. Инфоблок
  • Шаг 2. Параметры экспорта
  • Шаг 3. Результат
    •

    Форма Выгрузка информационного блока предназначена для экспорта данных из инфоблока в CSV файл.

    Шаг 1. Инфоблок

    Поле | Описание
Информационный блок для экспорта | Выберите информационный блок, данные из которого будут выгружены в CSV файл.

    Для перехода к следующему шагу нажмите кнопку "Далее".

    Шаг 2. Параметры экспорта

    Данная форма служит для задания параметров выгрузки данных в CSV файл.

    Поле | Описание
    Задайте свойства формата файла
    Разделитель полей | Укажите символы, используемые для разделения полей данных.
    Первая строка содержит имена полей | Если первая строка файла будет содержать имена выгружаемых полей данных, установите флаг в это поле.
    Задайте соответствие полей в файле полям в базе
    Выгружать | Название поле | Порядок
[1] | [2] | [3]
    Поле | Описание
[1] Выгружать | Для того чтобы поле могло быть выгружено в CSV файл, установите этот флаг.
[2] Название поля | Названия выгружаемых полей. Важно! Обязательно должно быть выбрано хотя бы одно из полей Уникальный идентификатор (B_IBLOCK_ELEMENT.XML_ID) или Название (B_IBLOCK_ELEMENT.NAME). Эти поля используются для сопоставления элементов в файле элементам в базе данных.
[3] Порядок | Порядок следования полей в выгружаемом файле.
    Сохранить файл данных как ...
    Имя файла данных Укажите полное имя файла (путь к файлу указывается относительно корня сайта), в который буду выгружены данные из инфоблока. Например, /upload/export_file.csv.

    Важно! Если файл с указанным именем уже существует, то он будет перезаписан.

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

    Шаг 3. Результат

    На данном шаге выводится информация о результатах выгрузки данных, а также отображается ссылка для выгрузки CSV файла на локальный компьютер. Для того чтобы повторить выгрузку данных или экспортировать данные из другого инфоблока, нажмите кнопку "Вернуться на первый шаг".


Экспорт инфоблока в формате XML

Форма Экспорт XML (Контент -> Информ. блоки -> Экспорт -> XML) предназначена для экспорта данных из инфоблока в XML файл.

Поле | Описание
Файл для выгрузки | Путь относительно корня сайта к файлу, в который будет выгружен инфоблок. Для файла достаточно задать только его имя и инфоблок будет выгружен по указанному пути в файл <имя_файла>.xml.
Информационный блок | Указывается информационный блок, который необходимо экспортировать.
Длительность шага в секундах | Количество секунд выполнения шага экспорта. Если указано "0", то экспорт инфоблока будет осуществлен за один шаг.

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


Импорт данных в формате CSV

В этом разделе

  • Шаг 1. Файл данных
  • Шаг 2. Формат
  • Шаг 3. Поля
  • Шаг 4. Результат
    •

    Форма импорта (Контент -> Информационные блоки -> Импорт -> CSV) предназначен для импорта данных в формате CSV, хранящихся в отдельном файле, в информационный блок.

    Шаг 1. Файл данных

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

    Поле | Описание
Файл данных | С помощью кнопки "Обзор" выберите файл с загружаемыми данными.
Информационный блок | Выберите информационный блок, в который будет выполняться загрузка данных.

    Шаг 2. Формат

    Поле | Описание
    Формат CSV файла Выберите подходящий формат CSV файла с данными:
    • с разделителями - поля разделяются специальным символом (например, запятой или пробелом);
    • фиксированная ширина полей.
    В зависимости от вашего выбора необходимо заполнить соответствующую форму настроек.
    С разделителями
    Разделитель полей | Укажите символы, используемые для разделения полей данных.
    Первая строка содержит имена полей | Если первая строка файла содержит имена полей данных, установите флаг в это поле.
    Фиксированная ширина полей
    Метки разделителя | Укажите в столбик номера колонок, разделяющие поля.
    Первая строка содержит имена полей | Если первая строка файла содержит имена полей данных, установите флаг в это поле.
    Образцы данных
    В данном поле представлен образец загружаемых данных.

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

    Шаг 3. Поля

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

    Поле | Описание
    Задайте соответствие полей в файле полям в базе
    Установите соответствие между полями загружаемого файла и полями информационного блока, в который выполняется загрузка данных.
    Поля в файле | Поля в базе
[1] | [2]
    Поле | Описание
[1] Поля в файле | Список полей загружаемого файла.
[2] Поля в базе | Список полей инфоблока, в который выполняется загрузка. Важно! Обязательно должно быть выбрано хотя бы одно из полей Уникальный идентификатор (B_IBLOCK_ELEMENT.XML_ID) или Название (B_IBLOCK_ELEMENT.NAME). Эти поля используются для сопоставления записей в файле записям в базе данных.

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

    Дополнительные настройки
    Путь к картинкам | Для загрузки элементов с картинками необходимо предварительно выгрузить картинки в какую-либо папку на сайте с помощью любого FTP-клиента. Путь к папке, в которую вы выгрузили картинки, нужно указать в этом поле.
    Товары, которых не было в файле Определяется действие, которое будет выполнено над элементами инфоблока, которые уже есть в базе, но отсутствуют в загружаемом файле:
    • Деактивировать - элементы инфоблока станут неактивными;
    • Удалить - элементы будут удалены;
    • Не трогать - элементы будут сохранены без изменений.
    Неактивные товары / группы, которые есть в файле Выберите действие, которое будет выполнено над неактивными элементами/группами информационного блока:
    • Оставить как есть - элементы/группы не будут изменены;
    • Активировать - элементы/группы станут активными (т.е. доступными для показа в публичном разделе).
    Время выполнения шага | Длительность одного шага загрузки данных из CSV файла в секундах. Если значение поля 0, то загрузка данных выполняется за один шаг.
    Образцы данных
    В данном поле представлен образец загружаемых данных.

    Для возврата к предыдущему шагу воспользуйтесь кнопкой "Назад". Для выполнения загрузки данных нажмите кнопку "Загрузить данные".

    Шаг 4. Результат

    На данном шаге выводится информация о результатах загрузки данных. Для того чтобы повторить загрузку данных или импортировать данные из другого CSV файла, нажмите кнопку "Вернуться на первый шаг".


Импорт данных в формате XML

Форма импорта (Контент -> Информ. блоки -> Импорт -> XML) предназначен для загрузки данных в формате XML, хранящихся в отдельном файле, в информационный блок.

Поле | Описание
*Файл для загрузки | С помощью кнопки "Открыть…" выберите файл в формате XML с сервера или загрузите с локального компьютера.
*Тип информационного блока Выберите информационный блок, в который будет выполняться загрузка данных.

Примечание: если загружаемый инфоблок уже существует в системе, то независимо от выбранного типа инфоблока и сайтов, он заново загружен не будет. Имеющиеся элементы будут обновлены, новые - добавлены, а над теми элементами, которые отсутствуют в файле, будет совершено действие, указанное в поле Действия над элементами, которых нет в файле.
Если же такого инфоблока в системе нет, то он будет создан в указанном типе, привязан к выбранным сайтам, и его содержимое будет загружено.
*Сайты, к которым будет привязан информационный блок | Сайты, к которым будет привязан инфоблок (если будет создаваться новый инфоблок).
Действия над элементами, которых нет в файле Над элементами, отсутствующими в файле, может быть совершено одно из действий:
  • ничего;
  • либо элементы будут деактивированы;
  • либо они будут удалены.
Длительность шага в секундах | Количество секунд выполнения шага импорта. Если указано "0", то импорт инфоблока будет осуществлен за один шаг.
Автоматически генерировать картинку анонса | Если в описании элемента инфоблока имеется изображение, то при отмеченной опции из него будет сгенерирована картинка анонса, используя максимально допустимые ширину и высоту.
Максимально допустимая ширина | Максимально допустимая ширина картинки анонса.
Максимально допустимая высота | Максимально допустимая высота картинки анонса.
* - Поля, обязательные для заполнения.

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


Создание нового типа информационного блока

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание нового типа информационных блоков

Для того чтобы создать новый тип информационного блока, выполните следующие действия:
  1. Откройте страницу с формой создания типа инфоблоков: Настройки -> Информационные блоки -> Типы информационных блоков.
  2. Нажмите кнопку Добавить новый тип на контекстной панели.
  3. Укажите символьный код нового типа информационных блоков в поле Идентификатор (ID). Символьный код представляет собой произвольный набор латинских символов, понятный администратору сайта. Например, символьный код типа Новости – news.
  4. Для того чтобы инфоблоки создаваемого типа могли содержать разделы и подразделы, установите флаг в поле Использовать древовидный классификатор элементов по разделам. Если инфоблоки данного типа не будут содержать разделы, снимите флажок в этом поле.

  5. Введите название типа информационного блока для разных языков сайта.
  6. В поле Разделы укажите названия разделов для инфоблоков с иерархической структурой. Например, информационный блок Новости может состоять из групп.
  7. Укажите название элементов для инфоблоков данного типа. Например, для типа Новости элементами будут новости.
  8. Нажмите кнопку Сохранить. После сохранения новый тип инфоблоков будет добавлен в секцию Контент административного меню.


Создание инфоблока новостей

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание информационного блока новостей

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

  1. Откройте страницу типа информационных блоков Новости: Административный раздел -> Контент -> Новости.
  2. Нажмите кнопку Добавить инфоблок на контекстной панели.

  3. Выберите, где хранить значения свойств инфоблока: в общей таблице или в отдельной.
  4. Отметьте флажком поле Запись активна, чтобы инфоблок мог быть показан в публичной части сайта.
  5. Укажите символьный код инфоблока, например, company_news. Символьный код используется при выборе элементов или разделов инфоблока для показа в публичном разделе сайта.
  6. Выберите сайт, на котором будут публиковаться новости из данного инфоблока.
  7. Введите название информационного блока, например, Новости компании.
  8. Укажите индекс сортировки.
  9. Укажите значения полей URL страницы информационного блока, URL страницы раздела и URL страницы детального просмотра. Для корректного отображения новостей необходимо указать точный адрес страниц, на которых будет показан список новостей (или других элементов информационного блока), точный адрес страницы, на которой будут просматриваться разделы блока новостей, и адрес страницы, на которой будет показан полный текст новости (или другого элемента):
    • URL страницы информационного блока: #SITE_DIR#/about/news/index.php?ID=#IBLOCK_ID#
    • URL страницы раздела: #SITE_DIR#/about/news/list.php?ID=#ID#
    • URL страницы детального просмотра: #SITE_DIR#/about/news/detail.php?ID=#ID#
  10. Разрешите индексацию разделов и элементов информационного блока для модуля поиска.
  11. Загрузите изображение для информационного блока. В публичной части изображение будет показано в списке информационных блоков.
  12. Добавьте описание блока. В публичной части сайта описание будет размещено в списке информационных блоков.
  13. Если при описании элементов инфоблока будут использоваться свойства, следует создать нужные свойства.
    Например, для каждой новости инфоблока Новости компании может быть указан источник и автор. Для этого перейдите на закладку Свойства и создайте свойства Источник и Автор (тип свойств Строка). В результате при добавлении новости вам будет предложено указать значения этих свойств.

  14. Настройте права групп пользователей на доступ к инфоблоку. Для этого перейдите на закладку Доступ.
  15. Нажмите кнопку Сохранить, чтобы сохранить новый информационный блок.


Добавление новости

Для того чтобы добавить новость, выполните следующие действия.

  1. Откройте страницу типа информационных блоков Новости: Административный раздел -> Контент -> Новости.
  2. Выберите инфоблок, в который вы хотите добавить запись. Например, инфоблок Новости компании.
  3. В столбце Действия выберите пункт с названием элемента инфоблока. В данном случае это Новость.

    Вы перейдете на страницу со списком элементов информационного блока Новости компании.
  4. На странице со списком новостей выберите пункт меню Добавить элемент. Вы перейдете к форме создания нового элемента (новости).
  5. Установите флажок в поле Запись активна, чтобы новость была доступна для просмотра в публичном разделе сайта.
  6. Укажите период активности записи. Нажмите на кнопку [image], расположенную рядом с полями Период активности, чтобы использовать календарь для выбора даты. Вы можете заранее добавить новость в административный раздел. Показ новости начнется с указанной вами даты.

  7. Введите название новости.
  8. Перейдите на закладку Анонс и создайте описание новости для анонса.
  9. Укажите полный текст новости. Для этого перейдите на закладку Подробно.
  10. На закладке Группы выберите раздел инфоблока Новости компании, к которому относится новость.
  11. Откройте закладку Дополнительно. Здесь вы можете указать индекс сортировки и символьный код новости.
  12. Нажмите кнопку Сохранить, чтобы добавить новость и вернуться к списку новостей.


Новости (комплексный компонент)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Новости"

Данный комплексный компонент позволяет создать новостной раздел на сайте. Настройки позволяют устанавливать параметры просмотра детальной информации, списка элементов, устанавливать настройки экспорта в rss. Компонент также предоставляет возможность организации голосования за новости (или другие элементы инфоблоков), настройки отзывов, вывода материалов по темам, настройки ЧПУ и многого другого.

Пример вызова

<?$APPLICATION->IncludeComponent(
        "bitrix:news",
        ".default",
        Array(
            "DISPLAY_DATE" => "Y",
            "DISPLAY_PICTURE" => "Y",
            "DISPLAY_PREVIEW_TEXT" => "Y",
            "SEF_MODE" => "N",
            "IBLOCK_TYPE" => "news",
            "IBLOCK_ID" => "33",
            "NEWS_COUNT" => "5",
            "USE_SEARCH" => "N",
            "USE_RSS" => "Y",
            "USE_RATING" => "N",
            "USE_CATEGORIES" => "Y",
            "USE_REVIEW" => "N",
            "USE_FILTER" => "N",
            "SORT_BY1" => "ACTIVE_FROM",
            "SORT_ORDER1" => "DESC",
            "SORT_BY2" => "SORT",
            "SORT_ORDER2" => "ASC",
            "PREVIEW_TRUNCATE_LEN" => "0",
            "LIST_ACTIVE_DATE_FORMAT" => "d.m.Y",
            "LIST_FIELD_CODE" => array(0=>"",),
            "LIST_PROPERTY_CODE" => array(0=>"",),
            "HIDE_LINK_WHEN_NO_DETAIL" => "N",
            "DISPLAY_NAME" => "Y",
            "META_KEYWORDS" => "KEYWORDS",
            "META_DESCRIPTION" => "DESCRIPTION",
            "DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",
            "DETAIL_FIELD_CODE" => array(0=>"",),
            "DETAIL_PROPERTY_CODE" => array(0=>"SOURCE",),
            "DETAIL_DISPLAY_TOP_PAGER" => "N",
            "DETAIL_DISPLAY_BOTTOM_PAGER" => "Y",
            "DETAIL_PAGER_TITLE" => "Страница",
            "DETAIL_PAGER_TEMPLATE" => "",
            "DISPLAY_PANEL" => "Y",
            "SET_TITLE" => "Y",
            "INCLUDE_IBLOCK_INTO_CHAIN" => "N",
            "ADD_SECTIONS_CHAIN" => "Y",
            "USE_PERMISSIONS" => "N",
            "CACHE_TYPE" => "A",
            "CACHE_TIME" => "3600",
            "CACHE_FILTER" => "N",
            "DISPLAY_TOP_PAGER" => "N",
            "DISPLAY_BOTTOM_PAGER" => "Y",
            "PAGER_TITLE" => "Новости",
            "PAGER_SHOW_ALWAYS" => "N",
            "PAGER_TEMPLATE" => "",
            "PAGER_DESC_NUMBERING" => "N",
            "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
            "NUM_NEWS" => "20",
            "NUM_DAYS" => "360",
            "YANDEX" => "N",
            "CATEGORY_IBLOCK" => array(0=>"33",1=>"29",2=>"8",),
            "CATEGORY_CODE" => "THEMES",
            "CATEGORY_ITEMS_COUNT" => "4",
            "VARIABLE_ALIASES" => Array(
                "SECTION_ID" => "SECTION_ID",
                "ELEMENT_ID" => "news"
            )
        )
);?>

Описание параметров

Дополнительно
DISPLAY_DATE
[Y|N] При отмеченной опции будут выведены даты элементов.
DISPLAY_PICTURE
[Y|N] При отмеченной опции будут выведены изображения для анонса.
DISPLAY_PREVIEW_TEXT
[Y|N] При отмеченной опции будет выведен текст анонса для элементов.
Основные параметры
IBLOCK_TYPE
Тип информационного блока (используется только для проверки).
IBLOCK_ID
Код информационного блока, из которого будет выводиться информация.
NEWS_COUNT
Количество новостей на странице. Число, указанное в данном поле, определяет количество новостей на странице при постраничной навигации.
USE_SEARCH
[Y|N] Разрешить поиск. При установленной опции будет выведена форма поиска. Поиск будет осуществляться только в выводимой данным компонентом информации.
Настройки RSS
USE_RSS
[Y|N] Разрешить RSS. При установленной опции разрешен экспорт в RSS и доступны поля для спецификации настроек RSS
NUM_NEWS
Количество новостей для экспорта. Указывается число экспортируемых в RSS новостей.
NUM_DAYS
Количество дней для экспорта. Параметр определяет, за сколько дней экспортировать новости. Например, за последние 30 дней.
YANDEX
[Y|N] Экспортировать в диалект Яндекса. Опция служит для подключения формата для отправки новостей службе Яндекс.Новости и отличается дополнительной веткой, содержащей полный текст элемента информационного блока (DETAIL_TEXT). В этом случае элементы информационного блока выбираются за последние два дня без ограничения количества.
Настройки голосования
USE_RATING
[Y|N] Разрешить голосование. При установленной опции посетители смогут голосовать за новости, выставляя баллы, на странице с детальной информацией. При установленной опции становятся доступными следующие поля:
MAX_VOTE
Максимальный балл. Указывается максимально возможный балл, т.е. число возможных оценок.
VOTE_NAMES
Массив, в котором задаются подписи к баллам в таком виде:

"VOTE_NAMES" => Array("оч плохо","плохо","удв","хор","отл",""),
Если подписи заданы, то они будут выведены вместо оценок-цифр. Если массив не задан, то будут использованы значения по умолчанию.
Настройка материалов по теме
USE_CATEGORIES
[Y|N] Опция включает возможность вывода материалов по теме. Материалы в привязке к темам создаются следующим образом. Создается инфоблок (например, «темы»), в котором определяются будущие темы материалов в виде разделов. Разделы заполнять элементами не требуется. В настройках инфоблока, элементы которого предполагается привязывать к созданным темам, определятся свойство типа «Привязка к разделам» и выбирается инфоблок, в котором разделы являются темами. И далее для каждого из элементов этого инфоблока можно задать свойство привязки к теме.
CATEGORY_IBLOCK
Инфоблоки. Выбираются инфоблоки, из которых будет происходить выборка информации. В коде задается в виде массива.

array(0=>"33",1=>"29",2=>"8",),
CATEGORY_CODE
Код свойства. Поле предназначено для задания кода свойства, в котором хранится привязка элемента к определенному разделу (например, THEMES).
CATEGORY_ITEMS_COUNT
Максимальное количество материалов из одного инфоблока. Число, указанное здесь определяет максимальное количество элементов, которое можно выбрать из одного инфоблока.
Настройки отзывов
USE_REVIEW
[Y|N] Разрешить отзывы. Опция подключает настройки отзывов, выводимых на странице. При установленной опции становятся доступными следующие поля:
MESSAGES_PER_PAGE
Количество сообщений на одной странице. При наличии оставленных отзывов поле определяет количество выводимых на одной странице сообщений.
USE_CAPTCHA
[Y|N] Использовать CAPTCHA. Установленная опция определяет вывод изображения и поля ввода CAPTCHA в форме добавления отзыва в публичной части.
PATH_TO_SMILE
Путь относительно корня сайта к папке со смайлами. Значение по умолчанию /bitrix/images/forum/smile/.
FORUM_ID
ID форума, созданного для отзывов посетителей.
URL_TEMPLATES_READ
Указывается относительный путь к странице чтения темы на форуме. Если поле пусто, путь к странице будет получен из настроек форума.
Настройки фильтра
USE_FILTER
[Y|N] Показывать фильтр. При отмеченной опции доступны следующие поля:
FILTER_NAME
Фильтр. Задается имя переменной, в которой передается массив параметров из фильтра. Служит для определения выходящих из фильтра элементов. Поле может быть оставлено пустым, тогда используется значение по умолчанию.
FILTER_FIELD_CODE
Поля. В данном поле можно выбрать нужные поля элементов инфоблока, по которым будет возможна фильтрация. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив:

Array("NAME","PREVIEW_TEXT","PREVIEW_PICTURE","DETAIL_TEXT",""),
FILTER_PROPERTY_CODE
Свойства. В данном поле перечислены свойства элементов инфоблока, среди которых можно выбрать те, по которым будет возможна фильтрация. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив, например, Array("SOURCE","USER","","").
Источник данных
SORT_BY1
Поле для первой сортировки новостей:
  • ID – по ID;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER1
Направление для первой сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
SORT_BY2
Поле для второй сортировки новостей.
  • ID – по ID;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER2
Направление для второй сортировки новостей.
  • asc – по возрастанию;
  • desc – по убыванию.
Управление адресами страниц
SEF_MODE
[Y|N] Включить поддержку ЧПУ.
VARIABLE_ALIASES
При отключенной опции SEF_MODE доступны поля для задания Идентификатора раздела (например, SECTION_ID) и Идентификатора новости (например, ELEMENT_ID). Данные поля хранятся в массиве идентификаторов раздела и новости, например,

"VARIABLE_ALIASES" => Array(
        "SECTION_ID" => "SECTION_ID",
        "ELEMENT_ID" => "ELEMENT_ID"
)
При включенной опции SEF_MODE доступны следующие параметры:
SEF_FOLDER
Каталог ЧПУ (относительно корня сайта). В данном поле указывается каталог, который будет отображаться в URL при переходе на создаваемую страницу.
SEF_URL_TEMPLATES
В данном массиве определяются шаблоны адресов различных страниц в новостном разделе:
  • Cтраница общего списка
    Указывается путь к общему списку элементов. Переход на эту страницу будет происходить по ссылке Вернуться к списку.
  • Страница раздела
    Для перехода на страницу раздела в в качестве параметра должно передаваться ID раздела ( #SECTION_ID#). По умолчанию поле содержит #SECTION_ID#/. Если разделы в инфоблоке не заданы, то поле требуется оставить пустым.
  • Страница детального просмотра
    Указывается путь к странице детального просмотра. В качестве параметра должно передаваться ID элемента.
  • Страница поиска
    Задается часть содержимого адресной строки при переходе к странице поиска, например, search/
  • Страница RSS
    Задается часть содержимого адресной строки при переходе к странице rss, например, rss/
  • Страница RSS для раздела
    Задается часть содержимого адресной строки при переходе к странице rss в каждом разделе. По умолчанию #SECTION_ID#/rss/

"SEF_URL_TEMPLATES" => Array(
            "news" => "list/",
            "section" => "section/",
            "detail" => "#ELEMENT_ID#/",
            "search" => "search/",
            "rss" => "rss/",
            "rss_section" => "#SECTION_ID#/rss/"
        ),
В публичной части редактора путь к каждой странице задается в отдельном поле.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кэшироваться. Имеет смысл отмечать, если многие пользователи используют одну и туже выборку из фильтра.
Дополнительные настройки
DISPLAY_PANEL
[Y|N] Добавлять в административную панель кнопки для данного компонента. При установленной опции кнопки будут отображены в режиме редактирования сайта на административной панели и в наборе кнопок области редактирования данного компонента.
SET_TITLE
[Y|N] Устанавливать заголовок страницы. При установленной опции в качестве заголовка страницы будет установлено имя текущего инфоблока.
INCLUDE_IBLOCK_INTO_CHAIN
[Y|N] Включать инфоблок в цепочку навигации. При установленной опции в цепочку навигации будет добавлено имя инфоблока.
ADD_SECTIONS_CHAIN
[Y|N] Включать раздел в цепочку навигации. При наличии разделов в инфоблоке и установленной опции при переходе по разделам в цепочку навигации будут добавлены названия разделов.
USE_PERMISSIONS
[Y|N] Использовать дополнительное ограничение доступа. Опция позволяет ограничить доступ к детальной информации элементов инфоблока. При установленной опции становится доступным следующее поле:
GROUP_PERMISSIONS
Группы пользователей, имеющие доступ к детальной информации. Выведены все группы пользователей, среди которых можно выбрать те, которые смогут просматривать детальную информацию.
Настройки детального просмотра
DISPLAY_NAME
[Y|N] При отмеченной опции будет выводиться название элемента.
META_KEYWORDS
Установить ключевые слова страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержатся ключевые слова.
META_DESCRIPTION
Установить описание страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержится описание.
DETAIL_ACTIVE_DATE_FORMAT
Формат показа даты. В выпадающем списке перечислены все возможные варианты показа даты, формируемые внутри компонента. Выбрав пункт (другое)-> вы можете сформировать свой вариант на основании php-функции date.
Предустановленные варианты формата даты:
Код | Формат даты
d-m-Y | 22-02-2008
m-d-Y | 02-22-2008
Y-m-d | 2008-02-22
d.m.Y | 22.02.2008
m.d.Y | 02.22.2008
j M Y | 22 Фев 2008
M j, Y | Фев 22, 2008
j F Y | 22 Февраль 2008
F j, Y | Февраль 22, 2008
d.m.y g:i A | 22.02.07 7:30 AM
d.m.y G:i | 22.02.07 7:30
d.m.Y H:i | 22.02.2008 07:30
DETAIL_FIELD_CODE
Поля. В массиве указываются поля, которые будут отображены на странице детального просмотра. Задается в виде массива с символьными именами полей в коде или в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то будут выведены поля по умолчанию.
DETAIL_PROPERTY_CODE
Свойства. Среди свойств инфоблока можно выбрать те, которые будут отображены на странице детального просмотра. Задается в виде массива с символьными именами свойств в коде либо в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то свойства отображены не будут.
Настройки списка
PREVIEW_TRUNCATE_LEN
Максимальная длина анонса для вывода (только для типа текст). Если тип анонса у элемента инфоблока – текст, то можно указать максимальную длину, после которой анонс будет отсечен.
LIST_ACTIVE_DATE_FORMAT
Формат показа даты. В выпадающем списке перечислены все возможные варианты показа даты, формируемые внутри компонента. Выбрав пункт (другое)->, вы можете сформировать свой вариант на основании php-функции date.
Предустановленные варианты формата даты:
Код | Формат даты
d-m-Y | 22-02-2008
m-d-Y | 02-22-2008
Y-m-d | 2008-02-22
d.m.Y | 22.02.2008
m.d.Y | 02.22.2008
j M Y | 22 Фев 2008
M j, Y | Фев 22, 2008
j F Y | 22 Февраль 2008
F j, Y | Февраль 22, 2008
d.m.y g:i A | 22.02.07 7:30 AM
d.m.y G:i | 22.02.07 7:30
d.m.Y H:i | 22.02.2008 07:30
LIST_FIELD_CODE
Поля. В массиве указываются поля, которые будут отображены на странице списка элементов. Задается в виде массива с символьными именами полей в коде или в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то будут выведены поля по умолчанию.
LIST_PROPERTY_CODE
Свойства. Среди свойств инфоблока можно выбрать те, которые будут отображены на странице списка элементов. Задается в виде массива с символьными именами свойств в коде либо в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то свойства отображены не будут.
HIDE_LINK_WHEN_NO_DETAIL
[Y|N] Скрывать ссылку, если нет детального описания. Опция позволяет скрыть ссылку, если нет детальной информации или у пользователя нет прав на ее просмотр.
Настройки постраничной навигации детального просмотра
DISPLAY_TOP_PAGER
[Y|N] Выводить над списком. При отмеченной опции навигация по страницам будет выведена вверху страницы, над списком.
DISPLAY_BOTTOM_PAGER
[Y|N] Выводить под списком. При отмеченной опции навигация по страницам будет выведена внизу страницы, под списком.
PAGER_TITLE
Название категорий. В данном поле указывается название категорий, по которым происходит перемещение при детальном просмотре (например, страница, глава и др.)
PAGER_SHOW_ALWAYS
[Y|N] Выводить всегда. Если данный флаг не отмечен, постраничная навигация не будет выводиться, если все элементы помещаются на одной странице. Если отмечен, то всегда будет выводиться.
PAGER_TEMPLATE
Название шаблона. В данном поле указывается имя шаблона постраничной навигации. Если поле пусто, то выбирается шаблон по умолчанию (.default). Также в системе задан шаблон orange.
PAGER_DESC_NUMBERING
[Y|N] Использовать обратную навигацию. Для обратной навигации в системе происходит обратный отсчет страниц (последняя страница считается первой). И таким образом постоянно меняется лишь последняя страница при добавлении нового элемента. Это верно, если новые элементы попадают всегда вверх списка (отсортированы по дате начала активности по убыванию). Таким образом, при отмеченной опции включается описанный механизм.
PAGER_DESC_NUMBERING_CACHE_TIME
Время кеширования страниц для обратной навигации. Согласно механизму обратной навигации последние страницы (для пользователя) никогда не меняются (если элементы там содержащиеся не редактируются и не удаляются). Тогда их можно закешировать на длительный срок.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Список новостей

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список новостей"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
        "bitrix:news.list",
        "",
        Array(
            "DISPLAY_DATE" => "Y",
            "DISPLAY_NAME" => "Y",
            "DISPLAY_PICTURE" => "Y",
            "DISPLAY_PREVIEW_TEXT" => "Y",
            "IBLOCK_TYPE" => "news",
            "IBLOCK_ID" => "33",
            "NEWS_COUNT" => "10",
            "SORT_BY1" => "ACTIVE_FROM",
            "SORT_ORDER1" => "DESC",
            "SORT_BY2" => "SORT",
            "SORT_ORDER2" => "ASC",
            "FILTER_NAME" => "",
            "FIELD_CODE" => Array("",""),
            "PROPERTY_CODE" => Array("",""),
            "DETAIL_URL" => "news_detail.php?ID=#ELEMENT_ID#",
            "PREVIEW_TRUNCATE_LEN" => "",
            "ACTIVE_DATE_FORMAT" => "j F Y",
            "DISPLAY_PANEL" => "N",
            "SET_TITLE" => "Y",
            "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
            "ADD_SECTIONS_CHAIN" => "Y",
            "HIDE_LINK_WHEN_NO_DETAIL" => "N",
            "PARENT_SECTION" => "",
            "CACHE_TYPE" => "A",
            "CACHE_TIME" => "3600",
            "CACHE_FILTER" => "N",
            "DISPLAY_TOP_PAGER" => "N",
            "DISPLAY_BOTTOM_PAGER" => "Y",
            "PAGER_TITLE" => "Новости",
            "PAGER_SHOW_ALWAYS" => "Y",
            "PAGER_TEMPLATE" => "",
            "PAGER_DESC_NUMBERING" => "N",
            "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000"
            )
);?>

Описание параметров

Дополнительно
DISPLAY_DATE
[Y|N] При отмеченной опции будут выведены даты элементов.
DISPLAY_NAME
[Y|N] Выводить название элемента. При отмеченной опции для каждого элемента будет выведено его название.
DISPLAY_PICTURE
[Y|N] При отмеченной опции будут выведены изображения для анонса, если они заданы.
DISPLAY_PREVIEW_TEXT
[Y|N] При отмеченной опции будет выведен текст анонса для элементов, если он определен для элемента.
Основные параметры
IBLOCK_TYPE
Тип информационного блока (используется только для проверки).
IBLOCK_ID
Код информационного блока, из которого будет выводиться информация.
NEWS_COUNT
Количество новостей на странице. Число, указанное в данном поле, определяет количество новостей на одной странице.
Источник данных
SORT_BY1
Поле для первой сортировки новостей:
  • ID – по ID;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER1
Направление для первой сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
SORT_BY2
Поле для второй сортировки новостей.
  • ID – по ID;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER2
Направление для второй сортировки новостей.
  • asc – по возрастанию;
  • desc – по убыванию.
FILTER_NAME
Фильтр. Задается имя переменной, в которой передается массив параметров из фильтра. Служит для определения выходящих из фильтра элементов. Поле может быть оставлено пустым, тогда используется значение по умолчанию.
FIELD_CODE
Поля. В данном поле можно выбрать нужные поля элементов инфоблока, по которым будет возможна фильтрация. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив:

Array("NAME","PREVIEW_TEXT","PREVIEW_PICTURE","DETAIL_TEXT",""),
PROPERTY_CODE
Свойства. В данном поле перечислены свойства элементов инфоблока, среди которых можно выбрать те, по которым будет возможна фильтрация. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив.
Шаблоны ссылок
DETAIL_URL
URL страницы детального просмотра (по умолчанию - из настроек инфоблока). В поле указывается шаблон ссылки на страницу детального просмотра. Например, news_detail.php?ID=#ELEMENT_ID#
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кешироваться. Имеет смысл отмечать, если многие пользователи используют одну и ту же выборку из фильтра.
Дополнительные настройки
PREVIEW_TRUNCATE_LEN
Максимальная длина анонса для вывода (только для типа текст). Если тип анонса у элемента инфоблока – текст, то можно указать максимальную длину, при превышении которой анонс будет отсечен.
ACTIVE_DATE_FORMAT
Формат показа даты. В выпадающем списке перечислены все возможные варианты показа даты, формируемые внутри компонента. Выбрав пункт (другое)->, вы можете сформировать свой вариант на основании php-функции date.
Предустановленные варианты формата даты:
Код | Формат даты
d-m-Y | 22-02-2008
m-d-Y | 02-22-2008
Y-m-d | 2008-02-22
d.m.Y | 22.02.2008
m.d.Y | 02.22.2008
j M Y | 22 Фев 2008
M j, Y | Фев 22, 2008
j F Y | 22 Февраль 2008
F j, Y | Февраль 22, 2008
d.m.y g:i A | 22.02.07 7:30 AM
d.m.y G:i | 22.02.07 7:30
d.m.Y H:i | 22.02.2008 07:30
DISPLAY_PANEL
[Y|N] Добавлять в административную панель кнопки для данного компонента. При установленной опции кнопки будут отображены в режиме редактирования сайта на административной панели и в наборе кнопок области редактирования данного компонента.
SET_TITLE
[Y|N] Устанавливать заголовок страницы. При установленной опции в качестве заголовка страницы будет установлено имя текущего инфоблока.
INCLUDE_IBLOCK_INTO_CHAIN
[Y|N] Включать инфоблок в цепочку навигации. При установленной опции в цепочку навигации будет добавлено имя инфоблока.
ADD_SECTIONS_CHAIN
[Y|N] Включать раздел в цепочку навигации. При наличии разделов в инфоблоке и установленной опции при переходе по разделам в цепочку навигации будут добавлены названия разделов.
HIDE_LINK_WHEN_NO_DETAIL
[Y|N] Скрывать ссылку, если нет детального описания. Опция позволяет скрыть ссылку, если нет детальной информации или у пользователя нет прав на ее просмотр.
PARENT_SECTION
ID раздела. В данном поле можно указать ID "родительского" раздела, чтобы ограничить выборку элементов по нему. Параметр используется редко.
Настройки постраничной навигации детального просмотра
DISPLAY_TOP_PAGER
[Y|N] Выводить над списком. При отмеченной опции навигация по страницам будет выведена вверху страницы, над списком.
DISPLAY_BOTTOM_PAGER
[Y|N] Выводить под списком. При отмеченной опции навигация по страницам будет выведена внизу страницы, под списком.
PAGER_TITLE
Название категорий. В данном поле указывается название категорий, по которым происходит перемещение при детальном просмотре (например, страница, глава и др.)
PAGER_SHOW_ALWAYS
[Y|N] Выводить всегда. если данный флаг не отмечен постраничная навигация не будет выводиться, если все элементы помещаются на одной странице. Если отмечен, то всегда будет выводиться.
PAGER_TEMPLATE
Название шаблона. В данном поле указывается имя шаблона постраничной навигации. Если поле пусто, то выбирается шаблон по умолчанию (.default). Также в системе задан шаблон orange.
PAGER_DESC_NUMBERING
[Y|N] Использовать обратную навигацию. Для обратной навигации в системе происходит обратный отсчет страниц (последняя страница считается первой). И таким образом постоянно меняется лишь последняя страница при добавлении нового элемента. Это верно, если новые элементы попадают всегда вверх списка (отсортированы по дате начала активности по убыванию). Таким образом, при отмеченной опции включается описанный механизм.
PAGER_DESC_NUMBERING_CACHE_TIME
Время кеширования страниц для обратной навигации. Согласно механизму обратной навигации последние страницы (для пользователя) никогда не меняются (если элементы там содержащиеся не редактируются и не удаляются). Тогда их можно закешировать на длительный срок.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Новость детально

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Новость детально"

Одностраничный компонент, позволяющий настроить вывод детального описание элемента инфоблока, детального изображения и т.д. Различные опции компонента позволяют определить внешний вид страницы детального просмотра, специфицировать выводимые поля, настроить кеширование, постраничную навигацию и другие параметры.

Пример вызова

<?$APPLICATION->IncludeComponent(
    "bitrix:news.detail",
    "",
    Array(
        "DISPLAY_DATE" => "Y",
        "DISPLAY_NAME" => "Y",
        "DISPLAY_PICTURE" => "Y",
        "DISPLAY_PREVIEW_TEXT" => "Y",
        "IBLOCK_TYPE" => "news",
        "IBLOCK_ID" => "33",
        "ELEMENT_ID" => $_REQUEST["ID"],
        "CHECK_DATES" => "Y",
        "FIELD_CODE" => Array("",""),
        "PROPERTY_CODE" => Array("",""),
        "IBLOCK_URL" => "news.php?ID=#IBLOCK_ID#",
        "META_KEYWORDS" => "KEYWORDS",
        "META_DESCRIPTION" => "DESCRIPTION",
        "DISPLAY_PANEL" => "N",
        "SET_TITLE" => "Y",
        "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
        "ADD_SECTIONS_CHAIN" => "Y",
        "ACTIVE_DATE_FORMAT" => "j F Y",
        "USE_PERMISSIONS" => "Y",
        "GROUP_PERMISSIONS" => Array("15"),
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "DISPLAY_TOP_PAGER" => "N",
        "DISPLAY_BOTTOM_PAGER" => "Y",
        "PAGER_TITLE" => "Страница",
        "PAGER_TEMPLATE" => ""
        )
);?>

Описание параметров

Дополнительно
DISPLAY_DATE
[Y|N] При отмеченной опции будут выведены даты элементов.
DISPLAY_NAME
[Y|N] Выводить название элемента. При отмеченной опции для каждого элемента будет выведено его название.
DISPLAY_PICTURE
[Y|N] При отмеченной опции будут выведены изображения для анонса, если они заданы.
DISPLAY_PREVIEW_TEXT
[Y|N] При отмеченной опции будет выведен текст анонса для элементов, если он определен для элемента.
Основные параметры
IBLOCK_TYPE
Тип информационного блока (используется только для проверки).
IBLOCK_ID
Код информационного блока, из которого будет выводиться информация.
ELEMENT_ID
ID новости. Поле служит для указания ID новости. Может быть задано явно, а может передаваться из массива _REQUEST. По умолчанию поле содержит ={$_REQUEST["ID"]}
Источник данных
CHECK_DATES
[Y|N] Показывать только активные на данный момент элементы. При отмеченной опции будут выведены только активные по дате элементы.
FIELD_CODE
Поля. В данном поле можно выбрать нужные поля элементов инфоблока, которые будут выведены. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив:

Array("NAME","PREVIEW_TEXT","PREVIEW_PICTURE","DETAIL_TEXT",""),
При выборе пункта (не выбрано)-> и без указания вычисления полей в строках ниже (т.е. если задан пустой массив), на странице списка будут выведены поля по умолчанию.
PROPERTY_CODE
Свойства. В данном поле перечислены свойства элементов инфоблока, среди которых можно выбрать те, которые будут выведены. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив. При выборе пункта (не выбрано)-> и без указания вычисления полей в строках ниже, на странице детального просмотра свойства не будут выведены.
Шаблоны ссылок
IBLOCK_URL
URL страницы просмотра списка элементов (по умолчанию - из настроек инфоблока). В поле задается адрес страницы со списком элементов инфоблока. По умолчанию поле содержит news.php?ID=#IBLOCK_ID#
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
Дополнительные настройки
META_KEYWORDS
Установить ключевые слова страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержатся ключевые слова.
META_DESCRIPTION
Установить описание страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержится описание.
DISPLAY_PANEL
[Y|N] Добавлять в административную панель кнопки для данного компонента. При установленной опции кнопки будут отображены в режиме редактирования сайта на административной панели и в наборе кнопок области редактирования данного компонента.
SET_TITLE
[Y|N] Устанавливать заголовок страницы. При установленной опции в качестве заголовка страницы будет установлено имя текущего элемента.
INCLUDE_IBLOCK_INTO_CHAIN
[Y|N] Включать инфоблок в цепочку навигации. При установленной опции в цепочку навигации будет добавлено имя инфоблока.
ADD_SECTIONS_CHAIN
[Y|N] Включать раздел в цепочку навигации. При наличии разделов в инфоблоке и установленной опции при переходе по разделам в цепочку навигации будут добавлены названия разделов.
PREVIEW_TRUNCATE_LEN
Максимальная длина анонса для вывода (только для типа текст). Если тип анонса у элемента инфоблока – текст, то можно указать максимальную длину, при превышении которой анонс будет отсечен.
ACTIVE_DATE_FORMAT
Формат показа даты. В выпадающем списке перечислены все возможные варианты показа даты, формируемые внутри компонента. Выбрав пункт (другое)->, вы можете сформировать свой вариант на основании php-функции date.
Предустановленные варианты формата даты:
Код | Формат даты
d-m-Y | 22-02-2008
m-d-Y | 02-22-2008
Y-m-d | 2008-02-22
d.m.Y | 22.02.2008
m.d.Y | 02.22.2008
j M Y | 22 Фев 2008
M j, Y | Фев 22, 2008
j F Y | 22 Февраль 2008
F j, Y | Февраль 22, 2008
d.m.y g:i A | 22.02.07 7:30 AM
d.m.y G:i | 22.02.07 7:30
d.m.Y H:i | 22.02.2008 07:30
USE_PERMISSIONS
[Y|N] Использовать дополнительное ограничение доступа. Опция позволяет ограничить доступ к детальной информации элементов инфоблока. При установленной опции становится доступным следующее поле:
GROUP_PERMISSIONS
Группы пользователей, имеющие доступ к детальной информации. Выведены все группы пользователей, среди которых можно выбрать те, которые смогут просматривать детальную информацию.
Настройки постраничной навигации
DISPLAY_TOP_PAGER
[Y|N] Выводить над списком. При отмеченной опции навигация по страницам будет выведена вверху страницы, над списком.
DISPLAY_BOTTOM_PAGER
[Y|N] Выводить под списком. При отмеченной опции навигация по страницам будет выведена внизу страницы, под списком.
PAGER_TITLE
Название категорий. В данном поле указывается название категорий, по которым происходит перемещение при детальном просмотре (например, страница, глава и др.)
PAGER_TEMPLATE
Название шаблона. В данном поле указывается имя шаблона постраничной навигации. Если поле пусто, то выбирается шаблон по умолчанию (.default). Также в системе задан шаблон orange.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Лента

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Лента"

Одностраничный компонент, осуществляющий вывод списка элементов инфоблоков с датой и заголовком со ссылкой на страницу с подробной информацией.

Пример вызова

<?$APPLICATION->IncludeComponent(
    "bitrix:news.line",
    "",
    Array(
        "IBLOCK_TYPE" => "articles",
        "IBLOCKS" => Array("29"),
        "NEWS_COUNT" => "10",
        "SORT_BY1" => "ACTIVE_FROM",
        "SORT_ORDER1" => "DESC",
        "SORT_BY2" => "SORT",
        "SORT_ORDER2" => "ASC",
        "DETAIL_URL" => "news/news_detail.php?ID=#ELEMENT_ID#",
        "ACTIVE_DATE_FORMAT" => "j F Y",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "300"
    )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационного блока. Указывается тип, инфоблоки которого будут использоваться.
IBLOCK_ID
Коды информационных блоков, из которых будет выводиться информация.
NEWS_COUNT
Количество новостей на странице. Число, указанное в данном поле, определяет количество новостей на одной странице.
Источник данных
SORT_BY1
Поле для первой сортировки новостей:
  • ID – по ID;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER1
Направление для первой сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
SORT_BY2
Поле для второй сортировки новостей.
  • ID – по ID;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER2
Направление для второй сортировки новостей.
  • asc – по возрастанию;
  • desc – по убыванию.
Шаблоны ссылок
DETAIL_URL
URL, ведущий на страницу с детальной информацией элемента раздела (по умолчанию - из настроек инфоблока). Указывается путь к странице с детальным описанием элемента инфоблока. Через параметр должно передаваться ID элемента, например, news/news_detail.php?ID=#ELEMENT_ID#
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
Дополнительные настройки
ACTIVE_DATE_FORMAT
Формат показа даты. В выпадающем списке перечислены все возможные варианты показа даты, формируемые внутри компонента. Выбрав пункт (другое)->, вы можете сформировать свой вариант на основании php-функции date.
Предустановленные варианты формата даты:
Код | Формат даты
d-m-Y | 22-02-2008
m-d-Y | 02-22-2008
Y-m-d | 2008-02-22
d.m.Y | 22.02.2008
m.d.Y | 02.22.2008
j M Y | 22 Фев 2008
M j, Y | Фев 22, 2008
j F Y | 22 Февраль 2008
F j, Y | Февраль 22, 2008
d.m.y g:i A | 22.02.07 7:30 AM
d.m.y G:i | 22.02.07 7:30
d.m.Y H:i | 22.02.2008 07:30
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Календарь

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Календарь"

Одностраничный компонент, который служит для формирования и вывода календаря новостей или событий. Настройки позволяют настраивать внешний вид календаря, указывать его тип. Также компонент содержит стандартные настройки управления шаблоном, кешированием и т.д.

Пример вызова

<?$APPLICATION->IncludeComponent(
    "bitrix:news.calendar",
    "",
    Array(
        "IBLOCK_TYPE" => "news",
        "IBLOCK_ID" => "33",
        "MONTH_VAR_NAME" => "month",
        "YEAR_VAR_NAME" => "year",
        "WEEK_START" => "1",
        "DATE_FIELD" => "DATE_ACTIVE_FROM",
        "TYPE" => "EVENTS",
        "SHOW_YEAR" => "Y",
        "SHOW_TIME" => "Y",
        "TITLE_LEN" => "0",
        "SET_TITLE" => "Y",
        "SHOW_CURRENT_DATE" => "Y",
        "SHOW_MONTH_LIST" => "Y",
        "NEWS_COUNT" => "0",
        "DETAIL_URL" => "news_detail.php?ID=#ELEMENT_ID#",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600"
        )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационного блока (используется только для проверки).
IBLOCK_ID
Код информационного блока, из которого будет выводиться информация.
MONTH_VAR_NAME
Имя переменной для месяца. Имя переменной, в которой передается номер месяца.
YEAR_VAR_NAME
Имя переменной для года. Имя переменной, в которой передается номер года.
WEEK_START
Начало недели. Устанавливается день отсчета недели: понедельник либо воскресенье.
Внешний вид
SHOW_YEAR
[Y|N] Показывать переход по годам. При отсутствии опции в шаблоне по умолчанию не будет выведена ссылка на предыдущий год. В шаблоне compact в любом случае не выводится.
SHOW_TIME
[Y|N] Показывать время новостей. При отмеченной опции рядом с названием элемента будет выведено время начала активности, если оно определено для элемента (действует для шаблона по умолчанию).
TITLE_LEN
Длина заголовка (0 - не ограничивать). Число, указанное здесь, ограничивает длину заголовка элемента инфоблока, выводимого в календаре.
SHOW_CURRENT_DATE
[Y|N] Показывать текущий месяц и год. При установленной опции будут выведены текущий месяц и год над календарем в правом углу.
SHOW_MONTH_LIST
Показывать выпадающий список месяцев. В шаблоне по умолчанию при отмеченной опции будет выведен выпадающий список месяцев. В противном случае только ссылки на предыдущий и следующий месяцы.
NEWS_COUNT
Количество новостей в день (0 - не ограничивать). Если число отлично от нуля, то будут выбраны элементы с меньшим временем начала активности. Если время не определено, то элементы будут выбраны по индексу сортировки.
Шаблоны ссылок
DETAIL_URL
URL, ведущий на страницу с содержимым элемента инфоблока в календаре.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
Дополнительные настройки
DATE_FIELD
Поле даты. Если установлен тип календаря Событийный (EVENTS), то здесь можно установить поле, по которому будет происходить "раскладывание" событий по датам, сортировка, выборка.
Доступны следующие значения:
  • [DATE_ACTIVE_TO] Дата активности по
  • [DATE_ACTIVE_FROM] Дата активности с
  • [TIME_STAMP_X] Время последнего изменения
  • [DATE_CREATE] Дата создания
TYPE
Тип календаря. Тип календаря может быть новостной (NEWS) и событийный (EVENTS). В новостном календаре все элементы сортируются и раскладываются по дате начала активности. В событийном календаре это будет происходить в соответствии с настройками поля даты.
SET_TITLE
[Y|N] Устанавливать заголовок страницы. При отмеченной опции в качестве заголовка страницы будет выведен текущий месяц и год.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Все новости

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Все новости"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
    "bitrix:news.index",
    "",
    Array(
        "IBLOCK_TYPE" => "news",
        "IBLOCKS" => Array("33"),
        "NEWS_COUNT" => "5",
        "IBLOCK_SORT_BY" => "SORT",
        "IBLOCK_SORT_ORDER" => "ASC",
        "SORT_BY1" => "ACTIVE_FROM",
        "SORT_ORDER1" => "DESC",
        "SORT_BY2" => "SORT",
        "SORT_ORDER2" => "ASC",
        "FIELD_CODE" => Array("",""),
        "PROPERTY_CODE" => Array("",""),
        "FILTER_NAME" => "arrFilter",
        "IBLOCK_URL" => "news.php?ID=#IBLOCK_ID#",
        "DETAIL_URL" => "news_detail.php?ID=#ELEMENT_ID#",
        "ACTIVE_DATE_FORMAT" => "F j, Y",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600"
    )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационных блоков. Указывается тип, инфоблоки которого будут использоваться при выводе.
IBLOCKS
Коды информационных блоков, из которых будет выводиться информация.
NEWS_COUNT
Количество новостей в каждом блоке. Число, указанное в данном поле, определяет количество новостей в каждом блоке.
Источник данных
IBLOCK_SORT_BY
Поле для сортировки информационных блоков. Указывается поле, по которому будут отсортированы инфоблоки:
  • Сортировка (SORT)
  • Название (NAME)
  • Идентификатор (ID)
IBLOCK_SORT_ORDER
Направление для сортировки информационных блоков:
  • asc – по возрастанию;
  • desc – по убыванию.
SORT_BY1
Поле для первой сортировки новостей:
  • ID – по ID;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER1
Направление для первой сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
SORT_BY2
Поле для второй сортировки новостей.
  • ID – по ID;
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER2
Направление для второй сортировки новостей.
  • asc – по возрастанию;
  • desc – по убыванию.
Шаблоны ссылок
DETAIL_URL
URL, ведущий на страницу с детальной информацией элемента раздела (по умолчанию - из настроек инфоблока). Указывается путь к странице с содержимым инфоблока. Через параметр должно передаваться ID инфоблока, например, news.php?ID=#IBLOCK_ID#
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
Дополнительные настройки
ACTIVE_DATE_FORMAT
Формат показа даты. В выпадающем списке перечислены все возможные варианты показа даты, формируемые внутри компонента. Выбрав пункт (другое)->, вы можете сформировать свой вариант на основании php-функции date.
Предустановленные варианты формата даты:
Код | Формат даты
d-m-Y | 22-02-2008
m-d-Y | 02-22-2008
Y-m-d | 2008-02-22
d.m.Y | 22.02.2008
m.d.Y | 02.22.2008
j M Y | 22 Фев 2008
M j, Y | Фев 22, 2008
j F Y | 22 Февраль 2008
F j, Y | Февраль 22, 2008
d.m.y g:i A | 22.02.07 7:30 AM
d.m.y G:i | 22.02.07 7:30
d.m.Y H:i | 22.02.2008 07:30
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Фотогалерея (комплексный компонент)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Фотогалерея"

Комплексный компонент фотогалереи позволяет, создавая физически одну страницу на сайте, получить полнофункциональную фотогалерею. Обширные настройки компонента дают возможность гибко управлять форматом вывода разделов фотогалереи с TOP’ом фотографий, просмотром списка элементов каждого из разделов, отображением детальной информации по элементу, настраивать ЧПУ, выбором одной опции определять, разрешить или нет голосование, отзывы, устанавливать фильтр, а также специфицировать их настройки.

Пример вызова

<?$APPLICATION->IncludeComponent(
    "bitrix:photo",
    ".default",
    Array(
        "SEF_MODE" => "N",
        "IBLOCK_TYPE" => "photo",
        "IBLOCK_ID" => "8",
        "USE_RATING" => "N",
        "USE_REVIEW" => "N",
        "USE_FILTER" => "N",
        "SECTION_COUNT" => "20",
        "TOP_ELEMENT_COUNT" => "9",
        "TOP_LINE_ELEMENT_COUNT" => "3",
        "SECTION_SORT_FIELD" => "sort",
        "SECTION_SORT_ORDER" => "asc",
        "TOP_ELEMENT_SORT_FIELD" => "sort",
        "TOP_ELEMENT_SORT_ORDER" => "asc",
        "TOP_FIELD_CODE" => array(0=>"",),
        "TOP_PROPERTY_CODE" => array(0=>"",),
        "SECTION_PAGE_ELEMENT_COUNT" => "20",
        "SECTION_LINE_ELEMENT_COUNT" => "3",
        "ELEMENT_SORT_FIELD" => "sort",
        "ELEMENT_SORT_ORDER" => "asc",
        "LIST_FIELD_CODE" => array(0=>"",),
        "LIST_PROPERTY_CODE" => array(0=>"",),
        "META_KEYWORDS" => "-",
        "META_DESCRIPTION" => "-",
        "DETAIL_FIELD_CODE" => array(0=>"SHOW_COUNTER",),
        "DETAIL_PROPERTY_CODE" => array(),
        "DISPLAY_PANEL" => "Y",
        "SET_TITLE" => "Y",
        "USE_PERMISSIONS" => "N",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CACHE_FILTER" => "N",
        "DISPLAY_TOP_PAGER" => "N",
        "DISPLAY_BOTTOM_PAGER" => "Y",
        "PAGER_TITLE" => "Фотографии",
        "PAGER_SHOW_ALWAYS" => "N",
        "PAGER_TEMPLATE" => "",
        "PAGER_DESC_NUMBERING" => "N",
        "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
        "VARIABLE_ALIASES" => Array(
        "SECTION_ID" => "SECTION_ID",
        "ELEMENT_ID" => "ELEMENT_ID"
        )
)
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационного блока. Указывается один из созданных в системе типов инфоблоков.
IBLOCK_ID
Код информационного блока, из которого будет выводиться информация.
Управление адресами страниц
SEF_MODE
[Y|N] Включить поддержку ЧПУ.
VARIABLE_ALIASES
При отключенной опции SEF_MODE доступны поля для задания Идентификатора раздела (например, SECTION_ID) и Идентификатора элемента (например, ELEMENT_ID). Данные поля задаются в виде массива, например,

"VARIABLE_ALIASES" => Array(
        "SECTION_ID" => "SECTION_ID",
        "ELEMENT_ID" => "ELEMENT_ID"
)
При включенной опции SEF_MODE доступны следующие параметры:
SEF_FOLDER
Каталог ЧПУ (относительно корня сайта). В данном поле указывается каталог, который будет отображаться в URL при переходе на создаваемую страницу.
SEF_URL_TEMPLATES
В данном массиве определяются шаблоны адресов различных страниц в новостном разделе:
  • Список разделов с TOP'ом фотографий
    Указывается путь к начальной странице компонента – список разделов с TOP’ом фотографий. Если в текущем разделе данная страница индексная, то поле можно оставить пустым.
  • Раздел фотогалереи
    Путь к странице с элементами раздела. Путь должен содержать ID раздела. (#SECTION_ID#). По умолчанию поле содержит #SECTION_ID#/
  • Фотография детально
    Путь к странице с детальной информацией. Путь должен содержать ID элемента, например, #SECTION_ID#/#ELEMENT_ID#/

"SEF_URL_TEMPLATES" => Array(
    "sections_top" => "top/",
    "section" => "#SECTION_ID#/",
    "detail" => "#SECTION_ID#/#ELEMENT_ID#/"
),
В публичной части редактора путь к каждой странице задается в отдельном поле.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кэшироваться. Имеет смысл отмечать, если многие пользователи используют одну и туже выборку из фильтра.
Дополнительные настройки
DISPLAY_PANEL
[Y|N] Добавлять в административную панель кнопки для данного компонента. При установленной опции кнопки будут отображены в режиме редактирования сайта на административной панели и в наборе кнопок области редактирования данного компонента.
SET_TITLE
[Y|N] Устанавливать заголовок страницы. При установленной опции в качестве заголовка страницы будет установлено имя текущего инфоблока.
USE_PERMISSIONS
[Y|N] Использовать дополнительное ограничение доступа. Опция позволяет ограничить доступ к детальной информации элементов инфоблока. При установленной опции становится доступным следующее поле:
GROUP_PERMISSIONS
Группы пользователей, имеющие доступ к детальной информации. Выведены все группы пользователей, среди которых можно выбрать те, которые смогут просматривать детальную информацию.
Настройки постраничной навигации
DISPLAY_TOP_PAGER
[Y|N] Выводить над списком. При отмеченной опции навигация по страницам будет выведена вверху страницы, над списком.
DISPLAY_BOTTOM_PAGER
[Y|N] Выводить под списком. При отмеченной опции навигация по страницам будет выведена внизу страницы, под списком.
PAGER_TITLE
Название категорий. В данном поле указывается название категорий, по которым происходит перемещение при детальном просмотре (например, страница, глава и др.)
PAGER_SHOW_ALWAYS
[Y|N] Выводить всегда. Если данный флаг не отмечен, постраничная навигация не будет выводиться, если все элементы помещаются на одной странице. Если отмечен, то всегда будет выводиться.
PAGER_TEMPLATE
Название шаблона. В данном поле указывается имя шаблона постраничной навигации. Если поле пусто, то выбирается шаблон по умолчанию (.default). Также в системе задан шаблон orange.
PAGER_DESC_NUMBERING
[Y|N] Использовать обратную навигацию. Для обратной навигации в системе происходит обратный отсчет страниц (последняя страница считается первой). И таким образом постоянно меняется лишь последняя страница при добавлении нового элемента. Это верно, если новые элементы попадают всегда вверх списка (отсортированы по дате начала активности по убыванию). Таким образом, при отмеченной опции включается описанный механизм.
PAGER_DESC_NUMBERING_CACHE_TIME
Время кеширования страниц для обратной навигации. Согласно механизму обратной навигации последние страницы (для пользователя) никогда не меняются (если элементы там содержащиеся не редактируются и не удаляются). Тогда их можно закешировать на длительный срок.
Настройки детального просмотра
META_KEYWORDS
Установить ключевые слова страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержатся ключевые слова.
META_DESCRIPTION
Установить описание страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержится описание.
DETAIL_FIELD_CODE
Поля. В массиве указываются поля, которые будут отображены на странице детального просмотра. Задается в виде массива с символьными именами полей в коде или в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то будут выведены поля по умолчанию.
DETAIL_PROPERTY_CODE
Свойства. Среди свойств инфоблока можно выбрать те, которые будут отображены на странице детального просмотра. Задается в виде массива с символьными именами свойств в коде либо в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то свойства отображены не будут.
Настройки отзывов
USE_REVIEW
[Y|N] Разрешить отзывы. Опция подключает настройки отзывов, выводимых на странице. При установленной опции становятся доступными следующие поля:
MESSAGES_PER_PAGE
Количество сообщений на одной странице. При наличии оставленных отзывов поле определяет количество выводимых на одной странице сообщений.
USE_CAPTCHA
[Y|N] Использовать CAPTCHA. Установленная опция определяет вывод изображения и поля ввода CAPTCHA в форме добавления отзыва в публичной части.
PATH_TO_SMILE
Путь относительно корня сайта к папке со смайлами. Значение по умолчанию /bitrix/images/forum/smile/.
FORUM_ID
ID форума, созданного для отзывов посетителей.
URL_TEMPLATES_READ
Указывается относительный путь к странице чтения темы на форуме. Если поле пусто, путь к странице будет получен из настроек форума.
Настройки фильтра
USE_FILTER
[Y|N] Показывать фильтр. При отмеченной опции доступны следующие поля:
FILTER_NAME
Фильтр. Задается имя переменной, в которой передается массив параметров из фильтра. Служит для определения выходящих из фильтра элементов. Поле может быть оставлено пустым, тогда используется значение по умолчанию.
FILTER_FIELD_CODE
Поля. В данном поле можно выбрать нужные поля элементов инфоблока, по которым будет возможна фильтрация. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив:

Array("NAME","PREVIEW_TEXT","SORT",""),
FILTER_PROPERTY_CODE
Свойства. В данном поле перечислены свойства элементов инфоблока, среди которых можно выбрать те, по которым будет возможна фильтрация. Заполняется из публичной части редактора, удерживая клавишу Ctrl либо в коде, указывая массив.
Настройки TOP'а
SECTION_COUNT
Максимальное количество выводимых разделов. Максимальное количество разделов, которое может быть выведено в TOP'е фотографий.
TOP_ELEMENT_COUNT
Максимальное количество фотографий, выводимых в каждом разделе. Максимальное количество фотографий, которое будет выведено в TOP'е элементов в каждом разделе.
TOP_LINE_ELEMENT_COUNT
Количество фотографий, выводимых в одной строке таблицы списка разделов. Количество фотографий в одной строке в таблице TOP’а элементов.
SECTION_SORT_FIELD
По какому полю сортируем разделы. Указывается поле, по которому будет происходить сортировка разделов в TOP’е элементов.
  • sort - по индексу сортировки;
  • timestamp_x - по дате изменения;
  • name - по названию;
  • ID - по ID;
  • depth_level - по уровню вложенности.
Можно указать код любого другого поля.
SECTION_SORT_ORDER
Порядок сортировки разделов.
  • asc – по возрастанию;
  • desc – по убыванию.
TOP_ELEMENT_SORT_FIELD
По какому полю сортируем фотографии
  • shows - по количеству просмотров в среднем;
  • sort - по индексу сортировки;
  • timestamp_x - по дате изменения;
  • name - по названию;
  • ID - по ID;
  • active_from - по дате начала активности;
  • active_to - по дате окончания активности.
Можно указать код любого другого поля.
TOP_ELEMENT_SORT_ORDER
Порядок сортировки фотографий в разделе.
  • asc – по возрастанию;
  • desc – по убыванию.
TOP_FIELD_CODE
Поля. В массиве указываются поля, которые будут отображены на странице TOP'а элементов. Задается в виде массива с символьными именами полей в коде или в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то будут выведены поля по умолчанию.
TOP_PROPERTY_CODE
Свойства. Среди свойств инфоблока можно выбрать те, которые будут отображены на странице TOP'а элементов. Задается в виде массива с символьными именами свойств в коде либо в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то свойства отображены не будут.
Настройки списка
SECTION_PAGE_ELEMENT_COUNT
Количество элементов на странице. Данное число определяет кол-во элементов на одной странице. Остальные элементы будут выведены с помощью постраничной навигации.
SECTION_LINE_ELEMENT_COUNT
Количество фотографий, выводимых в одной строке таблицы раздела. Число определяет количество фото в одной строке при выводе элементов раздела.
ELEMENT_SORT_FIELD
По какому полю сортируем фотографии. Указывается поле, по которому будет происходить сортировка фотографий внутри каждого раздела.
  • shows - по количеству просмотров в среднем;
  • sort - по индексу сортировки;
  • timestamp_x - по дате изменения;
  • name - по названию;
  • ID - по ID;
  • active_from - по дате начала активности;
  • active_to - по дате окончания активности.
Можно указать код любого другого поля.
ELEMENT_SORT_ORDER
Порядок сортировки фотографий в разделе.
  • asc – по возрастанию;
  • desc – по убыванию.
LIST_FIELD_CODE
Поля. В массиве указываются поля, которые будут отображены на странице списка элементов. Задается в виде массива с символьными именами полей в коде или в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то будут выведены поля по умолчанию.
LIST_PROPERTY_CODE
Свойства. Среди свойств инфоблока можно выбрать те, которые будут отображены на странице списка элементов. Задается в виде массива с символьными именами свойств в коде либо в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то свойства отображены не будут.
Настройки голосования
USE_RATING
[Y|N] Разрешить голосование. При установленной опции посетители смогут голосовать за новости, выставляя баллы, на странице с детальной информацией. При установленной опции становятся доступными следующие поля:
MAX_VOTE
Максимальный балл. Указывается максимально возможный балл, т.е. число возможных оценок.
VOTE_NAMES
Массив, в котором задаются подписи к баллам в таком виде:

"VOTE_NAMES" => Array("оч плохо","плохо","удв","хор","отл",""),
Если подписи заданы, то они будут выведены вместо оценок-цифр. Если массив не задан, то будут использованы значения по умолчанию.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Разделы с TOP'ом фотографий

Одностраничный компонент. Служит для вывода TOP'а фотографий, сгруппированных по разделам.

Пример вызова

<?$APPLICATION->IncludeComponent(
    "bitrix:photo.sections.top",
    "",
    Array(
        "IBLOCK_TYPE" => "photo",
        "IBLOCK_ID" => "8",
        "SECTION_SORT_FIELD" => "sort",
        "SECTION_SORT_ORDER" => "asc",
        "ELEMENT_SORT_FIELD" => "sort",
        "ELEMENT_SORT_ORDER" => "asc",
        "FILTER_NAME" => "arrFilter",
        "FIELD_CODE" => Array("",""),
        "PROPERTY_CODE" => Array("",""),
        "SECTION_URL" => "section.php?SECTION_ID=#SECTION_ID#",
        "DETAIL_URL" => "detail.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
        "DISPLAY_PANEL" => "N",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CACHE_FILTER" => "N",
        "SECTION_COUNT" => "5",
        "ELEMENT_COUNT" => "9",
        "LINE_ELEMENT_COUNT" => "3"
        )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационного блока. Указывается один из созданных в системе типов инфоблоков.
IBLOCK_ID
Код информационного блока, из которого будет выводиться информация.
Источник данных
SECTION_SORT_FIELD
По какому полю сортируем разделы. Указывается поле, по которому будет происходить сортировка разделов в TOP’е элементов.
  • sort - по индексу сортировки;
  • timestamp_x - по дате изменения;
  • name - по названию;
  • ID - по ID;
  • depth_level - по уровню вложенности.
Можно указать код любого другого поля.
SECTION_SORT_ORDER
Порядок сортировки разделов.
  • asc – по возрастанию;
  • desc – по убыванию.
ELEMENT_SORT_FIELD
По какому полю сортируем фотографии. Указывается поле, по которому будет происходить сортировка фотографий внутри каждого раздела.
  • shows - по количеству просмотров в среднем;
  • sort - по индексу сортировки;
  • timestamp_x - по дате изменения;
  • name - по названию;
  • ID - по ID;
  • active_from - по дате начала активности;
  • active_to - по дате окончания активности.
Можно указать код любого другого поля.
ELEMENT_SORT_ORDER
Порядок сортировки фотографий в разделе.
  • asc – по возрастанию;
  • desc – по убыванию.
FILTER_NAME
Фильтр. Задается имя переменной, в которой передается массив параметров из фильтра. Служит для определения выходящих из фильтра элементов. Поле может быть оставлено пустым, тогда используется значение по умолчанию.
FIELD_CODE
Поля. В массиве указываются поля, которые будут отображены на странице TOP'а элементов. Задается в виде массива с символьными именами полей в коде или в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то будут выведены поля по умолчанию.
PROPERTY_CODE
Свойства. Среди свойств инфоблока можно выбрать те, которые будут отображены на странице TOP'а элементов. Задается в виде массива с символьными именами свойств в коде либо в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то свойства отображены не будут.
Внешний вид
SECTION_COUNT
Максимальное количество выводимых разделов. Максимальное количество разделов, которое может быть выведено на странице.
ELEMENT_COUNT
Максимальное количество фотографий, выводимых в каждом разделе.
LINE_ELEMENT_COUNT
Количество фотографий, выводимых в одной строке таблицы списка разделов.
Шаблоны ссылок
SECTION_URL
URL, ведущий на страницу с содержимым раздела. По умолчанию поле содержит section.php?SECTION_ID=#SECTION_ID#.
DETAIL_URL
URL, ведущий на страницу с содержимым элемента раздела. По умолчанию поле содержит detail.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кэшироваться. Имеет смысл отмечать, если многие пользователи используют одну и туже выборку из фильтра.
Дополнительные настройки
DISPLAY_PANEL
[Y|N] Добавлять в административную панель кнопки для данного компонента. При установленной опции кнопки будут отображены в режиме редактирования сайта на административной панели и в наборе кнопок области редактирования данного компонента.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Фотографии раздела

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

Пример вызова

<?$APPLICATION->IncludeComponent(
    "bitrix:photo.section",
    "",
    Array(
        "IBLOCK_TYPE" => "photo",
        "IBLOCK_ID" => "8",
        "SECTION_ID" => $_REQUEST["SECTION_ID"],
        "SECTION_CODE" => "",
        "ELEMENT_SORT_FIELD" => "sort",
        "ELEMENT_SORT_ORDER" => "asc",
        "FILTER_NAME" => "arrFilter",
        "FIELD_CODE" => Array("NAME","SORT","",""),
        "PROPERTY_CODE" => Array("",""),
        "SECTION_URL" => "section.php?SECTION_ID=#SECTION_ID#",
        "DETAIL_URL" => "detail.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
        "PAGE_ELEMENT_COUNT" => "20",
        "LINE_ELEMENT_COUNT" => "3",
        "META_KEYWORDS" => "-",
        "META_DESCRIPTION" => "-",
        "DISPLAY_PANEL" => "N",
        "SET_TITLE" => "Y",
        "ADD_SECTIONS_CHAIN" => "Y",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CACHE_FILTER" => "N",
        "DISPLAY_TOP_PAGER" => "N",
        "DISPLAY_BOTTOM_PAGER" => "Y",
        "PAGER_TITLE" => "Фотографии",
        "PAGER_SHOW_ALWAYS" => "Y",
        "PAGER_TEMPLATE" => "",
        "PAGER_DESC_NUMBERING" => "N",
        "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000"
        )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационного блока. Указывается один из созданных в системе типов инфоблоков.
IBLOCK_ID
Код информационного блока, из которого будет выводиться информация.
SECTION_ID
Поле содержит код, в котором передается ID раздела. По умолчанию поле содержит {$_REQUEST["SECTION_ID"]}. Поле может быть оставлено пустым, если указан код раздела.
SECTION_CODE
Задается код раздела. Поле может быть оставлено пустым, если указан ID раздела.
Источник данных
ELEMENT_SORT_FIELD
По какому полю сортируем фотографии. Указывается поле, по которому будет происходить сортировка фотографий:
  • shows - по количеству просмотров в среднем;
  • sort - по индексу сортировки;
  • timestamp_x - по дате изменения;
  • name - по названию;
  • ID - по ID;
  • active_from - по дате начала активности;
  • active_to - по дате окончания активности.
Можно указать код любого другого поля.
ELEMENT_SORT_ORDER
Порядок сортировки фотографий в разделе.
  • asc – по возрастанию;
  • desc – по убыванию.
FILTER_NAME
Имя массива со значениями фильтра для фильтрации элементов. Задается имя переменной, в которой передается массив параметров из фильтра. Служит для определения выходящих из фильтра элементов. Значение по умолчанию arrFilter.
FIELD_CODE
Поля. В массиве указываются поля, которые будут отображены на странице. Задается в виде массива с символьными именами полей в коде или в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то будут выведены поля по умолчанию.
PROPERTY_CODE
Свойства. Среди свойств инфоблока можно выбрать те, которые будут отображены на странице. Задается в виде массива с символьными именами свойств в коде либо в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то свойства отображены не будут.
Внешний вид
PAGE_ELEMENT_COUNT
Количество элементов на странице. Количество элементов на одной странице. Остальные элементы будут выведены с помощью постраничной навигации.
LINE_ELEMENT_COUNT
Количество фотографий, выводимых в одной строке таблицы.
Шаблоны ссылок
SECTION_URL
URL, ведущий на страницу с содержимым раздела. По умолчанию поле содержит section.php?SECTION_ID=#SECTION_ID#.
DETAIL_URL
URL, ведущий на страницу с содержимым элемента раздела. По умолчанию поле содержит detail.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кэшироваться. Имеет смысл отмечать, если многие пользователи используют одну и туже выборку из фильтра.
Дополнительные настройки
META_KEYWORDS
Установить ключевые слова страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержатся ключевые слова.
META_DESCRIPTION
Установить описание страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержится описание.
DISPLAY_PANEL
[Y|N] Добавлять в административную панель кнопки для данного компонента. При установленной опции кнопки будут отображены в режиме редактирования сайта на административной панели и в наборе кнопок области редактирования данного компонента.
SET_TITLE
[Y|N] Устанавливать заголовок страницы. При установленной опции в качестве заголовка страницы будет установлено имя раздела.
ADD_SECTIONS_CHAIN
[Y|N] Включать раздел в цепочку навигации. Опция позволяет добавить название раздела в цепочку навигации.
Настройки постраничной навигации
DISPLAY_TOP_PAGER
[Y|N] Выводить над списком. При отмеченной опции навигация по страницам будет выведена вверху страницы, над списком.
DISPLAY_BOTTOM_PAGER
[Y|N] Выводить под списком. При отмеченной опции навигация по страницам будет выведена внизу страницы, под списком.
PAGER_TITLE
Название категорий. В данном поле указывается название категорий, по которым происходит перемещение при детальном просмотре (например, страница, глава и др.)
PAGER_SHOW_ALWAYS
[Y|N] Выводить всегда. Если данный флаг не отмечен, постраничная навигация не будет выводиться, если все элементы помещаются на одной странице. Если отмечен, то всегда будет выводиться.
PAGER_TEMPLATE
Название шаблона. В данном поле указывается имя шаблона постраничной навигации. Если поле пусто, то выбирается шаблон по умолчанию (.default). Также в системе задан шаблон orange.
PAGER_DESC_NUMBERING
[Y|N] Использовать обратную навигацию. Для обратной навигации в системе происходит обратный отсчет страниц (последняя страница считается первой). И таким образом постоянно меняется лишь последняя страница при добавлении нового элемента. Это верно, если новые элементы попадают всегда вверх списка (отсортированы по дате начала активности по убыванию). Таким образом, при отмеченной опции включается описанный механизм.
PAGER_DESC_NUMBERING_CACHE_TIME
Время кеширования страниц для обратной навигации. Согласно механизму обратной навигации последние страницы (для пользователя) никогда не меняются (если элементы там содержащиеся не редактируются и не удаляются). Тогда их можно закешировать на длительный срок.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Фотография детально

Одностраничный компонент. Выводит детальную информацию по фотографии.

Пример вызова

<?$APPLICATION->IncludeComponent(
    "bitrix:photo.detail",
    "",
    Array(
        "IBLOCK_TYPE" => "photo",
        "IBLOCK_ID" => "8",
        "SECTION_ID" => $_REQUEST["SECTION_ID"],
        "ELEMENT_ID" => $_REQUEST["ELEMENT_ID"],
        "SECTION_CODE" => "",
        "ELEMENT_CODE" => "",
        "ELEMENT_SORT_FIELD" => "sort",
        "ELEMENT_SORT_ORDER" => "asc",
        "FIELD_CODE" => Array("",""),
        "PROPERTY_CODE" => Array("",""),
        "SECTION_URL" => "section.php?SECTION_ID=#SECTION_ID#",
        "DETAIL_URL" => "detail.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
        "META_KEYWORDS" => "-",
        "META_DESCRIPTION" => "-",
        "DISPLAY_PANEL" => "N",
        "SET_TITLE" => "Y",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600"
        )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационного блока. Указывается один из созданных в системе типов инфоблоков.
IBLOCK_ID
Код информационного блока, из которого будет выводиться информация.
SECTION_ID
Поле содержит код, в котором передается ID раздела. По умолчанию поле содержит {$_REQUEST["SECTION_ID"]}. Поле может быть оставлено пустым, если указан код раздела.
ELEMENT_ID
Поле содержит код, в котором передается ID элемента. По умолчанию поле содержит {$_REQUEST["ELEMENT_ID"]}. Поле может быть оставлено пустым, если указан код элемента.
SECTION_CODE
Задается код раздела. Поле может быть оставлено пустым, если указан ID раздела.
ELEMENT_CODE
Задается код элемента. Поле может быть оставлено пустым, если указан ID элемента.
Источник данных
ELEMENT_SORT_FIELD
По какому полю отсортировать фотографии для ссылок "след." и "пред.":
  • shows - по количеству просмотров в среднем;
  • sort - по индексу сортировки;
  • timestamp_x - по дате изменения;
  • name - по названию;
  • ID - по ID;
  • active_from - по дате начала активности;
  • active_to - по дате окончания активности.
Можно указать код любого другого поля.
ELEMENT_SORT_ORDER
В каком порядке отсортировать фотографии для ссылок "след." и "пред.":
  • asc – по возрастанию;
  • desc – по убыванию.
FIELD_CODE
Поля. В массиве указываются поля, которые будут отображены на странице. Задается в виде массива с символьными именами полей в коде или в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то будут выведены поля по умолчанию.
PROPERTY_CODE
Свойства. Среди свойств инфоблока можно выбрать те, которые будут отображены на странице. Задается в виде массива с символьными именами свойств в коде либо в публичной части редактора, удерживая клавишу Ctrl. Если ничего не выбрано, то свойства отображены не будут.
Шаблоны ссылок
SECTION_URL
URL, ведущий на страницу с содержимым раздела. По умолчанию поле содержит section.php?SECTION_ID=#SECTION_ID#.
DETAIL_URL
URL, ведущий на страницу с содержимым элемента раздела. По умолчанию поле содержит detail.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кэшироваться. Имеет смысл отмечать, если многие пользователи используют одну и туже выборку из фильтра.
Дополнительные настройки
META_KEYWORDS
Установить ключевые слова страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержатся ключевые слова.
META_DESCRIPTION
Установить описание страницы из свойства. Среди всех свойств, определенных для данного инфоблока, выбирается то, в котором содержится описание.
DISPLAY_PANEL
[Y|N] Добавлять в административную панель кнопки для данного компонента. При установленной опции кнопки будут отображены в режиме редактирования сайта на административной панели и в наборе кнопок области редактирования данного компонента.
SET_TITLE
[Y|N] Устанавливать заголовок страницы. При установленной опции в качестве заголовка страницы будет установлено имя раздела.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Случайное фото

Одностраничный компонент. Служит для показа одной произвольной фотографии.

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:photo.random",
"",
Array(
    "IBLOCK_TYPE" => "photo",
    "IBLOCKS" => Array("8"),
    "PARENT_SECTION" => "",
    "DETAIL_URL" => "detail.php?SECTION_ID=#SECTION_ID#&ID=#ELEMENT_ID#",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "180"
    )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационного блока. Указывается один из созданных в системе типов инфоблоков.
IBLOCKS
Коды информационных блоков, из которых будет выводиться информация.
Шаблоны ссылок
DETAIL_URL
URL, ведущий на страницу с содержимым элемента раздела. По умолчанию поле содержит detail.php?SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кэшироваться. Имеет смысл отмечать, если многие пользователи используют одну и туже выборку из фильтра.
Дополнительные настройки
PARENT_SECTION
ID раздела. Указывается ID раздела, из которого выбирать фотографии. Поле может быть пустым, тогда выбор фотографии производится из всех разделов указанных инфоблоков.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Комплексный компонент Каталог

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Каталог"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog","",Array(
     "SEF_MODE" => "Y",
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "USE_FILTER" => "Y",
     "USE_REVIEW" => "Y",
     "USE_COMPARE" => "Y",
     "SECTION_SORT_FIELD" => "sort",
     "SECTION_SORT_ORDER" => "asc",
     "SHOW_TOP_ELEMENTS" => "Y",
     "PAGE_ELEMENT_COUNT" => "30",
     "LINE_ELEMENT_COUNT" => "3",
     "ELEMENT_SORT_FIELD" => "sort",
     "ELEMENT_SORT_ORDER" => "asc",
     "LIST_PROPERTY_CODE" => Array("ISBN","YEAR","PUBLISHER","PAGES"),
     "DETAIL_PROPERTY_CODE" => Array("ISBN","YEAR","PUBLISHER","PAGES",
                                     "FORUM_TOPIC_ID","FORUM_MESSAGE_CNT"),
     "BASKET_URL" => "/personal/basket.php",
     "ACTION_VARIABLE" => "action",
     "PRODUCT_ID_VARIABLE" => "id",
     "SECTION_ID_VARIABLE" => "SECTION_ID",
     "DISPLAY_PANEL" => "N",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "CACHE_FILTER" => "N",
     "SET_TITLE" => "Y",
     "PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "USE_PRICE_COUNT" => "Y",
     "SHOW_PRICE_COUNT" => "1",
     "LINK_IBLOCK_TYPE" => "books",
     "LINK_IBLOCK_ID" => "32",
     "LINK_PROPERTY_SID" => "BOOK",
     "LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#",
     "DISPLAY_TOP_PAGER" => "N",
     "DISPLAY_BOTTOM_PAGER" => "Y",
     "PAGER_TITLE" => "Товары",
     "PAGER_SHOW_ALWAYS" => "Y",
     "PAGER_TEMPLATE" => "",
     "PAGER_DESC_NUMBERING" => "N",
     "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
     "COMPARE_NAME" => "CATALOG_COMPARE_LIST",
     "COMPARE_FIELD_CODE" => Array("ID","NAME"),
     "COMPARE_PROPERTY_CODE" => Array("YEAR","PUBLISHER"),
     "DISPLAY_ELEMENT_SELECT_BOX" => "N",
     "ELEMENT_SORT_FIELD_BOX" => "name",
     "ELEMENT_SORT_ORDER_BOX" => "asc",
     "COMPARE_ELEMENT_SORT_FIELD" => "sort",
     "COMPARE_ELEMENT_SORT_ORDER" => "asc",
     "TOP_ELEMENT_COUNT" => "9",
     "TOP_LINE_ELEMENT_COUNT" => "3",
     "TOP_ELEMENT_SORT_FIELD" => "sort",
     "TOP_ELEMENT_SORT_ORDER" => "asc",
     "TOP_PROPERTY_CODE" => Array("YEAR","PUBLISHER"),
     "FILTER_NAME" => "",
     "FILTER_FIELD_CODE" => Array("ID","CODE","NAME","DATE_ACTIVE_FROM","DATE_ACTIVE_TO",
                                  "SHOW_COUNTER","IBLOCK_TYPE_ID","IBLOCK_ID"),
     "FILTER_PROPERTY_CODE" => Array("YEAR","PUBLISHER","PAGES"),
     "FILTER_PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "MESSAGES_PER_PAGE" => "25",
     "USE_CAPTCHA" => "Y",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "FORUM_ID" => "1",
     "URL_TEMPLATES_READ" => "",
     "SEF_FOLDER" => "/",
     "SEF_URL_TEMPLATES" => Array(
         "sections" => "",
         "section" => "#SECTION_ID#/",
         "element" => "#SECTION_ID#/#ELEMENT_ID#",
         "compare" => "compare.php?action=#ACTION_CODE#"
            ),
     "VARIABLE_ALIASES" => Array(
         "sections" => Array(),
         "section" => Array(),
         "element" => Array(),
         "compare" => Array("ACTION_CODE" => "action"),
         )
    )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
USE_FILTER
[Y|N] При выборе значения "Y" становятся доступными поля настройки фильтра и на странице разделов инфоблока будет отображена форма фильтра.
USE_REVIEW
[Y|N] При выборе значения "Y" становятся доступными поля настройки отзывов и на странице детального просмотра элементов будет отображена форма отзывов.
USE_COMPARE
[Y|N] При выборе значения "Y" становятся доступными поля для настройки сравнения элементов и будет возможно сравнивать элементы каталога по кнопке Сравнить.
Шаблоны ссылок
BASKET_URL
Путь к странице с корзиной покупателя.
ACTION_VARIABLE
Указывается имя переменной, в которой передается действие: ADD_TO_COMPARE_LIST, ADD2BASKET и т.д. Значение поля по умолчанию action.
PRODUCT_ID_VARIABLE
Имя переменной, в которой будет передаваться ID товара.
SECTION_ID_VARIABLE
Имя переменной, в которой будет передаваться ID раздела инфоблока.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Указываются адреса следующих страниц:
  • sections - страница списка разделов, если в текущем разделе данная страница индексная, то поле можно оставить пустым;
  • section - страница со списком элементов раздела;
  • element - страница с детальной информацией элемента инфоблока;
  • compare - страница с таблицей сравнения элементов.
VARIABLE_ALIASES
Имена переменных для управления страницами каталога.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
CACHE_FILTER
[Y/N] При отмеченной опции каждый результат, полученный из фильтра, будет кешироваться.
Дополнительные настройки
DISPLAY_PANEL
[Y/N] При выборе значения "Y" в административную панель будут добавлены кнопки управления инфоблоками указанного типа.
SET_TITLE
[Y/N] При отмеченной опции будут установлены заголовки страниц в соответствии с их содержимым.
Настройки отзывов
MESSAGES_PER_PAGE
Количество сообщений на одной странице
USE_CAPTCHA
[Y/N] При выборе значения "Y" будут выведены изображение и поле ввода CAPTCHA в форме добавления отзыва в публичной части.
PATH_TO_SMILE
Путь относительно корня сайта к папке со смайлами.
FORUM_ID
Идентификатор форума для отзывов.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума. Если поле будет оставлено пустым, то адрес будет взят из настроек форума.
Настройки фильтра
FILTER_NAME
Имя массива со значениями фильтра для фильтрации элементов. Если имя не указано, то будет использоваться значение по умолчанию.
FILTER_FIELD_CODE
Указываются поля элементов инфоблока, по которым будет возможна фильтрация элементов.
FILTER_PROPERTY_CODE
Указываются свойства инфоблока, по которым будет возможна фильтрация элементов.
FILTER_PRICE_CODE
Указываются типы цен, определенные в системе, по которым будет возможна фильтрация элементов.
Настройки сравнения
COMPARE_NAME
Уникальное имя переменной, в которой передается список сравниваемых элементов. По умолчанию CATALOG_COMPARE_LIST.
COMPARE_FIELD_CODE
Указываются поля, по которым товары будут сравниваться в таблице сравнения.
COMPARE_PROPERTY_CODE
Указываются свойства инфоблока, по которым товары будут сравниваться в таблице сравнения.
DISPLAY_ELEMENT_SELECT_BOX
[Y/N] Параметр управляет выводом выпадающего списка элементов инфоблока на странице сравнения.
ELEMENT_SORT_FIELD_BOX
Указывается поле, по которому будут отсортированы элементы инфоблока в выпадающем списке.
ELEMENT_SORT_ORDER_BOX
Устанавливается направление сортировки элементов инфоблока в списке.
COMPARE_ELEMENT_SORT_FIELD
Задается поле, по которому будут отсортированы товары в таблице сравнения.
COMPARE_ELEMENT_SORT_ORDER
Устанавливается направление сортировки товаров в таблице сравнения.
Настройки списка
PAGE_ELEMENT_COUNT
Количество элементов на одной странице. Весь список элементов выводится с помощью постраничной навигации.
LINE_ELEMENT_COUNT
Количество элементов, выводимых в одной строке таблицы.
ELEMENT_SORT_FIELD
Указывается поле, по которому будет происходить сортировка товаров внутри каждого раздела.
ELEMENT_SORT_ORDER
Определяется направление сортировки элементов в разделе по установленному полю.
LIST_PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при показе списка элементов внутри раздела.
Настройки TOP'а
SECTION_SORT_FIELD
Указывается поле, по которому будет происходить сортировка разделов. Например, sort - индекс сортировки.
SECTION_SORT_ORDER
В каком направлении будут отсортированы разделы, по возрастанию (asc) или по убыванию (desc).
SHOW_TOP_ELEMENTS
[Y/N] При отмеченной опции будет выведен топ элементов инфоблока.
TOP_ELEMENT_COUNT
Количество элементов на странице.
TOP_LINE_ELEMENT_COUNT
Количество элементов, выводимых в одной строке таблицы.
TOP_ELEMENT_SORT_FIELD
Указывается поле, по которому будут отсортированы товары в топе элементов.ы
TOP_ELEMENT_SORT_ORDER
Устанавливается направление сортировки товаров в топе.
TOP_PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при показе в TOP’е элементов.
Настройки детального просмотра
DETAIL_PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при детальном просмотре элементов.
Настройки связанных элементов
LINK_IBLOCK_TYPE
Тип инфоблока, элементы которого связаны с текущим элементом.
LINK_IBLOCK_ID
Идентификатор инфоблока, элементы которого связаны с текущим элементом.
LINK_PROPERTY_SID
Свойство, в котором хранится связь.
LINK_ELEMENTS_URL
Адрес страницы, на которой будет показан список связанных элементов.
Настройки постраничной навигации
DISPLAY_TOP_PAGER
[Y/N] При выборе значения "Y" навигация по страницам будет выведена наверху страницы.
DISPLAY_BOTTOM_PAGER
[Y/N] При выборе значения "Y" навигация по страницам будет выведена внизу страницы.
PAGER_TITLE
Название категорий, по которым происходит перемещение по элементам.
PAGER_SHOW_ALWAYS
[Y/N] При выборе значения "Y" постраничная навигация будет выводиться, даже если все элементы помещаются на одной странице.
PAGER_TEMPLATE
Имя шаблона постраничной навигации. Если поле пусто, то выбирается шаблон по умолчанию (.default). Также в системе задан шаблон orange.
PAGER_DESC_NUMBERING
[Y/N] Механизм используют, если при добавлении элемента инфоблока, он всегда попадает наверх списка. Таким образом, меняется лишь последняя страница. Все предыдущие можно надолго закешировать.
PAGER_DESC_NUMBERING_CACHE_TIME
Время кеширования первых страниц в секундах при использовании обратной навигации.
Цены
PRICE_CODE
Указываются типы цен, которые будут выведены для элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.
USE_PRICE_COUNT
[Y/N] При выборе значения "Y" отображаются цены всех типов на товары .
SHOW_PRICE_COUNT
Количество единиц товара, для которого выводить стоимость.


Структура разделов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Структура разделов"

Данный компонент выводит список разделов инфоблока с указанным количеством элементов в каждом разделе. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.section.list","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "SECTION_ID" => $_REQUEST["SECTION_ID"],
     "SECTION_URL" => "section.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#",
     "COUNT_ELEMENTS" => "Y",
     "DISPLAY_PANEL" => "N",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Идентификатор типа информационного блока.
IBLOCK_ID
Идентификатор информационного блока.
SECTION_ID
Задается код, в котором передается ID раздела. Значением по умолчанию параметра является ={$_REQUEST[" SECTION _ID"]}.
COUNT_ELEMENTS
[Y|N] При отмеченной опции отображается количество элементов, содержащихся в разделе.
Шаблоны ссылок
SECTION_URL
Путь к странице с содержимым раздела.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
DISPLAY_PANEL
[Y/N] При выборе значения "Y" в административную панель будут добавлены кнопки управления инфоблоками указанного типа.


Элементы раздела

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Элементы раздела"

Данный компонент выводит список элементов раздела с указанным набором свойств, цен и т.д. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.section","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "SECTION_ID" => $_REQUEST["SECTION_ID"],
     "ELEMENT_SORT_FIELD" => "sort",
     "ELEMENT_SORT_ORDER" => "asc",
     "FILTER_NAME" => "arrFilter",
     "SECTION_URL" => "section.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#",
     "DETAIL_URL" => "element.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
     "BASKET_URL" => "/personal/basket.php",
     "ACTION_VARIABLE" => "action",
     "PRODUCT_ID_VARIABLE" => "id",
     "SECTION_ID_VARIABLE" => "SECTION_ID",
     "META_KEYWORDS" => "-",
     "META_DESCRIPTION" => "-",
     "DISPLAY_PANEL" => "N",
     "DISPLAY_COMPARE" => "Y",
     "SET_TITLE" => "Y",
     "PAGE_ELEMENT_COUNT" => "30",
     "LINE_ELEMENT_COUNT" => "3",
     "PROPERTY_CODE" => Array("YEAR","PUBLISHER","PAGES","",""),
     "PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "USE_PRICE_COUNT" => "Y",
     "SHOW_PRICE_COUNT" => "1",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "CACHE_FILTER" => "N",
     "DISPLAY_TOP_PAGER" => "N",
     "DISPLAY_BOTTOM_PAGER" => "Y",
     "PAGER_TITLE" => "Товары",
     "PAGER_SHOW_ALWAYS" => "Y",
     "PAGER_TEMPLATE" => "",
     "PAGER_DESC_NUMBERING" => "N",
     "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Идентификатор типа информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
SECTION_ID
Задается код, в котором передается ID раздела. Значением по умолчанию параметра является ={$_REQUEST[" SECTION _ID"]}.
Источник данных
ELEMENT_SORT_FIELD
Указывается поле, по которому будет происходить сортировка элементов. Например, sort - индекс сортировки.
ELEMENT_SORT_ORDER
В каком направлении будут отсортированы элементы, по возрастанию (asc) или по убыванию (desc).
FILTER_NAME
Имя массива со значениями фильтра для фильтрации элементов. Если имя не указано, то будет использоваться значение по умолчанию.
Внешний вид
PAGE_ELEMENT_COUNT
Количество элементов на одной странице. Все элементы будут выведены с помощью постраничной навигации.
LINE_ELEMENT_COUNT
Количество элементов, выводимых в одной строке таблицы.
PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при показе его элементов.
Шаблоны ссылок
SECTION_URL
Путь к странице с детальным описанием раздела инфоблока.
DETAIL_URL
Путь к странице с детальным описанием элемента инфоблока.
BASKET_URL
Путь к странице с корзиной покупателя.
ACTION_VARIABLE
Указывается имя переменной, в которой передается действие: ADD_TO_COMPARE_LIST, ADD2BASKET и т.д. Значение поля по умолчанию action.
PRODUCT_ID_VARIABLE
Имя переменной, в которой будет передаваться ID товара.
SECTION_ID_VARIABLE
Имя переменной, в которой будет передаваться ID раздела инфоблока.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
META_KEYWORDS
Ключевые слова страницы будут установлены из указанного здесь свойства.
META_DESCRIPTION
Описание страницы будет установлено из указанного здесь свойства.
DISPLAY_PANEL
[Y/N] При выборе значения "Y" в административную панель будут добавлены кнопки управления инфоблоками указанного типа.
DISPLAY_COMPARE
[Y/N] При выборе значения "Y" будет выведена кнопка Сравнить, с помощью которой элемент добавляется в список сравнения.
SET_TITLE
[Y/N] При выборе значения "Y" в качестве заголовка страницы будет установлено название раздела.
CACHE_FILTER
[Y/N] При отмеченной опции каждый результат, полученный из фильтра, будет кешироваться.
Настройки постраничной навигации
DISPLAY_TOP_PAGER
[Y/N] При выборе значения "Y" навигация по страницам будет выведена наверху страницы.
DISPLAY_BOTTOM_PAGER
[Y/N] При выборе значения "Y" навигация по страницам будет выведена внизу страницы.
PAGER_TITLE
Название категорий, по которым происходит перемещение по элементам.
PAGER_SHOW_ALWAYS
[Y/N] При выборе значения "Y" постраничная навигация будет выводиться, даже если все элементы помещаются на одной странице.
PAGER_TEMPLATE
Имя шаблона постраничной навигации. Если поле пусто, то выбирается шаблон по умолчанию (.default). Также в системе задан шаблон orange.
PAGER_DESC_NUMBERING
[Y/N] Механизм используют, если при добавлении элемента инфоблока, он всегда попадает наверх списка. Таким образом, меняется лишь последняя страница. Все предыдущие можно надолго закешировать.
PAGER_DESC_NUMBERING_CACHE_TIME
Время кеширования первых страниц в секундах при использовании обратной навигации.
Цены
PRICE_CODE
Указываются типы цен, которые будут выведены для элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.
USE_PRICE_COUNT
[Y/N] При выборе значения "Y" отображаются цены всех типов на товары .
SHOW_PRICE_COUNT
Количество единиц товара, для которого выводить стоимость.


Элемент каталога детально

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Элемент каталога детально"

Данный компонент выводит детальную информацию по элементу каталога. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.element","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "ELEMENT_ID" => $_REQUEST["ELEMENT_ID"],
     "SECTION_URL" => "section.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#",
     "DETAIL_URL" => "element.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
     "BASKET_URL" => "/personal/basket.php",
     "ACTION_VARIABLE" => "action",
     "PRODUCT_ID_VARIABLE" => "id",
     "SECTION_ID_VARIABLE" => "SECTION_ID",
     "META_KEYWORDS" => "-",
     "META_DESCRIPTION" => "-",
     "DISPLAY_PANEL" => "N",
     "SET_TITLE" => "Y",
     "PROPERTY_CODE" => Array("YEAR","PUBLISHER","PAGES"),
     "PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "USE_PRICE_COUNT" => "N",
     "SHOW_PRICE_COUNT" => "1",
     "LINK_IBLOCK_TYPE" => "books",
     "LINK_IBLOCK_ID" => "32",
     "LINK_PROPERTY_SID" => "BOOK",
     "LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
ELEMENT_ID
Задается код, в котором передается ID элемента. Значением по умолчанию параметра является ={$_REQUEST["ELEMENT_ID"]}.
Внешний вид
PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при показе его элементов.
Шаблоны ссылок
SECTION_URL
Путь к странице с детальным описанием раздела инфоблока.
DETAIL_URL
Путь к странице с детальным описанием элемента инфоблока.
BASKET_URL
Путь к странице с корзиной покупателя.
ACTION_VARIABLE
Указывается имя переменной, в которой передается действие: ADD_TO_COMPARE_LIST, ADD2BASKET и т.д. Значение поля по умолчанию action.
PRODUCT_ID_VARIABLE
Имя переменной, в которой будет передаваться ID товара.
SECTION_ID_VARIABLE
Имя переменной, в которой будет передаваться ID раздела инфоблока.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
META_KEYWORDS
Ключевые слова страницы будут установлены из указанного здесь свойства.
META_DESCRIPTION
Описание страницы будет установлено из указанного здесь свойства.
DISPLAY_PANEL
[Y/N] При выборе значения "Y" в административную панель будут добавлены кнопки управления инфоблоками указанного типа.
SET_TITLE
[Y/N] При выборе значения "Y" в качестве заголовка страницы будет установлено название элемента.
Цены
PRICE_CODE
Указываются типы цен, которые будут выведены для элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.
USE_PRICE_COUNT
[Y/N] При выборе значения "Y" отображаются цены всех типов на товары .
SHOW_PRICE_COUNT
Количество единиц товара, для которого выводить стоимость.
Настройки связанных элементов
LINK_IBLOCK_TYPE
Тип инфоблока, элементы которого связаны с текущим элементом.
LINK_IBLOCK_ID
Идентификатор инфоблока, элементы которого связаны с текущим элементом.
LINK_PROPERTY_SID
Свойство, в котором хранится связь.
LINK_ELEMENTS_URL
Адрес страницы, на которой будет показан список связанных элементов.


Список сравниваемых элементов каталога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список сравниваемых элементов каталога"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.compare.list","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "DETAIL_URL" => "element.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
     "COMPARE_URL" => "compare.php?IBLOCK_ID=#IBLOCK_ID#",
     "NAME" => "CATALOG_COMPARE_LIST"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
Шаблоны ссылок
DETAIL_URL
Путь к странице с детальным описанием элемента инфоблока.
Дополнительные настройки
COMPARE_URL
Путь к странице с таблицей сравнения.
NAME
Имя переменной, в которой передается список сравниваемых элементов. По умолчанию CATALOG_COMPARE_LIST.


Таблица сравнения

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Таблица сравнения"

Данный компонент выводит таблицу сравниваемых элементов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.compare.result","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "NAME" => "CATALOG_COMPARE_LIST",
     "ELEMENT_SORT_FIELD" => "sort",
     "ELEMENT_SORT_ORDER" => "asc",
     "DETAIL_URL" => "element.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
     "BASKET_URL" => "/personal/basket.php",
     "ACTION_VARIABLE" => "action",
     "PRODUCT_ID_VARIABLE" => "id",
     "SECTION_ID_VARIABLE" => "SECTION_ID",
     "FIELD_CODE" => Array("NAME"),
     "PROPERTY_CODE" => Array("YEAR","PUBLISHER"),
     "PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "USE_PRICE_COUNT" => "N",
     "SHOW_PRICE_COUNT" => "1",
     "DISPLAY_ELEMENT_SELECT_BOX" => "N",
     "ELEMENT_SORT_FIELD_BOX" => "name",
     "ELEMENT_SORT_ORDER_BOX" => "asc"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
ELEMENT_SORT_FIELD
Указывается поле, по которому будет происходить сортировка элементов. Например, sort - индекс сортировки.
ELEMENT_SORT_ORDER
В каком направлении будут отсортированы элементы, по возрастанию (asc) или по убыванию (desc).
Внешний вид
PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при показе его элементов.
Дополнительные настройки
DETAIL_URL
Путь к странице с детальным описанием элемента инфоблока.
BASKET_URL
Путь к странице с корзиной покупателя.
ACTION_VARIABLE
Указывается имя переменной, в которой передается действие: ADD_TO_COMPARE_LIST, ADD2BASKET и т.д. Значение поля по умолчанию action.
PRODUCT_ID_VARIABLE
Имя переменной, в которой будет передаваться ID товара.
SECTION_ID_VARIABLE
Имя переменной, в которой будет передаваться ID раздела инфоблока.
Цены
PRICE_CODE
Указываются типы цен, которые будут выведены для элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.
USE_PRICE_COUNT
[Y/N] При выборе значения "Y" отображаются цены всех типов на товары .
SHOW_PRICE_COUNT
Количество единиц товара, для которого выводить стоимость.
Дополнительные настройки
NAME
Имя переменной, в которой передается список сравниваемых элементов. По умолчанию CATALOG_COMPARE_LIST.
FIELD_CODE
Поля, по которым товары будут сравниваться в таблице сравнения.
DISPLAY_ELEMENT_SELECT_BOX
[Y/N] При выборе значения "Y" после таблицы будет добавлен список элементов текущего инфоблока, которые можно добавить в таблицу.
ELEMENT_SORT_FIELD_BOX
Указывается поле, по которому будет происходить сортировка списка элементов инфоблока.
ELEMENT_SORT_ORDER_BOX
В каком направлении будут отсортированы элементы из списка, по возрастанию или по убыванию.


Фильтр по элементам

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Фильтр по элементам"

Данный компонент выводит форму фильтра для фильтрации элементов информационых блоков. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.filter","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "FILTER_NAME" => "arrFilter",
     "FIELD_CODE" => Array("NAME"),
     "PROPERTY_CODE" => Array("YEAR","PUBLISHER"),
     "PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "LIST_HEIGHT" => "5",
     "TEXT_WIDTH" => "20",
     "NUMBER_WIDTH" => "5"
     )
);?>

Описание параметров

Источник данных
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
FILTER_NAME
Имя массива со значениями фильтра для фильтрации элементов. Если имя не указано, то будет использоваться значение по умолчанию.
FIELD_CODE
Указываются необходимые для показа поля фильтра.
PROPERTY_CODE
Указываются свойства инфоблока, которые будут выступать в качестве полей фильтра.
Внешний вид
LIST_HEIGHT
Высота списков множественного выбора, отображаемых в фильтре.
TEXT_WIDTH
Ширина текстового поля ввода в форме фильтра.
NUMBER_WIDTH
Ширина полей ввода для числовых интервалов.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Цены
PRICE_CODE
Указываются типы цен, которые будут выведены для элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.


Список инфоблоков заданного типа

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список инфоблоков заданного типа"

Данный компонент выводит список всех информационных блоков заданного типа. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.main","",Array(
     "IBLOCK_TYPE" => "news",
     "IBLOCK_URL" => "list_section.php?IBLOCK_ID=#IBLOCK_ID#",
     "DISPLAY_PANEL" => "N",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Указывается тип информационного блока.
Шаблоны ссылок
IBLOCK_URL
Путь к странице со списком разделов инфоблока.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
DISPLAY_PANEL
[Y/N] При выборе значения "Y" в административную панель будут добавлены кнопки управления инфоблоками указанного типа.


Top элементов каталога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Top элементов каталога"

Данный компонент выводит в таблице TOP элементов из всех разделов в соответствии с заданной сортировкой (используется, как правило, на главной странице сайта). Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.top","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "ELEMENT_SORT_FIELD" => "sort",
     "ELEMENT_SORT_ORDER" => "asc",
     "SECTION_URL" => "section.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#",
     "DETAIL_URL" => "element.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
     "BASKET_URL" => "/personal/basket.php",
     "ACTION_VARIABLE" => "action",
     "PRODUCT_ID_VARIABLE" => "id",
     "SECTION_ID_VARIABLE" => "SECTION_ID",
     "DISPLAY_COMPARE" => "Y",
     "ELEMENT_COUNT" => "9",
     "LINE_ELEMENT_COUNT" => "3",
     "PROPERTY_CODE" => Array("YEAR","PUBLISHER","",""),
     "PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "USE_PRICE_COUNT" => "Y",
     "SHOW_PRICE_COUNT" => "1",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Идентификатор типа информационного блока.
IBLOCK_ID
Идентификатор информационного блока, TOP элементов из всех разделов которого будет показан.
Источник данных
ELEMENT_SORT_FIELD
Указывается поле, по которому будет происходить сортировка элементов. Например, sort - индекс сортировки.
ELEMENT_SORT_ORDER
В каком направлении будут отсортированы элементы, по возрастанию (asc) или по убыванию (desc).
Внешний вид
ELEMENT_COUNT
Количество выводимых элементов на странице.
LINE_ELEMENT_COUNT
Количество элементов, выводимых в одной строке таблицы.
PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при показе его элементов.
Шаблоны ссылок
SECTION_URL
Путь к странице с детальным описанием раздела инфоблока.
DETAIL_URL
Путь к странице с детальным описанием элемента инфоблока.
BASKET_URL
Путь к странице с корзиной покупателя.
ACTION_VARIABLE
Указывается имя переменной, в которой передается действие: ADD_TO_COMPARE_LIST, ADD2BASKET и т.д. Значение поля по умолчанию action.
PRODUCT_ID_VARIABLE
Имя переменной, в которой будет передаваться ID товара.
SECTION_ID_VARIABLE
Имя переменной, в которой будет передаваться ID раздела инфоблока.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
DISPLAY_COMPARE
[Y/N] При выборе значения "Y" будет выведена кнопка Сравнить, с помощью которой элемент добавляется в список сравнения.
Цены
PRICE_CODE
Указываются типы цен, которые будут выведены для элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.
USE_PRICE_COUNT
[Y/N] При выборе значения "Y" отображаются цены всех типов на товары .
SHOW_PRICE_COUNT
Количество единиц товара, для которого выводить стоимость.


Разделы с top'ом элементов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Разделы с top'ом элементов"

Данный компонент выводит top элементов сгруппированных по разделам; элементы выводятся в таблице. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.sections.top","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "SECTION_SORT_FIELD" => "sort",
     "SECTION_SORT_ORDER" => "asc",
     "ELEMENT_SORT_FIELD" => "sort",
     "ELEMENT_SORT_ORDER" => "asc",
     "FILTER_NAME" => "arrFilter",
     "SECTION_URL" => "section.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#",
     "DETAIL_URL" => "element.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
     "BASKET_URL" => "/personal/basket.php",
     "ACTION_VARIABLE" => "action",
     "PRODUCT_ID_VARIABLE" => "id",
     "SECTION_ID_VARIABLE" => "SECTION_ID",
     "DISPLAY_PANEL" => "N",
     "DISPLAY_COMPARE" => "Y",
     "SET_TITLE" => "Y",
     "SECTION_COUNT" => "20",
     "ELEMENT_COUNT" => "9",
     "LINE_ELEMENT_COUNT" => "3",
     "PROPERTY_CODE" => Array("YEAR","PUBLISHER","",""),
     "PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "USE_PRICE_COUNT" => "N",
     "SHOW_PRICE_COUNT" => "1",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "CACHE_FILTER" => "N"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Идентификатор типа информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
Источник данных
SECTION_SORT_FIELD
Указывается поле, по которому будет происходить сортировка разделов. Например, sort - индекс сортировки.
SECTION_SORT_ORDER
В каком направлении будут отсортированы разделы, по возрастанию (asc) или по убыванию (desc).
ELEMENT_SORT_FIELD
Указывается поле, по которому будет происходить сортировка элементов.
ELEMENT_SORT_ORDER
В каком направлении будут отсортированы элементы, по возрастанию (asc) или по убыванию (desc).
FILTER_NAME
Имя массива со значениями фильтра для фильтрации элементов. Если имя не указано, то будет использоваться значение по умолчанию.
Внешний вид
SECTION_COUNT
Максимальное количество разделов, которое может быть выведено.
ELEMENT_COUNT
Максимальное количество элементов, которое будет выведено в каждом разделе.
LINE_ELEMENT_COUNT
Количество элементов, выводимых в одной строке таблицы.
PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при показе его элементов.
Шаблоны ссылок
SECTION_URL
Путь к странице с детальным описанием раздела инфоблока.
DETAIL_URL
Путь к странице с детальным описанием элемента инфоблока.
BASKET_URL
Путь к странице с корзиной покупателя.
ACTION_VARIABLE
Указывается имя переменной, в которой передается действие: ADD_TO_COMPARE_LIST, ADD2BASKET и т.д. Значение поля по умолчанию action.
PRODUCT_ID_VARIABLE
Имя переменной, в которой будет передаваться ID товара.
SECTION_ID_VARIABLE
Имя переменной, в которой будет передаваться ID раздела инфоблока.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
CACHE_FILTER
[Y|N] При отмеченной опции каждый результат, полученный из фильтра, будет кешироваться.
Дополнительные настройки
DISPLAY_PANEL
[Y/N] При выборе значения "Y" в административную панель будут добавлены кнопки управления инфоблоками указанного типа.
DISPLAY_COMPARE
[Y/N] При выборе значения "Y" будет выведена кнопка Сравнить, с помощью которой элемент добавляется в список сравнения.
SET_TITLE
[Y/N] При выборе значения "Y" в качестве заголовка страницы будет установлено название раздела.
Цены
PRICE_CODE
Указываются типы цен, которые будут выведены для элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.
USE_PRICE_COUNT
[Y/N] При выборе значения "Y" отображаются цены всех типов на товары .
SHOW_PRICE_COUNT
Количество единиц товара, для которого выводить стоимость.


Список связанных элементов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список связанных элементов"

Данный компонент выводит список связанных элементов для заданного элемента. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:catalog.link.list","",Array(
     "IBLOCK_TYPE" => "books",
     "IBLOCK_ID" => "30",
     "LINK_PROPERTY_SID" => "AUTHORS",
     "ELEMENT_ID" => $_REQUEST["PARENT_ELEMENT_ID"],
     "ELEMENT_SORT_FIELD" => "sort",
     "ELEMENT_SORT_ORDER" => "asc",
     "FILTER_NAME" => "arrFilter",
     "SECTION_URL" => "section.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#",
     "DETAIL_URL" => "element.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#&ELEMENT_ID=#ELEMENT_ID#",
     "BASKET_URL" => "/personal/basket.php",
     "ACTION_VARIABLE" => "action",
     "PRODUCT_ID_VARIABLE" => "id",
     "SECTION_ID_VARIABLE" => "SECTION_ID",
     "DISPLAY_PANEL" => "N",
     "SET_TITLE" => "Y",
     "PAGE_ELEMENT_COUNT" => "30",
     "PROPERTY_CODE" => Array("YEAR","PUBLISHER","",""),
     "PRICE_CODE" => Array("WHOLESALE","RETAIL"),
     "USE_PRICE_COUNT" => "Y",
     "SHOW_PRICE_COUNT" => "1",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "300",
     "CACHE_FILTER" => "N",
     "DISPLAY_TOP_PAGER" => "N",
     "DISPLAY_BOTTOM_PAGER" => "Y",
     "PAGER_TITLE" => "Товары",
     "PAGER_SHOW_ALWAYS" => "Y",
     "PAGER_TEMPLATE" => "",
     "PAGER_DESC_NUMBERING" => "N",
     "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000"
     )
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
LINK_PROPERTY_SID
Указывается свойство, по которому связаны элементы.
ELEMENT_ID
Задается код, в котором передается ID элемента, для которого выводится список связанных элементов. Значением по умолчанию параметра является ={$_REQUEST["PARENT_ELEMENT_ID"]}.
Источник данных
ELEMENT_SORT_FIELD
Указывается поле, по которому будет происходить сортировка элементов. Например, sort - индекс сортировки.
ELEMENT_SORT_ORDER
В каком направлении будут отсортированы элементы, по возрастанию (asc) или по убыванию (desc).
FILTER_NAME
Имя массива со значениями фильтра для фильтрации элементов. Если имя не указано, то будет использоваться значение по умолчанию.
Внешний вид
PAGE_ELEMENT_COUNT
Количество элементов на одной странице. Все элементы будут выведены с помощью постраничной навигации.
PROPERTY_CODE
Указываются те свойства инфоблока, которые должны быть отражены при показе его элементов.
Шаблоны ссылок
SECTION_URL
Путь к странице с детальным описанием раздела инфоблока.
DETAIL_URL
Путь к странице с детальным описанием элемента инфоблока.
BASKET_URL
Путь к странице с корзиной покупателя.
ACTION_VARIABLE
Указывается имя переменной, в которой передается действие: ADD_TO_COMPARE_LIST, ADD2BASKET и т.д. Значение поля по умолчанию action.
PRODUCT_ID_VARIABLE
Имя переменной, в которой будет передаваться ID товара.
SECTION_ID_VARIABLE
Имя переменной, в которой будет передаваться ID раздела инфоблока.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
DISPLAY_PANEL
[Y/N] При выборе значения "Y" в административную панель будут добавлены кнопки управления инфоблоками указанного типа.
SET_TITLE
[Y/N] При отмеченной опции будет установлен заголовок страницы.
CACHE_FILTER
[Y/N] При отмеченной опции каждый результат, полученный из фильтра, будет кешироваться.
Настройки постраничной навигации
DISPLAY_TOP_PAGER
[Y/N] При выборе значения "Y" навигация по страницам будет выведена наверху страницы.
DISPLAY_BOTTOM_PAGER
[Y/N] При выборе значения "Y" навигация по страницам будет выведена внизу страницы.
PAGER_TITLE
Название категорий, по которым происходит перемещение по элементам.
PAGER_SHOW_ALWAYS
[Y/N] При выборе значения "Y" постраничная навигация будет выводиться, даже если все элементы помещаются на одной странице.
PAGER_TEMPLATE
Имя шаблона постраничной навигации. Если поле пусто, то выбирается шаблон по умолчанию (.default). Также в системе задан шаблон orange.
PAGER_DESC_NUMBERING
[Y/N] Механизм используют, если при добавлении элемента инфоблока, он всегда попадает наверх списка. Таким образом, меняется лишь последняя страница. Все предыдущие можно надолго закешировать.
PAGER_DESC_NUMBERING_CACHE_TIME
Время кеширования первых страниц в секундах при использовании обратной навигации.
Цены
PRICE_CODE
Указываются типы цен, которые будут выведены для элементов. Если не задан ни один из типов, то цена товара и кнопки Купить и В корзину показаны не будут.
USE_PRICE_COUNT
[Y/N] При выборе значения "Y" отображаются цены всех типов на товары .
SHOW_PRICE_COUNT
Количество единиц товара, для которого выводить стоимость.


RSS новости (импорт)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "RSS новости (импорт)"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:rss.show",
"",
Array(
    "SITE" => "www.1c-bitrix.ru",
    "PORT" => "80",
    "PATH" => "/bitrix/rss.php",
    "QUERY_STR" => "ID=news_sm&LANG=ru&TYPE=news&LIMIT=5",
    "OUT_CHANNEL" => "N",
    "NUM_NEWS" => "10",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "3600"
)
);?>

Описание параметров

Основные параметры
SITE
Адрес сайта для импорта. Указывается адрес сайта, с которого будет осуществляться импорт новостей.
PORT
Порт (обычно 80).
PATH
Путь к rss файлу.
QUERY_STR
Строка запроса (если нужна).
OUT_CHANNEL
[Y|N] Находятся ли новости вне канала (обычно нет).
NUM_NEWS
Количество новостей для показа (0 - не ограничивать).
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кешироваться. Имеет смысл отмечать, если многие пользователи используют одну и туже выборку из фильтра.


RSS новости (экспорт)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "RSS новости (экспорт)"

Одностраничный компонент. Предназначен для создания страницы, которая отдает выбранные новости вашего сайта в формате RSS.

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:rss.out",
"",
Array(
    "IBLOCK_TYPE" => "news",
    "IBLOCK_ID" => "33",
    "SECTION_ID" => "",
    "NUM_NEWS" => "20",
    "NUM_DAYS" => "30",
    "YANDEX" => "N",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "3600"
)
);?>

Описание параметров

Основные параметры
IBLOCK_TYPE
Тип информационного блока. Указывается один из созданных в системе типов инфоблоков.
IBLOCK_ID
Код информационного блока, информация из которого будет экспортироваться.
SECTION_ID
Раздел. Можно указать код раздела. В этом случае информация только из этого раздела будет экспортироваться.
NUM_NEWS
Количество новостей для экспорта.
NUM_DAYS
Количество дней для экспорта.
YANDEX
Экспортировать в диалект Яндекса.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах.
CACHE_FILTER
[Y|N] Кешировать при установленном фильтре. При установленной опции каждый результат, полученный из фильтра будет кешироваться. Имеет смысл отмечать, если многие пользователи используют одну и туже выборку из фильтра.


Комплексный компонент Добавление элементов инфоблока

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Добавление элементов инфоблока"

С помощью данного комплексного компонента осуществляется вывод списка элементов указанного инфоблока, добавление/редактирование элементов и их удаление в зависимости от прав пользователя. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:iblock.element.add","",Array(
     "SEF_MODE" => "Y",
     "IBLOCK_TYPE" => "articles",
     "IBLOCK_ID" => "29",
     "PROPERTY_CODES" => Array("NAME","IBLOCK_SECTION","PREVIEW_TEXT","DETAIL_TEXT","101"),
     "PROPERTY_CODES_REQUIRED" => Array("NAME"),
     "GROUPS" => Array("11"),
     "STATUS" => Array("1"),
     "STATUS_NEW" => "2",
     "ELEMENT_ASSOC" => "CREATED_BY",
     "ALLOW_EDIT" => "Y",
     "ALLOW_DELETE" => "Y",
     "NAV_ON_PAGE" => "10",
     "MAX_USER_ENTRIES" => "100000",
     "MAX_LEVELS" => "100000",
     "LEVEL_LAST" => "Y",
     "USE_CAPTCHA" => "Y",
     "USER_MESSAGE_ADD" => "",
     "USER_MESSAGE_EDIT" => "",
     "DEFAULT_INPUT_SIZE" => "30",
     "MAX_FILE_SIZE" => "0",
     "CUSTOM_TITLE_NAME" => "Название статьи",
     "CUSTOM_TITLE_TAGS" => "Теги",
     "CUSTOM_TITLE_DATE_ACTIVE_FROM" => "",
     "CUSTOM_TITLE_DATE_ACTIVE_TO" => "",
     "CUSTOM_TITLE_IBLOCK_SECTION" => "",
     "CUSTOM_TITLE_PREVIEW_TEXT" => "",
     "CUSTOM_TITLE_PREVIEW_PICTURE" => "",
     "CUSTOM_TITLE_DETAIL_TEXT" => "",
     "CUSTOM_TITLE_DETAIL_PICTURE" => "",
     "SEF_FOLDER" => "/examples/",
     "VARIABLE_ALIASES" => Array()
     )
);?>

Описание параметров

Источник данных
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
Параметры компонента
NAV_ON_PAGE
Количество элементов на странице. Весь список выводится с помощью постраничной навигации.
USE_CAPTCHA
[Y|N] При выборе значения "Y" будут выведены изображение и поле ввода CAPTCHA в форме добавления элемента.
USER_MESSAGE_ADD
Указывается сообщение, которое будет выведено при успешном добавлении элемента.
USER_MESSAGE_EDIT
Указывается сообщение, которое будет выведено при успешном редактировании элемента.
DEFAULT_INPUT_SIZE
Размер полей ввода в форме создания/редактирования элемента.
Свойства инфоблока
PROPERTY_CODES
Указываются поля и свойства инфоблока, которые будут выведены в форме создания/редактирования элемента.
PROPERTY_CODES_REQUIRED
Указываются поля и свойства инфоблока, которые должны быть обязательно заполнены в форме создания/редактирования элемента.
Параметры доступа
GROUPS
Указываются группы пользователей, которые имеют право на добавление/редактирование элементов инфоблока.
STATUS
Указываются статусы, находясь в которых элементы будут отображаться пользователям.
STATUS_NEW
Статус, в который переводятся элементы при их создании/редактировании.
ELEMENT_ASSOC
Задается привязка к пользователю:
  • N - нет привязки, всем пользователям показываются все элементы. В этом случае параметры ALLOW_EDIT и ALLOW_DELETE недоступны.
  • CREATED_BY - по создателю: пользователю будут показаны только созданные им элементы.
  • PROPERTY_ID - привязка по свойству инфоблока, в этом случае в параметре ELEMENT_ASSOC_PROPERTY указывается свойство, по которому выполняется привязка.
ALLOW_EDIT
[Y|N] При выборе значения "Y" будут выведены ссылки на редактирование доступных пользователю элементов.
ALLOW_DELETE
[Y|N] При выборе значения "Y" будут выведены ссылки на удаление доступных пользователю элементов.
MAX_USER_ENTRIES
Максимальное количество элементов, которое может добавить пользователь.
MAX_LEVELS
Максимальное количество разделов, в которое можно добавлять элемент.
LEVEL_LAST
[Y|N] При отмеченной опции пользователям разрешено добавлять элементы только на нижний уровень дерева разделов инфоблока.
MAX_FILE_SIZE
Максимальный размер загружаемых файлов. Если указано "0", то размер файлов не ограничен.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
VARIABLE_ALIASES
Имена переменных для управления страницами элементов инфоблока.
Собственные названия полей
CUSTOM_TITLE_<поле инфоблока>
Задаются названия полей инфоблока для отображения пользователям.
Вместо <поле инфоблока> указано следующее:
  • NAME - наименование;
  • TAGS - теги;
  • DATE_ACTIVE_FROM - дата начала;
  • DATE_ACTIVE_TO - дата завершения;
  • IBLOCK_SECTION - раздел инфоблока;
  • PREVIEW_TEXT - текст анонса;
  • PREVIEW_PICTURE - картинка анонса;
  • DETAIL_TEXT - подробный текст;
  • DETAIL_PICTURE - подробная картинка.


Список своих элементов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список своих элементов"

С помощью данного компонента осуществляется вывод списка доступных пользователю элементов указанного инфоблока, а также ссылок Добавить, Редактировать, Удалить, позволяющих осуществить соответствующие действия с элементами инфоблока. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:iblock.element.add.list","",Array(
     "SEF_MODE" => "Y",
     "IBLOCK_TYPE" => "articles",
     "IBLOCK_ID" => "29",
     "GROUPS" => Array("11"),
     "STATUS" => Array("1"),
     "EDIT_URL" => "elem_edit.php",
     "ELEMENT_ASSOC" => "CREATED_BY",
     "ALLOW_EDIT" => "Y",
     "ALLOW_DELETE" => "Y",
     "NAV_ON_PAGE" => "10",
     "MAX_USER_ENTRIES" => "100000",
     "SEF_FOLDER" => "/examples/",
     "VARIABLE_ALIASES" => Array()
     )
);?>

Описание параметров

Параметры компонента
EDIT_URL
Адрес страницы редактирования элемента.
NAV_ON_PAGE
Количество элементов на странице. Весь список выводится с помощью постраничной навигации.
MAX_USER_ENTRIES
Максимальное количество элементов, которое может добавить пользователь.
Источник данных
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
Параметры доступа
GROUPS
Указываются группы пользователей, которые имеют право на добавление/редактирование элементов инфоблока.
STATUS
Указываются статусы, находясь в которых элементы будут отображаться пользователям.
ELEMENT_ASSOC
Задается привязка к пользователю:
  • N - нет привязки, всем пользователям показываются все элементы. В этом случае параметры ALLOW_EDIT и ALLOW_DELETE недоступны.
  • CREATED_BY - по создателю: пользователю будут показаны только созданные им элементы.
  • PROPERTY_ID - привязка по свойству инфоблока, в этом случае в параметре ELEMENT_ASSOC_PROPERTY указывается свойство, по которому выполняется привязка.
ALLOW_EDIT
[Y|N] При выборе значения "Y" будут выведены ссылки на редактирование доступных пользователю элементов.
ALLOW_DELETE
[Y|N] При выборе значения "Y" будут выведены ссылки на удаление доступных пользователю элементов.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
VARIABLE_ALIASES
Имена переменных для управления страницами элементов инфоблока.


Форма добавления (редактирования)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма добавления/редактирования элемента"

С помощью данного компонента осуществляется вывод формы создания (редактирования) элемента указанного информационного блока. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:iblock.element.add.form","",Array(
     "SEF_MODE" => "Y",
     "IBLOCK_TYPE" => "articles",
     "IBLOCK_ID" => "29",
     "PROPERTY_CODES" => Array("NAME","TAGS","IBLOCK_SECTION","PREVIEW_TEXT","DETAIL_TEXT"),
     "PROPERTY_CODES_REQUIRED" => Array("NAME"),
     "GROUPS" => Array("11"),
     "STATUS_NEW" => "2",
     "STATUS" => Array("1"),
     "LIST_URL" => "elem_list.php",
     "ELEMENT_ASSOC" => "CREATED_BY",
     "MAX_USER_ENTRIES" => "100000",
     "MAX_LEVELS" => "100000",
     "LEVEL_LAST" => "Y",
     "USE_CAPTCHA" => "Y",
     "USER_MESSAGE_EDIT" => "",
     "USER_MESSAGE_ADD" => "",
     "DEFAULT_INPUT_SIZE" => "30",
     "MAX_FILE_SIZE" => "0",
     "CUSTOM_TITLE_NAME" => "Название статьи",
     "CUSTOM_TITLE_TAGS" => "",
     "CUSTOM_TITLE_DATE_ACTIVE_FROM" => "",
     "CUSTOM_TITLE_DATE_ACTIVE_TO" => "",
     "CUSTOM_TITLE_IBLOCK_SECTION" => "Рубрика",
     "CUSTOM_TITLE_PREVIEW_TEXT" => "",
     "CUSTOM_TITLE_PREVIEW_PICTURE" => "",
     "CUSTOM_TITLE_DETAIL_TEXT" => "",
     "CUSTOM_TITLE_DETAIL_PICTURE" => "",
     "SEF_FOLDER" => "/examples/",
     "VARIABLE_ALIASES" => Array()
     )
);?>

Описание параметров

Источник данных
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
Параметры компонента
STATUS_NEW
Статус, в который переводятся элементы при их создании/редактировании.
LIST_URL
Адрес страницы со списком доступных пользователю элементов.
USE_CAPTCHA
[Y|N] При выборе значения "Y" будут выведены изображение и поле ввода CAPTCHA в форме добавления элемента.
USER_MESSAGE_ADD
Указывается сообщение, которое будет выведено при успешном добавлении элемента.
USER_MESSAGE_EDIT
Указывается сообщение, которое будет выведено при успешном редактировании элемента.
DEFAULT_INPUT_SIZE
Размер полей ввода в форме создания/редактирования элемента.
Свойства инфоблока
PROPERTY_CODES
Указываются поля и свойства инфоблока, которые будут выведены в форме создания/редактирования элемента.
PROPERTY_CODES_REQUIRED
Указываются поля и свойства инфоблока, которые должны быть обязательно заполнены в форме создания/редактирования элемента.
Параметры доступа
GROUPS
Указываются группы пользователей, которые имеют право на добавление/редактирование элементов инфоблока.
STATUS
Указываются статусы, находясь в которых элементы будут отображаться пользователям.
ELEMENT_ASSOC
Задается привязка к пользователю:
  • N - нет привязки, всем пользователям показываются все элементы.
  • CREATED_BY - по создателю: пользователю будут показаны только созданные им элементы.
  • PROPERTY_ID - привязка по свойству инфоблока, в этом случае в параметре ELEMENT_ASSOC_PROPERTY указывается свойство, по которому выполняется привязка.
MAX_USER_ENTRIES
Максимальное количество элементов, которые может добавить пользователь.
MAX_LEVELS
Максимальное количество разделов, в которые можно добавлять элемент.
LEVEL_LAST
[Y|N] При отмеченной опции пользователям разрешено добавлять элементы только на нижний уровнень дерева разделов инфоблока.
MAX_FILE_SIZE
Максимальный размер загружаемых файлов. Если указано "0", то размер файлов не ограничен.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
VARIABLE_ALIASES
Имена переменных для управления страницами элементов инфоблока.
Собственные названия полей
CUSTOM_TITLE_<поле инфоблока>
Задаются названия полей инфоблока для отображения пользователям.
Вместо <поле инфоблока> указано следующее:
  • NAME - наименование;
  • TAGS - теги;
  • DATE_ACTIVE_FROM - дата начала;
  • DATE_ACTIVE_TO - дата завершения;
  • IBLOCK_SECTION - раздел инфоблока;
  • PREVIEW_TEXT - текст анонса;
  • PREVIEW_PICTURE - картинка анонса;
  • DETAIL_TEXT - подробный текст;
  • DETAIL_PICTURE - подробная картинка.


Компонент Голосование

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Голосование"

С помощью данного компонента пользователь имеет возможность проголосовать за выбранный элемент инфоблока. Для этого из выпадающего списка выбирается желаемый балл и нажимается кнопка Голосовать. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:iblock.vote","",Array(
     "IBLOCK_TYPE" => "photo",
     "IBLOCK_ID" => "8",
     "ELEMENT_ID" => $_REQUEST["ELEMENT_ID"],
     "MAX_VOTE" => "5",
     "VOTE_NAMES" => Array("0","1","2","3","4"),
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Источник данных
IBLOCK_TYPE
Указывается тип информационного блока.
IBLOCK_ID
Идентификатор информационного блока выбранного типа.
ELEMENT_ID
Указывается код, в котором передается идентификатор элемента. По умолчанию указано ={$_REQUEST[" ELEMENT _ID"]}.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
MAX_VOTE
Максимальное количество баллов.
VOTE_NAMES
Указываются подписи к каждому баллу.


Двухуровневая структура разделов (с подсчетом количества элементов в каждом разделе)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Двухуровневая структура разделов (с подсчетом количества элементов в каждом разделе)"

Данный компонент предназначен для вывода списка разделов и их подразделов, с подсчетом количества элементов в каждом. Как правило, используется на главной странице каталога.

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/sections_top_2.php", Array(
"IBLOCK_TYPE"		=> "catalog",
"IBLOCK_ID"		=> "22",
"SECTION_SORT_FIELD"	=> "sort",
"SECTION_SORT_ORDER"	=> "asc",
"SECTION_URL"		=> "/catalog/accessory/section.php?",
"CACHE_TIME"		=> "3600",
"DISPLAY_PANEL"       	=> "Y",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
SECTION_SORT_FIELD
По какому полю сортировать разделы; допустимы следующие значения:
  • sort – по значнию индекса сортировки;
  • timestamp_x – по дате модификации параметров раздела;
  • name – по загол,овку раздела;
  • id – по ID разделу;
  • depth_level – уровень вложенности раздела.
SECTION_SORT_ORDER
Порядок сортировки разделов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
SECTION_URL
URL, ведущий на страницу с содержимым раздела.
CACHE_TIME
(сек.) время кэширования значений, выбираемых из базы.
DISPLAY_PANEL
(Y/N) Добавлять ли в административную панель кнопки для данного компонента.


TOP элементов каталога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "TOP элементов каталога"

Данный компонент предназначен для вывода TOP'а элементов каталога в табличном порядке. Как правило, используется на главной странице сайта.

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/main_page.php", Array(
    "IBLOCK_TYPE"		=> "catalog",
    "IBLOCK_ID"		=> "21",
    "ELEMENT_COUNT"            => "6",
    "LINE_ELEMENT_COUNT"	=> "2",
    "ELEMENT_SORT_FIELD"	=> "shows",
    "ELEMENT_SORT_ORDER"	=> "desc",
    "arrPROPERTY_CODE" => Array(
        "YEAR",
        "STANDBY_TIME",
        "TALKTIME",
        "WEIGHT",
        "STANDART",
        "SIZE",
        "BATTERY"
        ),
    "PRICE_CODE"		=> "RETAIL",
    "BASKET_URL"		=> "/personal/basket.php",
    "CACHE_TIME"		=> "3600",
    "ACTION_VARIABLE"		=> "action",
    "PRODUCT_ID_VARIABLE"	=> "id",
    "SHOW_DESCRIPTION"		=> "N",
    "USE_PRICE_COUNT"		=> "N",
    "SHOW_PRICE_COUNT"		=> "1",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
ELEMENT_COUNT
Максимальное количество элементов, выводимых в каждом разделе.
LINE_ELEMENT_COUNT
Количество элементов, выводимых в одной строке таблицы.
ELEMENT_SORT_FIELD
По какому полю сортируем элементы, доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки элементов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
arrPROPERTY_CODE
Массив символьных кодов свойств.
PRICE_CODE
Символьный код типа цены элемента.
BASKET_URL
URL, ведущий на страницу с корзиной покупателя.
CACHE_TIME
(сек.) время кэширования значений выбираемых из базы.
ACTION_VARIABLE
Название переменной, в которой передается действие, например, BUY и др.
PRODUCT_ID_VARIABLE
Название переменной, в которой передается код товара для покупки.
SHOW_DESCRIPTION
Показывать описание для списка.
USE_PRICE_COUNT
Использовать вывод цен с диапазонами. При отмеченной опции выводятся цены всех типов на товары.
SHOW_PRICE_COUNT
Указывается, для какого количества товаров выводить цены.


Разделы с TOP’ом элементов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Разделы с TOP’ом элементов"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/sections_top.php", Array(
"IBLOCK_TYPE"		=> "catalog",
"IBLOCK_ID"		=> "21",
"PARENT_SECTION_ID"	=> "0",
"SECTION_SORT_FIELD"	=> "sort",
"SECTION_SORT_ORDER"	=> "asc",
"SECTION_COUNT"            => "20",
"SECTION_URL"		=> "/catalog/phone/section.php?",
"ELEMENT_COUNT"            => "6",
"LINE_ELEMENT_COUNT"	=> "2",
"ELEMENT_SORT_FIELD"	=> "sort",
"ELEMENT_SORT_ORDER"	=> "asc",
"arrPROPERTY_CODE" => Array(
            "YEAR",
            "STANDBY_TIME",
            "TALKTIME",
            "WEIGHT",
            "STANDART",
            "SIZE",
            "BATTERY"
            ),
"PRICE_CODE"		=> "RETAIL",
"BASKET_URL"		=> "/personal/basket.php",
"FILTER_NAME"		=> "arrFilter",
"CACHE_FILTER"		=> "N",
"CACHE_TIME"		=> "3600",
"DISPLAY_PANEL"		=> "Y",
"ACTION_VARIABLE"		=> "action",
"PRODUCT_ID_VARIABLE"	=> "id",
"SHOW_DESCRIPTION"		=> "N",
"USE_PRICE_COUNT"		=> "N",
"SHOW_PRICE_COUNT"		=> "1",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
PARENT_SECTION_ID
ID родительского раздела.
SECTION_SORT_FIELD
По какому полю сортировать разделы; допустимы следующие значения:
  • sort – по значнию индекса сортировки;
  • timestamp_x – по дате модификации параметров раздела;
  • name – по загол,овку раздела;
  • id – по ID разделу;
  • depth_level – уровень вложенности раздела.
SECTION_SORT_ORDER
Порядок сортировки разделов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
SECTION_COUNT
Максимальное количество выводимых разделов.
SECTION_URL
URL, ведущий на страницу с содержимым раздела.
ELEMENT_COUNT
Максимальное количество элементов, выводимых в каждом разделе.
LINE_ELEMENT_COUNT
Количество элементов выводимых в одной строке таблицы.
ELEMENT_SORT_FIELD
По какому полю сортировать элементы; доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки элементов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
arrPROPERTY_CODE
Массив символьных кодов свойств раздела.
PRICE_CODE
Символьный код типа цены.
BASKET_URL
URL, ведущий на страницу с корзиной покупателя.
FILTER_NAME
Имя массива со значениями фильтрации элементов.
CACHE_FILTER
[Y|N] - кэшировать ли значения, выбираемые из базы, если установлен фильтр по ним.
CACHE_TIME
(сек.) время кэширования значений выбираемых из базы.
DISPLAY_PANEL
Добавлять в административную панель кнопки для данного компонента.
ACTION_VARIABLE
Название переменной, в которой передается действие, например, BUY и др.
PRODUCT_ID_VARIABLE
Название переменной, в которой передается код товара для покупки.
SHOW_DESCRIPTION
Показывать описание для списка.
USE_PRICE_COUNT
Использовать вывод цен с диапазонами. При отмеченной опции выводятся цены всех типов на товары.
SHOW_PRICE_COUNT
Указывается, для какого количества товаров выводить цены.


Список связанных элементов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список связанных элементов"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/link_element_list.php", Array(
"ELEMENT_ID"		=> $_REQUEST["ID"],
"LINK_IBLOCK_TYPE"		=> "catalog",
"LINK_IBLOCK_ID"           => "22",
"LINK_PROPERTY_SID"        => "THEMES",
"PAGE_LINK_ELEMENT_COUNT"	=> "50",
"LINK_ELEMENT_SORT_FIELD"	=> "sort",
"LINK_ELEMENT_SORT_ORDER"	=> "desc",
"arrPROPERTY_LINK_CODE"	=> array(),
"LINK_PRICE_CODE"		=> "RETAIL",
"CATALOG_URL"              => "/catalog/",
"SECTION_URL"              => "/catalog/accessory/section.php?",
"BASKET_URL"               => "/personal/basket.php"
"CACHE_TIME"               => "3600",
"DISPLAY_PANEL"            => "Y",
));
?>

Описание параметров

ELEMENT_ID
ID родительского элемента для связанных элементов.
LINK_IBLOCK_TYPE
Тип инфоблока связанных элементов.
LINK_IBLOCK_ID
ID инфоблока связанных элементов.
LINK_PROPERTY_SID
Символьный код свойства родительского элемента, в котором хранится связь.
PAGE_LINK_ELEMENT_COUNT
Количество связанных элементов на одной странице (для постраничного вывода).
LINK_ELEMENT_SORT_FIELD
По какому полю сортируем элементы; доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
LINK_ELEMENT_SORT_ORDER
Порядок сортировки элементов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
arrPROPERTY_LINK_CODE
Массив выбираемых символьных кодов свойств для связанных элементов.
LINK_PRICE_CODE
Символьный код типа цены для связанных элементов.
CATALOG_URL
Начальная страница каталога.
SECTION_URL
Страница с разделами каталога связанных элементов.
BASKET_URL
URL, ведущий на страницу с корзиной покупателя.
CACHE_TIME
(сек.) время кэширования значений выбираемых из базы.
DISPLAY_PANEL
Добавлять в административную панель кнопки для данного компонента.


Список сравниваемых элементов каталога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список сравниваемых элементов каталога"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/compare_list.php", Array(
"IBLOCK_TYPE"		=> "catalog",
"IBLOCK_ID"		=> "21",
"COMPARE_URL"		=> "/catalog/accessories/compare.php",
"NAME"			=> "CATALOG_COMPARE_LIST",
"ELEMENT_SORT_FIELD"	=> "sort",
"ELEMENT_SORT_ORDER"	=> "asc",
"CACHE_TIME"		=> "3600",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
COMPARE_URL
URL, ведущий на страницу с полной таблицей сравниваемых элементов.
NAME
Уникальный идентификатор списка сравнения.
ELEMENT_SORT_FIELD
По какому полю сортируем элементы, доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки элементов; допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
CACHE_TIME
(сек.) время кэширования значений, выбираемых из базы.


Таблица сравнения элементов каталога (вертикально)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Таблица сравнения элементов каталога (вертикально)"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/compare_table.php", Array(
    "IBLOCK_TYPE"        		=> "catalog",
    "IBLOCK_ID"          		=> "21",
    "NAME"               		=> "CATALOG_COMPARE_LIST",
    "arrFIELD_CODE"      		=> array(
                     "NAME",
                        "PREVIEW_PICTURE",
                ),
    "arrPROPERTY_CODE"   		=> array(
                     "WEIGHT",
                        "SIZE",
                     "STANDART",
                     "STANDBY_TIME",
                        "TALKTIME",
                     "BATTERY",
                     "VIBRO",
                        "VIOCE",
                     "PC",
                     "WAP",
                        ),
    "arrPRICE_CODE"      		=> array("RETAIL"),
    "BASKET_URL"         		=> "/personal/basket.php",
    "ELEMENT_SORT_FIELD" 		=> "shows",
    "ELEMENT_SORT_ORDER" 		=> "desc",
    "DISPLAY_ELEMENT_SELECT_BOX" 	=> "N",
    "ELEMENT_SORT_FIELD_BOX"	=> "name",
    "ELEMENT_SORT_ORDER_BOX" 	=> "asc",
    "CACHE_TIME"         		=> "3600",
    ));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
NAME
Уникальный идентификатор списка сравнения.
arrFIELD_CODE
Массив идентификаторов полей; доступны следующие значения:
  • ID – ID элемента;
  • NAME – заголовок элемента;
  • DATE_ACTIVE_FROM – дата активности “с”;
  • DATE_ACTIVE_TO – дата активности “по”;
  • DETAIL_PICTURE – изображение для детального описания;
  • DETAIL_TEXT – текст детального описания элемента;
  • PREVIEW_PICTURE – изображение для анонса;
  • PREVIEW_TEXT – текст анонса.
arrPROPERTY_CODE
Массив выбираемых символьных кодов свойств.
arrPRICE_CODE
Массив символьных кодов типов цен.
BASKET_URL
URL, ведущий на страницу с корзиной покупателя.
ELEMENT_SORT_FIELD
По какому полю сортируем элементы; доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки элементов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
DISPLAY_ELEMENT_SELECT_BOX
Выводить список элементов инфоблока. При отмеченной опции после таблицы будет добавлен список элементов инфоблока, которые можно добавить в таблицу.
ELEMENT_SORT_FIELD_BOX
По какому полю сортируем список элементов. Указывается поле, по которому будет происходить сортировка списка элементов инфоблока. Доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER_BOX
Порядок сортировки списка элементов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
CACHE_TIME
(сек.) время кэширования значений, выбираемых из базы.


Фильтр элементов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Фильтр элементов"

Данный компонент предназначен для вывода формы фильтра элементов.

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/element_filter.php", Array(
    "IBLOCK_TYPE"		=> "catalog",
    "IBLOCK_ID"		=> "21",
    "arrFIELD_CODE"		=> Array("NAME"),
    "arrPROPERTY_CODE"	=> Array(
        "YEAR",
        "WEIGHT",
        "STANDART",
        "BATTERY",
        "WAP",
        "VIBRO",
        "VOICE",
        "PC"
        ),
    "arrPRICE_CODE"		=> Array("RETAIL"),
    "CURRENCY_CODE"	=> "\$",
    "SAVE_IN_SESSION"	=> "N",
    "FILTER_NAME"		=> "arrFilter",
    "LIST_HEIGHT"		=> "5",
    "TEXT_WIDTH"		=> "24",
    "NUMBER_WIDTH"	=> "5",
    "CACHE_TIME"		=> "3600",
    ));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
arrFIELD_CODE
Массив идентификаторов полей; доступны следующие значения:
  • ID – ID элемента (по данному полю будет доступна сложная логика);
  • NAME – заголовок элемента (по данному полю будет доступна сложная логика);
  • PREVIEW_TEXT – анонс элемента (по данному полю будет доступна сложная логика);
  • DETAIL_TEXT – детальное описание элемента (по данному полю будет доступна сложная логика);
  • SEARCHABLE_CONTENT – заголовок и описания элемента (по данному полю будет доступна сложная логика);
  • SECTION_ID – выпадающий список разделов инфоблока;
  • DATE_ACTIVE_FROM – интервал для даты активности “с”;
  • DATE_ACTIVE_TO – интервал для даты активности “по”.
arrPROPERTY_CODE
Массив символьных кодов свойств.
arrPRICE_CODE
Массив символьных кодов типов цен.
CURRENCY_CODE
Обозначение валюты для полей фильтра связанных с ценами.
SAVE_IN_SESSION
[Y|N] Y - сохранять значения полей фильтра в сессии.
FILTER_NAME
Имя выходного массива со значениями фильтра.
LIST_HEIGHT
Высота списков множественного выбора.
TEXT_WIDTH
Ширина однострочных текстовых полей ввода.
NUMBER_WIDTH
Ширина полей ввода для числовых интервалов.
CACHE_TIME
(сек.) время кэширования значений, выбираемых из базы и необходимых для построения формы фильтра.


Элемент каталога детально

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Элемент каталога детально"

Данный компонент предназначен для показа полной информации по одному элемента каталога.

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/element.php", Array(
"IBLOCK_TYPE"             => "catalog",
"IBLOCK_ID"               => "21",
"ELEMENT_ID"              => $_REQUEST["ID"],
"SECTION_URL"             => "/catalog/phone/section.php?",
"LINK_IBLOCK_TYPE"        => "catalog",
"LINK_IBLOCK_ID"          => "22",
"LINK_PROPERTY_SID"       => "PHONE_ID",
"LINK_ELEMENTS_URL"       => "/catalog/accessory/byphone.php?",
"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",
"DISPLAY_PANEL"            => "Y",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
ELEMENT_ID
ID элемента.
SECTION_URL
URL, ведущий на страницу с содержимым раздела.
LINK_IBLOCK_TYPE
Тип инфоблока со связанными элементами.
LINK_IBLOCK_ID
ID инфоблока со связанными элементами.
LINK_PROPERTY_SID
Символьный код свойства в котором хранится связь.
LINK_ELEMENTS_URL
URL страницы, на которой будут отображаться связанные элементы.
arrFIELD_CODE
Массив идентификаторов полей; доступны следующие значения:
  • DETAIL_PICTURE – изображение для детального описания;
  • DETAIL_TEXT – текст детального описания элемента;
  • PREVIEW_PICTURE – изображение для анонса;
  • PREVIEW_TEXT – текст анонса.
arrPROPERTY_CODE
Массив выбираемых символьных кодов свойств; есть ряд предустановленных свойств:
  • MORE_PHOTO – при наличии данного свойства компонент выводит таблицу дополнительных фотографий элемента;
  • MANUAL – при наличии данного свойства компонент выведет ссылку для скачивания файла.
CACHE_TIME
(сек.) время кэширования значений выбираемых из базы.
DISPLAY_PANEL
Добавлять в административную панель кнопки для данного компонента.


Элементы раздела в виде списка

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Элементы раздела в виде списка"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/section_2.php", Array(
"IBLOCK_TYPE"		=> "catalog",
"IBLOCK_ID"		=> "22",
"SECTION_ID"		=> $_REQUEST["SECTION_ID"],
"PRICE_CODE"		=> "RETAIL",
"BASKET_URL"		=> "/personal/basket.php",
"PAGE_ELEMENT_COUNT"	=> "50",
"ELEMENT_SORT_FIELD"	=> "sort",
"ELEMENT_SORT_ORDER"	=> "asc",
"arrPROPERTY_CODE"         => array(),
"FILTER_NAME"		=> "arrFilter",
"CACHE_FILTER"		=> "N",
"CACHE_TIME"		=> "3600",
"DISPLAY_PANEL"		=> "Y",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
SECTION_ID
ID раздела.
PRICE_CODE
Символьный код типа цены.
BASKET_URL
URL, ведущий на страницу с корзиной покупателя.
PAGE_ELEMENT_COUNT
Количество элементов на странице.
ELEMENT_SORT_FIELD
По какому полю сортируем элементы, доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки элементов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
arrPROPERTY_CODE
Массив символьных кодов свойств раздела.
FILTER_NAME
Имя массива со значениями фильтрации элементов.
CACHE_FILTER
[Y|N] кэшировать значения, выбираемые из базы (если установлен фильтр по ним).
CACHE_TIME
(сек.) время кэширования значений выбираемых из базы.
DISPLAY_PANEL
Добавлять в административную панель кнопки для данного компонента.


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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Элементы раздела в табличном порядке"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/catalog/section.php", Array(
    "IBLOCK_TYPE"		=> "catalog",
    "IBLOCK_ID"		=> "21",
    "SECTION_ID"		=> $_REQUEST["SECTION_ID"],
    "PAGE_ELEMENT_COUNT"	=> "30",
    "LINE_ELEMENT_COUNT"	=> "2",
    "ELEMENT_SORT_FIELD"	=> "sort",
    "ELEMENT_SORT_ORDER"	=> "asc",
    "arrPROPERTY_CODE"	=> Array(
            "YEAR",
            "STANDBY_TIME",
            "TALKTIME",
            "WEIGHT",
            "STANDART",
            "SIZE",
            "BATTERY"
            ),
    "PRICE_CODE"		=> "RETAIL",
    "BASKET_URL"		=> "/personal/basket.php",
    "FILTER_NAME"		=> "arrFilter",
    "CACHE_FILTER"		=> "N",
    "CACHE_TIME"		=> "3600",
    "DISPLAY_PANEL"		=> "Y",
    "ACTION_VARIABLE"		=> "action",
    "PRODUCT_ID_VARIABLE"	=> "id",
    "SECTION_ID_VARIABLE"	=> "SECTION_ID",
    "SHOW_DESCRIPTION"		=> "N",
    "USE_PRICE_COUNT"		=> "N",
    "SHOW_PRICE_COUNT"		=> "1",
    ));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
SECTION_ID
ID раздела.
PAGE_ELEMENT_COUNT
Количество элементов на странице.
LINE_ELEMENT_COUNT
Количество элементов, выводимых в одной строке таблицы.
ELEMENT_SORT_FIELD
По какому полю сортировать элементы; доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки элементов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
arrPROPERTY_CODE
Массив символьных кодов свойств раздела.
PRICE_CODE
Символьный код типа цены.
BASKET_URL
URL ведущий на страницу с корзиной покупателя.
FILTER_NAME
Имя массива со значениями фильтрации элементов.
CACHE_FILTER
[Y|N] кэшировать значения, выбираемые из базы если установлен фильтр по ним.
CACHE_TIME
(сек.) время кэширования значений выбираемых из базы.
DISPLAY_PANEL
Добавлять в административную панель кнопки для данного компонента.
ACTION_VARIABLE
Название переменной, в которой передается действие, например, BUY и др.
PRODUCT_ID_VARIABLE
Название переменной, в которой передается код товара для покупки.
SECTION_ID_VARIABLE
Название переменной, в которой передается код группы.
SHOW_DESCRIPTION
Показывать описание для списка.
USE_PRICE_COUNT
Использовать вывод цен с диапазонами. При отмеченной опции выводятся цены всех типов на товары.
SHOW_PRICE_COUNT
Выводить цены для количества. Указывается, для какого количества товаров выводить цены.


Разделы с TOP’ом фотографий

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Разделы с TOP’ом фотографий"

Данный компонент предназначен для вывода TOP’а фотографий каждого раздела фотогалереи в табличном порядке. Как правило, используется на главной странице фотогалереи.

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/photo/sections_top.php", Array(
"IBLOCK_TYPE"		=> "photo",
"IBLOCK_ID"        	=> "8",
"PARENT_SECTION_ID"	=> "0",
"SECTION_SORT_FIELD"	=> "sort",
"SECTION_SORT_ORDER"	=> "asc",
"SECTION_COUNT"		=> "20",
"SECTION_URL"		=> "/about/gallery/section.php?",
"ELEMENT_COUNT"		=> "9",
"LINE_ELEMENT_COUNT"	=> "3",
"ELEMENT_SORT_FIELD"	=> "sort",
"ELEMENT_SORT_ORDER"	=> "asc",
"FILTER_NAME"		=> "arrFilter",
"CACHE_FILTER"		=> "N",
"CACHE_TIME"		=> "3600",
"DISPLAY_PANEL"		=> "Y",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
PARENT_SECTION_ID
ID родительского раздела.
SECTION_SORT_FIELD
По какому полю сортировать разделы; допустимы следующие значения:
  • sort – по значению индекса сортировки;
  • timestamp_x – по дате модификации параметров раздела;
  • name – по заголовку раздела;
  • id – по ID разделу;
  • depth_level – уровень вложенности раздела.
SECTION_SORT_ORDER
Порядок сортировки разделов; допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
SECTION_COUNT
Максимальное количество выводимых разделов.
SECTION_URL
URL, ведущий на страницу с содержимым раздела.
ELEMENT_COUNT
Максимальное количество элементов, выводимых в каждом разделе.
LINE_ELEMENT_COUNT
Количество элементов, выводимых в одной строке таблицы.
ELEMENT_SORT_FIELD
По какому полю сортировать элементы; доступны следующие значения:
  • shows – среднее количество просмотров элемента (популярность элемента);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки элементов, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
FILTER_NAME
Имя массива со значениями фильтрации элементов.
CACHE_FILTER
[Y|N] кэшировать ли значения выбираемые из базы если установлен фильтр по ним.
CACHE_TIME
(сек.) время кэширования значений, выбираемых из базы.
DISPLAY_PANEL
[Y|N] Добавлять ли в административную панель кнопки для данного компонента.


Случайное фото

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Случайное фото"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/photo/random.php", Array(
"IBLOCK_TYPE"	=>	"photo",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.


Фотографии раздела

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Фотографии раздела"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/photo/section.php", Array(
"IBLOCK_TYPE"		=> "photo",
"IBLOCK_ID"		=> "8",
"SECTION_ID"		=> $_REQUEST["SECTION_ID"],
"PAGE_ELEMENT_COUNT"	=> "50",
"LINE_ELEMENT_COUNT"	=> "3",
"ELEMENT_SORT_FIELD"	=> "sort",
"ELEMENT_SORT_ORDER"	=> "asc",
"FILTER_NAME"		=> "arrFilter",
"CACHE_FILTER"		=> "N",
"CACHE_TIME"		=> "3600",
"DISPLAY_PANEL"		=> "Y",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
SECTION_ID
ID раздела.
PAGE_ELEMENT_COUNT
Количество фотографий на странице.
LINE_ELEMENT_COUNT
Количество фотографий, выводимых в одной строке таблицы.
ELEMENT_SORT_FIELD
По какому полю сортировать фотографии; доступны следующие значения:
  • shows – среднее количество просмотров фотографий (популярность);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки фотографий, допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
arrPROPERTY_CODE
Массив символьных кодов свойств раздела.
PRICE_CODE
Символьный код типа цены
BASKET_URL
URL ведущий на страницу с корзиной покупателя.
FILTER_NAME
Имя массива со значениями фильтрации фотографий.
CACHE_FILTER
[Y|N] кэшировать ли значения выбираемые из базы если установлен фильтр по ним.
CACHE_TIME
(сек.) время кэширования значений, выбираемых из базы.
DISPLAY_PANEL
[Y|N] Добавлять ли в административную панель кнопки для данного компонента.


Фотография детально

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Фотография детально"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/photo/photo.php", Array(
"IBLOCK_TYPE"		=> "photo",
"IBLOCK_ID"		=> "8",
"ELEMENT_ID"		=> $_REQUEST["ID"],
"SECTION_URL"		=> "/about/gallery/section.php?",
"ELEMENT_SORT_FIELD"	=> "sort",
"ELEMENT_SORT_ORDER"	=> "asc",
"CACHE_TIME"		=> "3600",
"DISPLAY_PANEL"		=> "Y",
));
?>

Описание параметров

IBLOCK_TYPE
Тип инфоблока.
IBLOCK_ID
ID инфоблока.
ELEMENT_ID
ID фотографии.
SECTION_URL
URL ведущий на страницу с содержимым раздела фотогалереи.
ELEMENT_SORT_FIELD
По какому полю сортировать фотографии (для ссылок “следующая”, “предыдущая”); доступны следующие значения:
  • shows – среднее количество просмотров фотографий (популярность);
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • id – по ID элемента;
  • active_from – по дате активности “с”;
  • active_to – по дате активности “по”.
ELEMENT_SORT_ORDER
Порядок сортировки фотографий (для ссылок “следующая”, “предыдущая”); допустимы следующие значения:
  • asc – по возрастанию;
  • desc – по убыванию.
CACHE_TIME
(сек.) время кэширования значений, выбираемых из базы.
DISPLAY_PANEL
[Y|N] Добавлять ли в административную панель кнопки для данного компонента.


Список новостей

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список новостей"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/news/news.php", Array(
"IBLOCK_TYPE"	=> "news",
"ID"	=>	Array("1"),
"SECTION_ID"	=>	"220",
"NEWS_COUNT"	=> "10",
"SORT_BY1"	=> "ACTIVE_FROM",
"SORT_ORDER1"	=> "DESC",
"SORT_BY2"	=> "SORT",
"SORT_ORDER2"	=> "ASC",
"arrPROPERTY_CODE"	=> Array("SOURCE"),
"DETAIL_PAGE_URL"	=> "/content/news/index.php?news=#ID#",
"INCLUDE_IBLOCK_INTO_CHAIN"	=> "Y",
"FILTER"	=> "FILTER"
"CACHE_TIME"	=> "0"
"DISPLAY_PANEL"	=> "Y",
));
?>

Описание параметров

IBLOCK_TYPE
Тип информационного блока (используется только для проверки).
ID
Код информационного блока.
SECTION_ID
Код группы. Указывается, если выводятся элементы определнной группы. Если выводятся элементы всех групп, то параметр не определяется.
NEWS_COUNT
Количество новостей в странице.
SORT_BY1
Поле для первой сортировки новостей:
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER1
Направление для первой сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
SORT_BY2
Поле для второй сортировки новостей:
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате начала активности.
SORT_ORDER2
Направление для второй сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
arrPROPERTY_CODE
Указываются свойства, которые будут выводится для элементов.
DETAIL_PAGE_URL
URL страницы детального просмотра (по умолчанию - из настроек инфоблока).
INCLUDE_IBLOCK_INTO_CHAIN
[Y|N] Включать инфоблок/группу в цепочку навигации.
FILTER
Задается имя переменной, в которой передается массив параметров из фильтра. Служит для определения выходящих из фильтра элементов. Поле может быть оставлено пустым, тогда используется значение по умолчанию.
CACHE_TIME
(сек.) время кэширования значений, выбираемых из базы (0 – не кэшировать).
DISPLAY_PANEL
[Y|N] Добавлять ли в административную панель кнопки для данного компонента.


Новость детально

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Новость детально"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/news/detail.php", Array(
    "ID"				=> $_REQUEST["ID"],
    "IBLOCK_TYPE"			=> "news",
    "IBLOCK_ID"			=> "33",
    "arrPROPERTY_CODE"		=> Array("SOURCE"),
    "META_KEYWORDS"		=> "KEYWORDS",
    "META_DESCRIPTION"		=> "DESCRIPTION",
    "LIST_PAGE_URL"		=> "/content/news/index.php",
    "INCLUDE_IBLOCK_INTO_CHAIN"	=> "Y",
    "CACHE_TIME"			=> "3600"
    "DISPLAY_PANEL"		=> "Y"
    ));
?>

Описание параметров

ID
ID элемента.
IBLOCK_TYPE
Тип информационного блока (используется только для проверки).
IBLOCK_ID
Код информационного блока.
arrPROPERTY_CODE
Свойства, значения которых будут выведены для элемента.
META_KEYWORDS
Ключевые слова страницы будут установлены из указанного здесь свойства.
META_DESCRIPTION
Описание страницы будет установлено из указанного здесь свойства.
LIST_PAGE_URL
URL страницы просмотра списка элементов (по умолчанию - из настроек инфоблока).
INCLUDE_IBLOCK_INTO_CHAIN
[Y|N] Включать инфоблок в цепочку навигации.
CACHE_TIME
(сек.) время кэширования (0 – не кэшировать).
DISPLAY_PANEL
[Y|N] Добавлять ли в административную панель кнопки для данного компонента.


Лента новостей

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Лента новостей"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/news/news_line.php", Array(
    "IBLOCK_TYPE"   => "news",
    "IBLOCK"        => Array("1"),
    "NEWS_COUNT"    => "20",
    "SORT_BY1"      => "ACTIVE_FROM",
    "SORT_ORDER1"   => "DESC",
    "SORT_BY2"      => "SORT",
    "SORT_ORDER2"   => "ASC",
    "CACHE_TIME"    => "0"
));
?>

Описание параметров

IBLOCK_TYPE
Тип информационного блока (используется только для проверки).
IBLOCK
Код информационного блока.
NEWS_COUNT
Количество новостей в странице.
SORT_BY1
Поле для первой сортировки новостей:
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате активности “с”.
SORT_ORDER1
Направление для первой сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
SORT_BY2
Поле для второй сортировки новостей:
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате активности “с”.
SORT_ORDER2
Направление для второй сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
CACHE_TIME
(сек.) время кэширования (0 – не кэшировать).


Все новости

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Все новости"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/news/index.php", Array(
"IBLOCK_TYPE"       => "news",
"IBLOCK_SORT_BY"    => "SORT",
"IBLOCK_SORT_ORDER" => "ASC",
"NEWS_COUNT"        => "5",
"SORT_BY1"          => "ACTIVE_FROM",
"SORT_ORDER1"       => "DESC",
"SORT_BY2"          => "SORT",
"SORT_ORDER2"       => "ASC",
"CACHE_TIME"        => "0"
));
?>

Описание параметров

IBLOCK_TYPE
Тип информационного блока.
IBLOCK_SORT_BY
Поле для сортировки информационных блоков:
  • sort – по индексу сортировки;
  • id – по идентификатору;
  • name – по названию.
IBLOCK_SORT_ORDER
Направление для сортировки информационных блоков:
  • asc – по возрастанию;
  • desc – по убыванию.
NEWS_COUNT
Количество новостей в каждом блоке.
SORT_BY1
Поле для первой сортировки новостей:
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате активности “с”.
SORT_ORDER1
Направление для первой сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
SORT_BY2
Поле для второй сортировки новостей:
  • sort – по индексу сортировки;
  • timestamp_x – по дате изменения;
  • name – по заголовку;
  • active_from – по дате активности “с”.
SORT_ORDER2
Направление для второй сортировки новостей:
  • asc – по возрастанию;
  • desc – по убыванию.
CACHE_TIME
(сек.) время кэширования (0 – не кэшировать).


RSS новости (импорт)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "RSS новости (импорт)"

Данный компонент предназначен для импорта новостей с другого сайта.

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/rss/rss_show.php", Array(
"SITE"		=> "www.1c-bitrix.ru",
"PORT"		=> "80",
"PATH"		=> "/bitrix/rss.php",
"QUERY_STR"	=> "ID=news_sm&LANG=ru&TYPE=news&LIMIT=5",
"OUT_CHANNEL"	=> "N",
"NUM_NEWS"	=> "10",
"CACHE_TIME"	=> "600",
));
?>

Описание параметров

SITE
Адрес сайта для импорта.
PORT
Порт (обычно 80).
PATH
Путь к rss файлу.
QUERY_STR
Строка запроса (если нужна).
OUT_CHANNEL
[Y|N] Находятся ли новости вне канала (обычно нет).
NUM_NEWS
Количество новостей для показа (0 - не ограничивать).
CACHE_TIME
(сек.) время кэширования (0 – не кэшировать).


RSS новости (экспорт)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "RSS новости (экспорт)"

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

Пример вызова

<?
$APPLICATION->IncludeFile("iblock/rss/rss_out.php", Array(
"ID"         => "1",
"NUM_NEWS"   => "20",
"NUM_DAYS"   => "30",
"YANDEX"     => "N",
"CACHE_TIME" => "600"
));
?>

Описание параметров

ID
ID информационного блока, новости которого экспортируются.
NUM_NEWS
Количество новостей для экспорта.
NUM_DAYS
Количество дней для экспорта.
YANDEX
Экспортировать в диалект Яндекса.
CACHE_TIME
(сек.) время кэширования (0 – не кэшировать).


Документооборот

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

Модуль реализует следующую идеологию.

  1. Документы каждого раздела сайта могут быть модифицированы в режиме документооборота. Для этого пользователь должен иметь, как минимум, право Документооборот на данный раздел.
  2. Понятие документ подразумевает копию статической страницы сайта в модуле документооборота. У одной статической страницы не может быть более одного документа. В свою очередь, редактирование статической страницы представляет собой процесс модификации документа (копии данной страницы) в модуле документооборота. В процессе модификации возможна смена статуса документа. Конечным статусом является статус #1, при достижении которого содержимое документа переносится в статическую страницу (в файл). При этом порядок смены статусов может быть произвольным. В случае создания новой страницы в первую очередь создаётся документ, затем после его публикации создаётся непосредственно сама страница.
  3. Для использования в документе ссылок на какие-либо файлы (jpeg, gif, pdf и т.д.) пользователю необходимо загрузить их в документ. После публикации документа все загруженные в него файлы переносятся в указанные каталоги.
  4. В процессе модификации документа каждое его изменение записывается в историю документа. При необходимости откатить изменения, сделанные в документе, пользователь должен скопировать необходимую ему часть документа из его истории.


Документы

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список документов
    •

    Форма Список документов (Контент -> Документооборот -> Документы) отображает документы, включенные в документооборот. Под документом понимается копия страницы сайта, находящейся в стадии редактирования в режиме документооборота. После достижения документом статуса #1 (момент публикации) все изменения переносятся из документа в файл (в редактируемую страницу).

    Форма поиска

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

    Поле | Описание
    ID документа | Идентификатор документа.
    Индикатор доступа к документу Индикатор, показывающий, в каком состоянии редактирования находится документ.
    • зеленый– документ свободен для редактирования;
    • желтый – документ временно заблокирован вами. Помните, кроме вас его никто не сможет редактировать. Максимальное время блокировки устанавливается в настройках модуля;
    • красный– документ редактируется в данный момент другим пользователем.
    Дата изменения | Дата последнего изменения документа.
    Кем изменен | Пользователь, выполнивший последнее изменение документа.
    Сайт | Сайт, в котором отображается редактируемый через модуль документ.
    Имя файла | Поиск по имени файла документа.
    Заголовок | Поиск по заголовку документа.
    Содержимое | Произвольный текст, который может содержаться в документе.
    Статус | Статус документа.
    Логика между полями | Установление логики между полями формы поиска.

    Для того чтобы отобрать документы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех документов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить | Переход к созданию документа в режиме документооборота.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

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

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора документов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над документом:
    • Изменить - редактирование документа в режиме документооборота;
    • Просмотр - просмотр документа;
    • История - просмотр истории изменения документа;
    • Удалить - удаление записи о документе из модуля документооборот.
    Инд. Индикатор, показывающий, в каком состоянии редактирования находится документ.
  • – документ свободен для редактирования;
  • – документ временно заблокирован вами. Помните, кроме вас его никто не сможет редактировать. Максимальное время блокировки устанавливается в настройках модуля;
  • – документ редактируется в данный момент другим пользователем.
    • Дата изменения | Дата последнего изменения документа.
    Кем изменен | Пользователь, выполнивший последнее изменение документа.
    Заголовок | Заголовок документа.
    Имя файла | Имя файла документа.
    Статус | Текущий статус документа (например, Черновик).
    Сайт | Сайт, на котором отображается документ.


Создание и редактирование документа

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Редактирования документа
  • Загруженные файлы
  • Комментарий
    •
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список документов | Переход на страницу со списком документов.
Создать новый документ | Переход к созданию нового документа в режиме документооборота.
Удалить текущий документ | Удаление редактируемого документа.

    Форма редактирования

    Закладка "Редактирование документа"

    Данная форма предназначена для редактирования самого документа.

    Поле | Описание
Шаблон страницы | Шаблон, на основе которого будет создана страница. Отображается при создании нового документа.
*Сайт | Сайт, для которого создаётся документ. Отображается при создании нового документа.
Статус | Статус документа.
Создан | Дата создания документа.
Изменен | Дата последнего изменения документа.
Блокирован | Имя пользователя, заблокировавшего документ, а также дата и время блокировки.
*Полное имя файла | Полное имя файла (с указанием пути). При указании полного пути к файлу на сервере вам необходимо учесть, что вы должны иметь как минимум право Документооборот на указанную вами директорию.
Заголовок | Заголовок документа.
Text/HTML | Режим создания и редактирования документа. Если при редактировании документа в режиме HTML установить флаг в поле Использовать визуальный редактор, то редактирование документа будет выполняться в режиме визуального HTML редактора.
    Закладка "Загруженные файлы"

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

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

    Поле | Описание
Информация об уже загруженных файлах.
ID | Уникальный идентификатор загруженного файла.
Имя | Имя файла.
Размер | Размер файла
Загружен | Дата и время загрузки файла в документ.
Кем | Пользователь, выполнивший загрузку файла.
Уд. | Для того чтобы удалить файл, установите флаг в это поле и нажмите кнопку "Применить".
Поля для загрузки файлов в документ.
Имя файла на сервере | Имя, которое будет присвоено файлу после загрузки.
Имя локального файла | Имя загружаемого файла. Для выбора файла используйте кнопку "Обзор".
    Закладка "Комментарий"

    Данная форма служит для создания произвольного комментария к документу (например, по поводу перевода документа в другой статус). Комментарий не влияет на внешний вид документа.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение документа.
Применить | Сохранение внесённых изменений. продолжение редактирования документа.
Отменить | Отмена внесённых изменений. Возврат первоначального состояния документа.


История

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

История изменений

В этом разделе

  • Форма поиска
  • Список записей
    •

    На странице История изменений (Контент -> Документооборот -> История) представлена история изменений документов. Каждое сохранение документа оставляет запись в истории. Максимальное количество последних записей в истории документа вы можете указать в настройках модуля. Также в настройках модуля вы можете указать максимальное время хранения истории.

    Форма поиска

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

    Поле | Описание
ID | Идентификатор записи в истории изменений (возможно перечисление через запятую).
ID документа | Идентификатор документа (возможно перечисление через запятую).
Дата изменения | Дата изменения документа (дата создания записи истории редактирования).
Кем изменен | Пользователь, выполнявший изменение документа (создавший запись истории редактирования).
Имя файла | Имя файла документа.
Заголовок | Заголовок документа.
Содержимое | Предполагаемое содержание (текст) документа.
Статус документа | Статус документа.
Логика между полями | Установление логики между полями формы поиска.

    Для того чтобы отобрать записи по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех записей нажмите кнопку "Отменить".

    Список записей

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора записей, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над записью в истории изменений:
    • Просмотр - просмотр записи;
    • Удалить - удаление записи.
    Дата изменения | Дата изменения документа (т.е. дата создания записи в истории изменений).
    Кем изменен | Пользователь, выполнивший изменение документа.
    Имя файла | Имя файла документа.
    Заголовок | Заголовок документа.
    Статус | Статус документа в момент создания записи в истории изменений.


Статусы, документооборот

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Статусы документов

В этом разделе

  • Форма поиска
  • Список статусов
  • Пример использования статусов
    •

    На странице Статусы документов (Контент -> Документооборот -> Статусы) представлены возможные статусы документов, а также элементов информационных блоков. Статусы используются для разделения работы над документами на определённые этапы, за каждый из которых отвечает один, либо группа пользователей. Статус #1 является конечным в цепочке документооборота, он зарезервирован и не подлежит удалению. При достижении документом данного статуса все изменения, выполненные в документе, вступают в силу (т.е. документ публикуется).

    Форма поиска

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

    Поле | Описание
ID | Идентификатор статуса (возможно перечисление через запятую).
Активен | Признак активности статуса.
Заголовок | Заголовок статуса.
Описание | Предполагаемый текст описания статуса.
Документов | Количество документов, находящихся в указанных статусах. Количество документов может быть указано как в виде диапазона, так и одним числом.
Логика между полями | Установление логики между полями формы поиска.

    Для того чтобы отобрать статусы документов по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех статусов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить | Переход к форме создания нового статуса.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список статусов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора статусов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над статусом:
    • Изменить- редактирование параметров статуса;
    • Удалить -удаление статуса. Удаление конечного статуса (с ID равным 1) невозможно.
    ID | Идентификатор статуса.
    Дата изм. | Дата последнего изменения статуса.
    Акт. | Признак активности статуса. Неактивный статус не может быть применен к документу.
    Сорт. | Относительный "вес", влияющий на положение статуса в общем списке.
    Заголовок | Заголовок статуса.
    Документов | Количество документов, находящихся в данном статусе. Ссылка с количеством документов позволяет перейти к списку документов, находящихся в данном статусе.

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

    У вас есть группа авторов, которые пишут статьи на сайте. Также у вас есть главный редактор, проверяющий эти статьи и публикующий их на сайте. Для организации документооборота по данной схеме вам необходимо завести 2 дополнительных статуса:

    • Draft (черновик);
    • Ready (готов к публикации).

    Авторам необходимо дать возможность редактировать документы в статусе Draft и переводить их в статус Ready. Главному редактору необходимо дать возможность редактировать документы в статусе Ready, а также переводить их в статусы Draft (отправить на доработку) и в статус #1, Published (т.е. публиковать их).

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

    Для того чтобы адрес получателя почтового сообщения подставлялся в письмо автоматически, в поле TO (Кому) почтового шаблона следует использовать следующие переменные:

    1. Письмо отсылается на адрес создателя документа (#CREATED_BY_EMAIL#).
    2. Письмо отсылается на все адреса администраторов документооборота (#ADMIN_EMAIL#).
    3. Письмо отсылается всем, кто принимал участие в редактировании документа в его текущем статусе (#BCC#).

    Если в настройках текущего статуса документа указано Оповестить всех, кто имеет право редактировать (либо просматривать) документ при достижении им данного статуса, то письмо также будет отослано всем пользователям, входящим в группы, для которых установлено право редактировать документ в данном статусе (#BCC#).


Параметры статуса

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

    Данная форма предназначена для создания новых и управления параметрами уже существующих статусов документов.

    Контекстная панель

    Кнопка | Описание
Список статусов | Переход на страницу со списком статусов документов.
Создать новый статус | Переход к форме создания нового статуса. Кнопка отображается при редактировании уже существующего статуса документов.
Удалить текущий статус | Удаление статуса; для последнего статуса (ID=1) кнопка не отображается.

    Форма редактирования

    Поле | Описание
Дата изменения | Дата последнего изменения параметров статуса.
Документов в данном статусе | Количество документов, имеющих данный статус.
Активен | Признак активности статуса. Неактивный статус не может быть применен к документу.
Порядок сортировки | Относительный "вес", влияющий на положение статуса в общем списке.
Заголовок* | Заголовок статуса.
Описание | Описание статуса.
Имеют право переводить документ в данный статус | Список групп пользователей, имеющих право переводить документ в данный статус.
Имеют право редактировать и сохранять документ в данном статусе | Список групп пользователей, имеющих право редактировать и сохранять документ в данном статусе.
Оповестить всех, кто имеет право редактировать (либо просматривать) документ при достижении им данного статуса | Если установить данный флаг, то при переводе документа в данный статус всем пользователям, обладающим правом на редактирование документа в этом статусе, будет направлено почтовое сообщение.

    * Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров статуса. Переход на страницу со списком статусов документов.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров статуса.
Отменить | Отмена выполненных изменений. Возврат первоначальных значений параметров.


Настройки

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Настройки модуля

В этом разделе

  • Настройки
  • Доступ
    •

    Форма Настройки предназначена для управления общесистемными параметрами модуля Документооборот. Для удобства работы форма разделена на несколько закладок, каждая из которых содержит определённый набор параметров модуля.

    Закладка "Настройки"

    Данная форма служит для управления общими параметрами модуля Документооборот.

    Поле | Описание
Использовать HTML редактор (только для IE 5.0 или FireFox 1.0 и выше) | Выбор данной опции позволяет использовать встроенный HTML-редактор при редактировании документов в режиме документооборота.
Сохранять историю изменений файлов при обычном редактировании | Выбор данной опции позволяет сохранять историю изменения документов, редактирование которых выполняется в обычном режиме (без использования документооборота).
Максимальное время блокировки (мин.) | Максимальное время блокировки документа пользователем. заблокированный документ недоступен для редактирования другими пользователями.
Сколько дней хранить документ после его публикации | Период времени (в днях), в течении которого копия документа будет храниться в истории модуля документооборота после того, как документ был переведен в статус "Опубликован". Если значение поля - отрицательное число, то время хранения копии документа не ограничено.
Максимальное количество последних записей в истории | Максимальное количество записей об изменении документа или элемента информационного блока, хранимое в истории модуля документооборота.
Сколько дней хранить историю | Максимальное количество дней, отводимых для хранения истории изменений документа и элемента информационного блока. Отрицательное значение поля позволяет хранить данные об изменении документов в течение неограниченного периода времени.
Группа администраторов документооборота | Группа пользователей-администраторов документооборота, обладающих правом на редактирование, перемещение, удаление документов в любом из статусов, а также на разблокирование любых документов.

    Закладка "Доступ"

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

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

    Поле | Описание
    По умолчанию | Уровень доступа групп пользователей, для которых установлено право "по умолчанию".
    Группа пользователей Уровень прав группы пользователей на доступ к ресурсам модуля:
    • Закрыт - доступ запрещён;
    • Просмотр без права модификации - просмотр файлов модуля без права изменения;
    • Участие в документообороте - право на редактирование файлов в режиме документооборота;
    • Полный доступ - право на изменение документов в любом из статусов, а также на управление параметрами модуля (в т.ч. правами доступа других пользователей).

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров модуля.
Сбросить | Сбросить внесённые изменения, которые ещё не сохранены.
По умолчанию | Установить значения по умолчанию.


Организация поэтапного редактирования новостного блока

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

  1. Создать группу пользователей Авторы: Настройки -> Пользователи -> Группы пользователей.
  2. Добавить в эту группу всех пользователей, которым будет разрешено создавать и редактировать новости.
  3. В разделе Контент -> Документооборот -> Статусы распределите права на управление сообщениями новостного блока так, чтобы сотрудники группы Авторы могли редактировать документ (переводить документ в статус Draft), но не могли публиковать его (переводить в статус Published).
  4. Предоставьте группе Авторы право Документооборот на раздел сайта, в котором выполняется публикация новостного блока.

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

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


Создание новой страницы через документооборот

  1. Нажмите кнопку [image] (Создание новой страницы через документооборот), расположенную на панели управления в публичной части.
  2. Выберите шаблон страницы (например, Стандартная страница или Включаемая область).
  3. Укажите статус, который будет присвоен документу после сохранения. Например, Draft (Черновик).
  4. В поле Полное имя файла укажите полное имя файла. Например, /ru/about/contacts.php.
  5. Введите заголовок страницы. Например, Контактная информация:

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

  6. Разместите на странице необходимую информацию. Для выбора режима редактирования нужно отметить флагом соответствующее поле.
  7. Перейдите на вкладку Загруженные файлы и загрузите файлы (изображения и т.п.), используемые на новой странице.
    Для использования в документе ссылок на какие-либо файлы (jpg, gif, pdf и т.д.) пользователю необходимо загрузить их в документ. Т.е. если вы используете в тексте какие-либо изображения, то необходимо указать их название и ссылку на них в поле Загруженные файлы. После публикации документа все загруженные в него файлы переносятся в указанные каталоги.

  8. На вкладке Комментарий разместите дополнительную информацию для других пользователей.
  9. Нажмите кнопку "Сохранить".


Опросы

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

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

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


Список опросов

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

Фильтр

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

Параметр | Описание
Заголовок* | Заголовок опроса.
ID* | ID группы опросов в базе.
Индикатор | Красный – означает, что флаг активности опроса не установлен, либо текущая дата не попадает в интервал проведения опроса. Зеленый – означает, что флаг активности установлен и текущая дата попадает в интервал проведения опроса.
Дата начала | Интервал для поля Начало (дата начала проведения опроса).
Дата окончания | Интервал для поля Окончание (дата окончания опроса).
Группа опросов* | Группа, к которой принадлежит опрос.
Флаг активности установлен | Значение флага активности.
Число голосований | Интервал для количества голосований по тому или иному опросу.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для инициализации фильтра необходимо нажать кнопку Найти. Для отображения всех опросов нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Создать | Служит для создания и установки параметров нового опроса.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица параметров опроса

Колонка | Описание
Колонка флажков | Это поле позволяет выбрать все или только определённые опросы для применения к ним действий при помощи вспомогательной формы Действия внизу таблицы.
Меню
действий 		При нажатии на кнопку действий конкретного опроса, отображает меню, позволяющее:
  • Изменить - отредактировать запись;
  • Обнулить - удалить все результаты опроса;
  • Форма - посмотреть форму опроса;
  • Результаты - посмотреть результаты опроса;
  • Удалить - удалить запись.
ID | ID опроса в базе.
Инд. Индикатор опроса:
  • Красный - означает, что флаг активности опроса не установлен, либо текущая дата не попадает в интервал проведения опроса;
  • Зеленый - означает, что флаг активности установлен и текущая дата попадает в интервал проведения опроса.
Начало | Дата начала проведения опроса.
Окончание | Дата окончания проведения опроса.
Группа | ID группы, к которой принадлежит опрос.
Акт. | Флаг активности опроса.
Сорт. | Порядок сортировки.
Заголовок | Заголовок опроса.
Вопросы | Количество вопросов; ссылка на добавление вопроса.
Голосов. | Количество голосований по данному опросу, ссылка ведет на страницу голосований с предустановленным фильтром.
Выбрано | Количество выбранных из базы записей.
Отмечено | Количество записей, отмеченных флажками.

Действия над опросами

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

Предусмотрены следующие действия.

Активировать
Переводит выбранные опросы в активный статус.
Деактивировать
Переводит выбранные опросы в неактивный статус.


Создание и редактирование опроса

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

Контекстная панель

Кнопка | Описание
Список | Переход к списку всех опросов.
Создать | Создает новый опрос.
Удалить | Удаляет текущий опрос.
Сбросить | Удаляет все результаты текущего опроса.
Вопросы | Открывает список вопросов текущего опроса.
Создать вопрос | Открывает форму создания нового вопроса для текущего опроса.

Вкладка "Свойства"

Поле | Описание
Дата изменения | Дата изменения записи в базе данных. Отображается только при редактировании опроса.
Количество голосований | Количество голосований по данному опросу. Отображается только при редактировании опроса.
Активен | Флаг активности опроса.
Отсылать email на каждое голосование | При установке данного флага на каждое голосование по данному опросу будет отослано сообщение по email в соответствии с заранее заданным шаблоном.
Порядок сортировки | Порядок сортировки опроса при выводе его в списке.
Группа | Группа к которой принадлежит опрос.
Заголовок | Название опроса.
Дата начала* | Дата начала проведения опроса.
Кол-во дней | Для нового опроса вы можете ввести количество дней в течении которых опрос будет активен и доступен для голосования.
Дата окончания | Дата окончания проведения опроса.
* - Поля, обязательные для заполнения.

Вкладка "Описание"

Поле Описание
Изображение Вы можете загрузить со своего локального компьютера какое либо изображение в форматах:
bmp, jpg, jpeg, jpe, gif, png.
Описание Описание опроса в виде:
  • обычного текста (Text);
  • HTML с помощью встроенного в систему HTML- редактора. Доступно на системах с Internet Explorer 5.0 и выше. Также необходимо установить флаг Использовать HTML-редактор в настройках модуля опросов.

Вкладка "Ограничения"

Поле | Описание
Не голосовать дважды Этот параметр позволяет отсечь от голосования тех пользователей, которые уже, вероятно, приняли участие в опросе.
  • <нет ограничений> - уникальность посетителей никак не отслеживается, каждый посетитель может голосовать по данному опросу неограниченное количество раз.
  • в одной сессии - посетитель не может дважды проголосовать по данному опросу в одной сессии (т.е. пока не перезапустит браузер либо пока не истечет сессия).
  • в одной сессии либо с одним cookie – каждому посетителю в момент голосования единожды выдается свой уникальный номер, который записывается в cookie посетителя; данная опция не позволяет посетителю голосовать дважды по данному опросу в одной сессии, либо с одним уникальным номером из cookie.
  • в одной сессии, либо с одним cookie, либо с одного IP – данная опция не позволит проголосовать посетителю дважды по данному опросу в одной сессии, либо с одним уникальным номером, либо с одного IP адреса (необходимо учесть что если посетитель подключается к Internet через модем (dial-up) то в большинстве случаев при каждом новом подключении ему выдается новый IP адрес).
Не голосовать дважды с одного IP в течение | Если в предыдущем вы выбрали не голосовать дважды в одной сессии, либо с одним cookie, либо с одного IP”, следует учесть, что пользователи, находящиеся в локальной сети (LAN) какой-либо организации имеют как правило один внешний IP адрес, другими словами если какой – либо пользователь данной LAN уже проголосовал, то больше никто уже не сможет участвовать в данном опросе. Для разрешения такой ситуации вам необходимо задать интервал времени, в течение которого модуль опросов не даст голосовать дважды с одного IP адреса.

Вкладка "Статистика"

Поле | Описание
Добавлять событие при голосовании | Если флажок установлен, в момент голосования будет зарегистрировано событие в модуле статистики.
Event1 | Идентификатор типа события - event1
Event2 | Идентификатор типа события - event2
Event3 | Дополнительный параметр события - event3


Группы опросов

На данной странице представлены группы опросов. Группа опросов характеризуется тем, что в ее пределах может быть только один активный опрос (регулируется интервалом проведения опросов).

Фильтр

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

Наименование параметра | Описание
Заголовок* | Заголовок.
ID | ID группы опросов.
Сайты | Сайты групп опросов.
Активна | Флаг активности группы.
Символьный идентификатор* | Символьный идентификатор.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для инициализации фильтра необходимо нажать кнопку Найти. Для снятия фильтра - кнопку Отменить.

Контекстная панель

Кнопка | Описание
Создать | Создает новую группу опросов.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица групп опросов

Колонка | Описание
Колонка флажков | Это поле позволяет выбрать все или только определённые опросы для применения к ним действий при помощи вспомогательной формы Действия внизу таблицы.
Меню
действий
При нажатии на кнопку действий конкретного опроса, отображает меню, позволяющее:
  • Изменить - отредактировать группу;
  • Удалить - удалить группу.
ID | ID группы опросов в базе.
Дата изм. | Дата изменения записи в базе.
Сайты | Сайты группы опросов.
Акт. | Флаг активности.
Сорт. | Порядок сортировки (может быть использован в публичной части при выводе списка групп опросов).
Символьный
идентификатор 		Символическое имя (используется в публичной части при выводе текущего опроса группы).
Заголовок | Заголовок группы опросов.
Опросов | Количество опросов в данной группе.
Выбрано | Количество выбранных из базы групп опросов (с учётом фильтра).
Отмечено | Количество отмеченных флажками групп опросов.

Действия над группами опросов

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

Предусмотрены следующие действия.

Активировать
Переводит выбранные группы опросов в активный статус.
Деактивировать
Переводит выбранные группы опросов в неактивный статус.


Создание и редактирование группы опросов

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

Контекстная панель

Кнопка | Описание
Список | Открывает список групп опроса.
Создать | Создает новую группу.
Удалить | Удаляет текущую группу.
Опросы | Список вопросов текущей группы.
Создать опрос | Добавляет опрос в текущую группу.

Вкладка "Свойства"

Поле | Описание
Дата изменения | Дата изменения записи в базе данных.
Активна | Флаг активности группы опросов.
Порядок сортировки | Порядок сортировки группы опросов при выводе ее в списке.
Сайт | Сайты, в которых данная группа опросов будет активна.
Символьный идентификатор* | Имя, идентифицирующее данную группу опросов в пределах всех групп опросов данного сайта; может содержать только латинские буквы.
Заголовок* | Заголовок группы опросов.

* - Поля, обязательные для заполнения.

Вкладка "Доступ"

Поле Описание
Доступы групп пользователей Предназначено для назначения различных прав доступа к опросам данной группы для разных групп пользователей:
  • принять участие - позволено голосовать в опросах;
  • закрыт - недоступны никакие действия, даже голосование;
  • смотреть результаты - позволено голосовать и просматривать результаты.

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


Список вопросов, голосования

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Список вопросов

Эта форма используется для просмотра списка вопросов и осуществления различных операций над ними.

Фильтр

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

Наименование параметра | Описание
Вопрос* | Текста вопроса.
ID* | ID вопроса.
Активен | Значение флага активности.
Включен в диаграмму | Флаг включения вопроса в результирующую диаграмму.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для инициализации фильтра необходимо нажать кнопку Найти. Для отображения всех опросов нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Создать | Создает новый вопрос.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица параметров вопроса

Колонка флажков | Меню действий | ID | Изменено | Акт. | Диагр. | Сорт. | Вопрос
[1] | [2] | [3] | [4] | [5] | [6] | [7] | [8]
Выбрано: [9] | Отмечено: [10] |
  1. Это поле позволяет выбрать все или только определённые вопросы для применения к ним действий при помощи вспомогательной формы Действия внизу таблицы.
  2. При нажатии на кнопку действий конкретного вопроса, отображает меню, позволяющее:
    • Изменить - отредактировать вопрос;
    • Удалить - удалить вопрос.
  3. ID вопроса в базе.
  4. Дата изменения записи в базе данных.
  5. Флаг активности вопроса.
  6. Флаг, определяющий, включен ли вопрос в результирующую диаграмму.
  7. Индекс сортировки (положение в списке) вопроса.
  8. Текст вопроса.
  9. Количество выбранных из базы вопросов (с учётом фильтра).
  10. Количество отмеченных флажками вопросов.

Действия над вопросами

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

Предусмотрены следующие действия.

Активировать
Переводит выбранные вопросы в активный статус.
Деактивировать
Переводит выбранные вопросы в неактивный статус.


Создание и редактирование вопроса

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

Контекстная панель

Кнопка | Описание
Список | Открывает список вопросов опроса.
Создать | Создает новый вопрос.
Удалить | Удаляет текущий вопрос.

Вкладка "Свойства"

Поле | Описание
Группа | Группа опросов.
Опрос | Название опроса.
Дата изменения | Дата изменения записи в базе данных.
Сколько раз ответили на данный вопрос | Количество ответов на данный вопрос. Отображается только при редактировании вопроса.
Активен | Флаг активности вопроса.
Порядок сортировки | Порядок сортировки вопроса.
Включить в диаграмму результатов | Флаг включения вопроса в результирующую диаграмму.
Вид диаграммы | Вид диаграммы ответов на вопрос.
Шаблон по умолчанию для показа результатов | Из выпадающего списка выбирается шаблон, на основе которого будет показана результирующая диаграмма.
Изображение | Изображение по тематике вопроса для загрузки с локального компьютера в форматах jpg, bmp, ,jpeg, jpe, gif, png.

Вкладка "Вопрос"

Поле | Описание
Текст вопроса* | Текст вопроса.

* - Поле, обязательное для заполнения.

Вкладка "Ответы"

ID | Сообщение | Тип поля | Ширина | Высота | Параметры | Сорт. | Цвет | Акт. | Уд. |
[1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] | [10] | [11]
  1. ID варианта ответа в базе.
  2. Текстовое сообщение которое будет выведено рядом с ответом.
  3. Тип поля ввода.
    • radio – радио-кнопка, можно выбрать только один вариант ответа из группы ответов с таким типом поля.
    • checkbox – флаг, можно выбрать несколько вариантов ответов.
    • dropdown – элемент с выпадающим списком, можно выбрать только один вариант ответа; все элементы имеющие данные тип поля будут собраны в один выпадающий список.
    • multiselect – список, с возможностью множественного выбора; все элементы имеющие данный тип поля будут собраны в один список.
    • text – однострочное поле ввода, посетитель может заполнить его своим ответом.
    • textarea – многострочное поле ввода, посетитель может заполнить его своим ответом.
  4. Для различных типов полей имеет различное назначение.
    • radio – не доступно для модификации.
    • checkbox – не доступно для модификации.
    • dropdown – не доступно для модификации.
    • multiselect – не доступно для модификации.
    • text – параметр size тега <input type=”text”>
    • textarea – параметр cols тега <textarea>
  5. Для различных типов полей имеет различное назначение.
    • radio – не доступно для модификации.
    • checkbox – не доступно для модификации.
    • dropdown – не доступно для модификации.
    • multiselect – параметр size тега <select multiple>
    • text – не доступно для модификации.
    • textarea – параметр rows тега <textarea>
  6. Дополнительные параметры элемента ввода: стиль, класс. Например, style="width:100%".
  7. Порядок сортировки при выводе в форме опроса и в результирующей диаграмме.
  8. Цвет элемента диаграммы (для выбора нажмите на квадрат справа от поля).
  9. Флаг активности.
  10. Флаг при установке которого вариант ответа будет удален.
  11. Популярность данного варианта ответа в ходе голосований по данному опросу (используется при построении диаграммы).

Примечание: если вы не хотите заполнять поле "Сообщение", то поставьте пробел.


Посетители, голосования

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Посетители

На данной странице представлена информация по посетителям сайта, участвовавшим в опросах. В данной таблице существуют 3 идентификатора:

  1. ID посетителя, выданный ему модулем опросов в момент голосования;
  2. ID пользователя, под которым данный посетитель был авторизован в момент голосования;
  3. ID посетителя, выдаваемый модулем статистики, благодаря которому вы можете проследить поведение данного посетителя в модуле статистики.

Фильтр

Фильтр используется для задания параметров отбора посетителей, которые отображаются в списке. Нижеследующая таблица описывает поля фильтра.

Наименование параметра | Описание
ID, имя, фамилия пользователя* | Маска для имени и фамилии авторизованного пользователя, либо ID пользователя.
ID* | ID посетителя для модуля опросов.
Дата первого опроса | Интервал для даты когда посетитель впервые принял участие в опросах.
Дата последнего опроса | Интервал для даты когда посетитель впервые принял участие в опросах.
ID посетителя в модуле статистики* | ID посетителя выданный модулем статистики.
IP адрес* | Маска для последнего IP адреса с которым голосовал посетитель.
Число голосований | Интервал для количество голосований данного посетителя.
Опрос* | Опрос, в котором участвовали посетители.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для инициализации фильтра необходимо нажать кнопку Найти. Для отображения всех опросов нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

Колонка флажков | Меню действий | ID | Первый | Последний | Посетитель | IP | Голосо- ваний
[1] | [2] | [3] | [4] | [5] | [6] | [7] | [8]
Выбрано: [9] | Отмечено: [10] |
  1. Это поле позволяет выбрать все или только определённых посетителей для применения к ним действий при помощи вспомогательной формы внизу таблицы.
  2. При нажатии на кнопку действий конкретного вопроса, отображает меню, позволяющее удалить посетителя.
  3. ID посетителя, выданный модулем опросов.
  4. Дата первого голосования посетителя.
  5. Дата последнего голосования посетителя.
  6. ID, под которым был авторизован посетитель в момент голосования; имя и фамилия пользователя; ID посетителя, выданный модулем статистики.
  7. IP адрес, с которого посетитель голосовал последний раз. Ссылка ведет на сервер RIPN для получения дополнительной информации по IP адресу.
  8. Количество голосований посетителя. Ссылка ведет на страницу голосований с предустановленным фильтром.
  9. Количество выбранных из базы записей.
  10. Количество записей, отмеченных флажками.


Голосования

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

Фильтр

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

Наименование параметра | Описание
ID* | ID голосования.
ID посетителя* | ID посетителя выданный модулем опросов.
ID сессии* | ID сессии выданный модулем статистики.
IP адрес* | Маска для IP адреса с которым голосовал посетитель.
Дата | Диапазон дат, за которые требуется отобрать голосования.
Опрос* | ID либо наименование опроса.
Валидно | Значение флага валидности голосования.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для инициализации фильтра необходимо нажать кнопку Найти. Для отображения всех опросов нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

Колонка флажков | Меню действий | ID | Посет. | Сессия | IP | Дата | Опрос | Вал.
[1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9]
Выбрано: [10] | Отмечено: [11] |
  1. Это поле позволяет выбрать все или только определённых посетителей для применения к ним действий при помощи вспомогательной формы внизу таблицы.
  2. При нажатии на кнопку действий конкретного вопроса, отображает меню, позволяющее просмотреть либо удалить голосование посетителя.
  3. ID голосования в базе.
  4. ID посетителя, выданный модулем опросов.
  5. ID сессии, выданный модулем статистики.
  6. IP адрес, с которого голосовал посетитель.
  7. Дата голосования.
  8. ID и название опроса.
  9. Флаг валидности опроса.
  10. Число выбранных из базы записей.
  11. Количество записей, отмеченных флажками.

Просмотр результата голосования

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


Настройки

Форма Настройки модуля опросов предназначена для установки глобальных настроек модуля.

Вкладка "Настройки"

Наименование параметра | Описание
Использовать HTML редактор (только для IE 5.0 или FireFox 1.0 и выше): | Флаг использования HTML редактора при редактировании описания для опроса.
Поддерживать старые шаблоны (default.php, bluebar.php) в форме редактирования вопросов: | Флаг использования шаблонов старой версии при редактировании вопросов.

Вкладка "Доступ"

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

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

Все вышеперечисленные права являются наследуемыми.


Создание нового опроса

Создание опроса выполняется в несколько этапов.

  • Создание группы
  • Создание опроса
  • Настройка параметров опроса

Создание группы
  1. Зайдите в административный раздел Группы опросов (Сервисы -> Опросы -> Группы опросов) и нажмите кнопку Создать. Группа опросов характеризуется тем, что в ее пределах может быть только один активный опрос (регулируется интервалом проведения опросов).

  2. Отметьте флажком поле Активна, укажите порядок сортировки.
  3. Выберите язык интерфейса, в котором будут размещены опросы данной группы.
  4. Обязательно укажите символическое имя группы.
  5. Распределите права доступа к опросам данной группы.

Создание опроса
  1. В разделе Список опросов нажмите кнопку Добавить, выбрав группу, в которую будет добавлен опрос.
  2. Поле Активен отмечено по умолчанию. Если вы не хотите, чтобы опрос был размещён в публичной части сразу после создания, снимите этот флажок.
  3. Отметьте поле Отсылать email на каждое голосование, если вы хотите получать уведомление о каждом ответе на данный опрос.
  4. Введите заголовок опроса (заголовок будет показан в публичной части сайта).
  5. Укажите дату начала, дату окончания и продолжительность опроса. Дата начала опроса устанавливается автоматически (берется дата окончания последнего опроса данной группы + 1 секунда). Дата начала нового опроса не должна пересекаться с датой окончания другого опроса из данной группы.
  6. Укажите идентификаторы опроса. При каждом голосовании в системе статистики будут учитываться события (event1, 2, 3).

  7. Установите способ отслеживания уникальности посетителей.

    Возможны следующие варианты:
    • нет ограничений - уникальность посетителей не отслеживается; каждый посетитель может голосовать по данному опросу неограниченное количество раз;
    • в одной сессии - посетитель не может дважды проголосовать по данному опросу в одной сессии, т.е. пока не перезапустит браузер, либо пока не истечет сессия;
    • в одной сессии либо с одним cookie – каждому посетителю в момент голосования выдается свой уникальный номер (только один раз), который записывается в cookie посетителя; данная опция не позволяет посетителю голосовать дважды по данному опросу в одной сессии, либо с одним уникальным номером из cookie;
    • в одной сессии, либо с одним cookie, либо с одного IP – данная опция не позволит проголосовать посетителю дважды по данному опросу в одной сессии, либо с одним уникальным номером, либо с одного IP-адреса (необходимо учесть, что если посетитель подключается к Internet через модем (dial-up), то в большинстве случаев при каждом новом подключении ему выдается новый IP адрес).
    Если вы выбрали не голосовать дважды в одной сессии, либо с одним cookie, либо с одного IP, то вам необходимо учесть, что пользователи, находящиеся в локальной сети (LAN) какой-либо организации, имеют как правило один внешний IP-адрес. Другими словами, если какой-либо пользователь данной LAN уже проголосовал, то больше никто уже не сможет участвовать в данном опросе. Поэтому вам необходимо задать интервал времени, в течение которого модуль опросов не позволит голосовать дважды с одного IP-адреса.
  8. Загрузите изображение, которое будет размещено в публичной части сайта в списке опросов.
  9. Добавьте описание опроса. Вы можете использовать HTML-редактор, добавить HTML-код или обычный текст.

  10. Выберите шаблоны формы и результатов опроса. Используйте ссылку выбрать для просмотра шаблона оформления опроса.
  11. Нажмите кнопку Добавить, чтобы сохранить новый опрос и перейти к списку опросов. Используйте кнопку Применить для того, чтобы сохранить изменения и продолжить редактирование опроса.

Настройка параметров опроса
  1. Откройте список опросов. Напротив нужного опроса нажмите ссылку Вопросы или +, чтобы добавить новый вопрос.
  2. Укажите, активен ли опрос, установите порядок сортировки.
  3. Отметьте поле Включить в диаграмму результатов, чтобы ответов на данный вопрос были включены в результаты по всему опросу.
  4. Выберите шаблон показа результатов.
  5. Вы можете загрузить изображение, которое будет размещено в публичной части сайта рядом с данным вопросом.
  6. Добавьте текст вопроса и варианты ответов.

    Типы полей (для ввода ответов):
    • radio – радио-кнопка; можно выбрать только один вариант ответа из группы ответов с таким типом поля;
    • checkbox – флаг; можно выбрать несколько вариантов ответов;
    • dropdown – элемент с выпадающим списком; можно выбрать только один вариант ответа; все элементы, имеющие данные тип поля, будут собраны в один выпадающий список;
    • multiselect – список с возможностью множественного выбора; все элементы, имеющие данный тип поля, будут собраны в один список;
    • text – однострочное поле ввода, в которое посетитель может добавить ответ;
    • textarea – многострочное поле ввода, в которое посетитель может добавить ответ.
  7. Нажмите кнопку Добавить.

Вы можете просмотреть общие данные по ответам респондентов, нажав на ссылку Результаты в списке опросов.

Раздел Посетители содержит информацию о всех респондентах. В разделе Голосования можно просмотреть результаты голосования каждого респондента отдельно.


Текущий опрос (комплексный компонент)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Текущий опрос"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:voting.current","",Array(
     "CHANNEL_SID" => "BOOKS_VOTE",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
CHANNEL_SID
Символьный идентификатор группы опросов.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.


Результаты опроса

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Результаты опроса"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:voting.result","",Array(
     "VOTE_ID" => "2",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "1200",
     "QUESTION_DIAGRAM_5" => "histogram",
     "QUESTION_DIAGRAM_7" => "histogram"
     )
);?>

Описание параметров

Основные параметры
VOTE_ID
Идентификатор опроса. Задается явно или с помощью кода.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительно

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

QUESTION_DIAGRAM_5
Выбирается тип диаграммы для вопроса с идентификатором равным 5.
QUESTION_DIAGRAM_7
Выбирается тип диаграммы для вопроса с идентификатором равным 7.


Список опросов

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список опросов"

Данный компонент предназначен для вывода списка опросов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:voting.list","",Array(
     "CHANNEL_SID" => "BOOKS_VOTE",
     "VOTE_FORM_TEMPLATE" => "vote_new.php?VOTE_ID=#VOTE_ID#",
     "VOTE_RESULT_TEMPLATE" => "vote_result.php?VOTE_ID=#VOTE_ID#"
     )
);?>

Описание параметров

Основные параметры
CHANNEL_SID
Символьный идентификатор группы опросов.
Шаблоны ссылок
VOTE_FORM_TEMPLATE
Указывается путь к странице с формой опроса. В качестве параметра страницы необходимо передавать идентификатор опроса.
VOTE_RESULT_TEMPLATE
Указывается путь к странице с диаграммой результатов опроса. В качестве параметра страницы необходимо передавать идентификатор опроса.


Форма опроса

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма опроса"

Компонент служит для вывода формы опроса. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:voting.form","",Array(
     "VOTE_ID" => "3",
     "VOTE_RESULT_TEMPLATE" => "vote_result.php?VOTE_ID=#VOTE_ID#",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
VOTE_ID
Идентификатор опроса. Задается явно или с помощью кода.
Шаблоны ссылок
VOTE_RESULT_TEMPLATE
Указывается путь к странице с диаграммой результатов. В адресе также необходимо указать параметр, в котором будет передаваться идентификатор опроса.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.


Форма опроса

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Вывод формы опроса"

Данный компонент предназначен для вывода пустой формы опроса, предназначенной для заполнения. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?
$APPLICATION->IncludeFile("vote/vote_new/default.php",
array(
    "VOTE_ID" => $VOTE_ID,
    "BACK_REDIRECT_URL" => "vote_result.php"
));
?>

Описание параметров

VOTE_ID
ID опроса.
BACK_REDIRECT_URL
Адрес страницы на которую будет перенаправлен пользователь после голосования (если параметр оставить незаполненным, пользователь не будет перенаправляться после голосования).


Форма опроса (без описания опроса, с тонкой рамкой на форме)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма опроса (без описания опроса, с тонкой рамкой на форме)"

Данный компонент выводит форму опроса для заполнения (без описания опроса, но с тонкой рамкой на форме). Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?
$APPLICATION->IncludeFile("vote/vote_new/main_page.php",
array(
    "VOTE_ID" => $VOTE_ID,
    "BACK_REDIRECT_URL" => "vote_result.php"
));
?>

Описание параметров

VOTE_ID
ID опроса.
BACK_REDIRECT_URL
Адрес страницы, на которую будет перенаправлен пользователь после голосования (если параметр оставить незаполненным, пользователь не будет перенаправляться после голосования).


Форма либо результаты текущего опроса заданной группы

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма либо результаты текущего опроса заданной группы"

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

Пример вызова

<?
$APPLICATION->IncludeFile("vote/vote_new/current_channel.php",
array(
    "CHANNEL_SID" => “PHONE”
));
?>

Описание параметров

CHANNEL_SID
Символьный код группы опросов.


Результаты опроса

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Результаты опроса"

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

Пример вызова

<?
$APPLICATION->IncludeFile("vote/vote_result/default.php",
array(
    "VOTE_ID" => $_REQUEST["VOTE_ID"]
));
?>

Описание параметров

VOTE_ID
Идентификатор опроса.


Результаты опроса (без описания опроса, с тонкой рамкой на форме)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Результаты опроса (без описания опроса, с тонкой рамкой на форме)"

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

Пример вызова

<?
$APPLICATION->IncludeFile("vote/vote_result/main_page.php",
array(
    "VOTE_ID" => $_REQUEST["VOTE_ID"]
));
?>

Описание параметров

VOTE_ID
Идентификатор опроса.


Результаты опроса (с описанием опроса и с тонкой рамкой на форме)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Результаты опроса (с описанием опроса и с тонкой рамкой на форме)"

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

Пример вызова

<?
$APPLICATION->IncludeFile("vote/vote_result/border.php",
array(
    "VOTE_ID" => $_REQUEST["VOTE_ID"]
));
?>

Описание параметров

VOTE_ID
Идентификатор опроса.


Список опросов

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список опросов"

Данный компонент предназначен для вывода списка опросов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?
$APPLICATION->IncludeFile("vote/vote_list/default.php", array(
    "CHANNEL_SID" => "ANKETA",
    "VOTE_URL" => "vote_new.php",
    "RESULTS_URL" => "vote_result.php"
));
?>

Описание параметров

CHANNEL_SID
Символьный код группы опросов (если не задан, то будут выводиться опросы всех групп привязанных к текущему сайту).
VOTE_URL
Адрес страницы, на которой выводится форма для голосования (участия в опросе).
RESULTS_URL
Адрес страницы, на которой выводятся диаграммы результатов опроса.


Веб-формы

Модуль веб-форм позволяет создавать произвольное количество веб-форм, а также осуществлять гибкое управление параметрами созданных форм. Основное назначение веб-форм - это организация обратной связи с посетителями сайта. Например, веб-формы могут использоваться для:

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

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

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


Список форм

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список веб-форм
    •

    Страница Список форм (Сервисы -> Веб-формы -> Настройка форм) содержит список всех веб-форм и позволяет:

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

    Форма поиска

    С помощью данной формы вы можете выполнить поиск веб-форм, соответствующих указанным параметрам.

    Поле | Описание
Заголовок | Заголовок веб-формы.
ID | Уникальный идентификатор формы.
Сайты | Сайты, на которых используется форма.
Символьный идентификатор | Символьный код формы (поле отображается для полного режима редактирования форм).
Описание | Описание формы.

    Для того чтобы отобрать веб-формы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех веб-форм нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Создать | Переход на страницу создания новой веб-формы.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Переход к диалоговой форме настройки списка элементов.

    Список веб-форм

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора веб-форм, к которым предполагается применить какое-либо правило или действие.
    Действия Операции над веб-формой:
    • Изменить - редактирование веб-формы;
    • Копировать- копирование веб-формы;
    • Очистить - удаление всех результатов заполнения веб-формы;
    • Удалить - удаление веб-формы.
    ID | Уникальный идентификатор веб-формы.
    Сайты | Сайты, на которых используется веб-форма.
    Сорт. | Относительный "вес", определяющий положение веб-формы в общем списке.
    Символьный идентификатор Мнемонический идентификатор. Задается латинскими буквами, позволяет однозначно определить форму и вызвать ее из кода.

    Поле отображается в полном режиме редактирования веб-форм    .
    Заголовок | Заголовок веб-формы.
    Вопросы | Ссылка для перехода к списку вопросов веб-формы. Ссылка "+" позволяет перейти к форме добавления нового вопроса веб-формы.
    Поля Ссылка для перехода к списку полей веб-формы. Ссылка "+" позволяет перейти к форме добавления нового поля.

    Поле отображается в полном режиме редактирования веб-форм.
    Статусы Ссылка для перехода к списку статусов веб-формы. Ссылка "+" позволяет перейти к форме создания нового статуса.

    Поле отображается в полном режиме редактирования веб-форм.
    Результаты | Ссылка для перехода к списку результатов веб-формы. Ссылка "+" позволяет перейти к форме создания нового результата веб-формы.


Создание и редактирование веб-формы

В этом разделе

  • Контекстное меню
  • Форма редактирования
  • Свойства
  • Описание
  • Шаблон формы
  • Ограничения
  • Дополнительно
  • Статистика
  • Доступ
    •
  • Кнопки управления
    •

    Данная страница предназначена для создания новых и изменения параметров уже существующих веб-форм.

    В продукте предусмотрены два режима создания и редактирования веб-форм:

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

    Выбор режима создания и редактирования веб-форм выполняется на странице настроек модуля.

    Контекстное меню

    Кнопка | Описание
Список | Переход на страницу со списком веб-форм.
Создать | Переход на страницу создания новой веб-формы. Пункт отображается на странице редактирования уже существующей формы.
Копировать | Копирование редактируемой веб-формы в новую.
Очистить | Удаление всех результатов веб-формы. Пункт отображается на странице редактирования уже существующей формы.
Удалить веб-форму | Удаление редактируемой веб-формы.
Статусы | Переход на страницу со статусами веб-формы. Пункт отображается только в полном режиме редактирования веб-форм.
Вопросы | Переход на страницу со списком вопросов веб-формы. Пункт отображается на странице редактирования уже существующей формы.
Поля | Переход на страницу со списком полей веб-формы. Пункт отображается только в полном режиме редактирования веб-форм.
Результаты | Переход на страницу со списком результатов формы. Пункт отображается на странице редактирования уже существующей формы.

    Форма редактирования

    Закладка "Свойства"
    Поле | Описание
*Наименование | Название формы.
*Символьный идентификатор | Мнемонический идентификатор формы, позволяющий вызвать данную форму в коде, не использую ID формы. Задается латинскими буквами. Удобен, например, при переносе базы данных. Поле отображается только в расширенном режиме редактирования веб-форм.
Порядок сортировки | Относительный "вес", определяющий положение веб-формы в общем списке.
Пункты меню в административном разделе | Пункты меню в административном разделе сайта, ведущие на страницу с результатами формы. Названия пунктов меню указываются для всех языков интерфейса.
Сайт | Сайты, на которых используется веб-форма.
Отправлять результаты по email | Если вы хотите, чтобы каждый раз при заполнении веб-формы результаты заполнения отправлялись в виде письма на определённый адрес, установите флаг в это поле. После сохранения параметров веб-формы автоматически будет сгенерирован почтовый шаблон, на основе которого будут отправляться сообщения. Для перехода к просмотру доступных шаблонов воспользуйтесь ссылкой Список шаблонов. Поле отображается только в упрощённом режиме редактирования веб-форм.
Подпись на кнопке | Надпись на кнопке, сохраняющей результаты формы. Например, "Отправить" или "Сохранить".
Использовать CAPTCHA | Только при установленном параметре предусмотренная в форме CAPTCHA будет работать.

    * - Поля, обязательные для заполнения.

    Закладка "Описание"
    Поле | Описание
Изображение | Изображение, используемое для описания формы в публичном разделе сайта. Для выбора изображения служит кнопка "Обзор".
Описание | Текст описания веб-формы. Созданное описание будет выводиться при показе веб-формы в публичном разделе сайта.
    Закладка "Шаблон формы"

    При создании/редактировании веб-формы пользователю предоставлен инструмент визуального редактирования шаблона веб-формы.

    Редактор дает следующие возможности:

    • редактирование шаблона оформления веб-формы
    • создание/редактирование структуры вопросов и ответов веб-формы

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

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

    • раздел "Новые поля формы" предназначен для добавления в веб-форму новых элементов;
    • раздел "Существующие поля формы" содержит уже настроенные вопросы веб-формы;
    • раздел "Доп. элементы формы" содержит инструментарий для вставки в шаблон веб-формы дополнительных структурных элементов.

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

    Область редактирования

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

    Панель "Элементы формы"

    В панели Элементы формы выделены три группы:

    1. Новые поля формы;
    2. Существующие поля формы;
    3. Дополнительные элементы формы;
    Новые поля формы

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

    Поле | Описание
Строка | Вставка нового вопроса с ответом в виде поля типа "text" (поле для ввода однострочного текста длиной до 255 символов)
Текст | Вставка нового вопроса с ответом в виде поля типа "textarea" (поле для ввода многострочного неограниченного текста)
Группа переключателей | Вставка нового вопроса с ответами в виде полей типа "radio" (поле для выбора одного варианта из нескольких)
Флажок | Вставка нового вопроса с ответами в виде полей типа "checkbox" (поле для выбора нескольких вариантов из списка или поле-флаг)
Выпадающий спиок | Вставка нового вопроса с ответами в виде поля типа "dropdown" (выбор одного варианта из выпадающего списка)
Множественный список | Вставка нового вопроса с ответами в виде поля типа "multiselect" (поле для выбора одного или нескольких вариантов из списка)
Дата | Вставка нового вопроса с ответом в виде поля типа "date" (поле для ввода даты)
Изображение | Вставка нового вопроса с ответом в виде поля типа "image" (поле для прикрепления изображения к результату веб-формы)
Файл | Вставка нового вопроса с ответом в виде поля типа "file" (поле для прикрепления произвольного файла к результату веб-формы)
Адрес e-mail | Вставка нового вопроса с ответом в виде поля типа "email" (текстовое поле для ввода e-mail-адреса с дополнительной проверкой)
Адрес WWW | Вставка нового вопроса с ответом в виде поля типа "url" (текстовое поле для ввода интернет-адреса)
Пароль | Вставка нового вопроса с ответом в виде поля типа "password" (текстовое поле со скрытым вводом)
Скрытое | Не имеет визуального представления, используется разработчиками. При заполнении формы содержимое этого поля также будет передано.
    Существующие поля формы

    Панель появляется только при редактировании уже созданной веб-формы. В ней перечислены уже созданные и настроенные вопросы веб-формы. Они отображаются в виде: <Значок поля><Текст вопроса>. Например:

    Дополнительные элементы формы

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

    Иконка | Описание
Заголовок формы | Вывод содержимого поля "Наименование" закладки Свойства. Стиль выводимого текста можно задать в шаблоне средствами редактора.
Описание формы | Вывод содержимого поля "Описание формы" закладки Описание. Если описание создано с использованием визуального редактора HTML, то оно будет выведено без изменений. В противном случае, стиль форматирования текста можно задать в шаблоне средствами редактора.
Ошибки формы | Вывод отформатированных ошибок валидатора веб-формы или пустой строки в случае их отсутствия.
Ответ формы | Вывод ответа веб-формы или пустой строки в случае его отсутствия.
Изображение к форме | Вывод изображения, прикрепленного к веб-форме на закладке Описание.
Подпись поля формы | Вывод наименования вопроса. Выбор вопроса осуществляется в свойствах элемента.
Символ "Обязательно" | Вывод символа * - стандартной пометки того, что поле обязательно для заполнения. Примечание: при использовании элемента "Подпись поля формы", если поле помечено как обязательное, то пометка будет выведена в публичной части автоматически.
Формат даты | Вывод формата даты: DD.MM.YYYY.
Изображение к полю | Вывод изображения к полю, указанное в форме редактирования вопроса.
Поля CAPTCHA | Вывод пары изображения и поля ввода для защиты от автоматического заполнения веб-формы.
Поле ввода CAPTCHA | Поля ввода для защиты от автоматического заполнения веб-формы.
Изображение CAPTCHA | Вывод изображения для защиты от автоматического заполнения веб-формы.
Кнопка "Отправить" | Вывод кнопки отправки результата веб-формы.
Кнопка "Применить" | Вывод кнопки сохранения результата веб-формы (и возврата к редактированию).
Кнопка "Отменить" | Вывод кнопки отмены изменений результата веб-формы.
Статус результата | Вывод статуса результата на странице просмотра результата заполнения формы. Доступ к странице просмотра результата определяется в настройках статусов веб-формы.
Изменение статуса | Вывод формы изменения статуса на странице редактирования результата веб-формы. Доступ к данной странице определяется в настройках статусов веб-формы.

    Свойства элементов

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

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

    Параметр | Описание
    Строковой идентификатор | Уникальный в рамках веб-формы идентификатор вопроса. Также должен отличаться от строкового идентификатора веб-формы, выставляемого при расширенном режиме редактирования веб-формы. При добавлении нового элемента в шаблон его идентификатор по умолчанию будет new_field_N, где N - случайное число.
    Текст вопроса Текст вопроса, который будет отображаться:
    1. при использовании элемента [image] Подпись поля формы;
    2. в таблице списка результатов веб-формы;
    3. в фильтре списка результатов веб-формы;
    4. при просмотре результата веб-формы;
    5. при выводе ошибок заполнения веб-формы.
    Текст вопроса - HTML? | В тексте вопроса допускается HTML-форматирование. Если Вы хотите использовать своё форматирование, отметьте этот флажок.
    Обязателен? | Флаг обязательности заполнения вопроса.
    Показать в HTML-таблице результатов? | Показывать ли колонку поля в таблице результатов веб-формы (в публичной части).
    Показать в Excel-таблице результатов? | Показывать ли колонку поля в Excel-таблице результатов веб-формы.
    Тип поля | Тип поля вопроса (не редактируется).
    Ответы Параметры ответов на вопрос. Поле изменяется в зависимости от типа вопроса:
    • значение по умолчанию и длина поля для полей типа text, date, email, url, password, image, file;
    • число столбцов и число строк для полей типа textarea;
    • варианты ответов, порядок и флаг "выбран по умолчанию" для каждого варианта в случае полей типа dropdown, checkbox, radio, multiselect

    Для каждого элемента из раздела Дополнительные элементы формы есть свой набор настраиваемых свойств. Если элемент никаких настроек не имеет, это будет выведено в панели Свойства.

    Параметр | Описание
    Строковой идентификатор | Для элементов "Подпись поля формы" и "Изображение поля формы" предоставляется выбор соответствующего им поля формы в виде выпадающего списка строковых идентификаторов полей.
    Стиль | Для многих элементов предоставляется выбор CSS-класса, который нужно присвоить элементу. Если нужного класса нет в списке, то его можно указать в текстовом поле под выпадающим списком стилей.
    Расположение Для компонентов "Изображение к форме" и "Изображение к полю" можно задать такие параметры изображения, как:
    • расположение изображения относительно окружающего текста;
    • максимальная ширина и высота изображения;
    • увеличивать ли изображение в отдельном окне, если оно превышает максимальные размеры;
    • подпись для ссылки увеличения;
    • вертикальные и горизонтальные отступы от окружающего текста;
    • толщину рамки вокруг изображения.
    Максимальная ширина
    Максимальная высота
    Увеличивать?
    Вертикальный отступ
    Горизонтальный отступ
    Рамка
    Подпись | Для элементов-кнопок можно указать подпись, которая будет изображена на кнопке.

    Дополнительные замечания

    • При желании можно отключить использование шаблона оформления, выбрав опцию Использовать шаблон формы по умолчанию над редактором. При этом редактор будет скрыт, и будет использоваться шаблон по умолчанию. Шаблон веб-формы будет сохранен вместе с изменениями структуры вопросов веб-формы.
    • Если в настройках веб-формы установлен флаг "Использовать CAPTCHA", а в шаблоне веб-формы элементы для ввода CAPTCHA отсутствуют, то флаг автоматически снимется при сохранении веб-формы.
    • Вопрос, отсутствующий в шаблоне веб-формы, при сохранении будет помечен как неактивный. Это также выражается в том, что если добавить новый элемент в веб-форму, а потом удалить его, то он сохранится в виде неактивного вопроса. Исключение- если на веб-форме уже присутствует элемент с таким строковым идентификатором. В этом случае элемент, отсутствующий в шаблоне, будет удален.
    • При копировании веб-формы вопросы новой веб-формы будут иметь те же самые строковые идентификаторы, что и у исходной. Идентификатор самой веб-формы получит случайно сгенерированный постфикс.
    • При повторной вставке в шаблон веб-формы уже существующего вопроса (например, из панели "Существующие поля формы" или методом copy/paste) результатом будет создание связанной копии вопроса, все изменения которой будут отражаться и на изначальном элементе. Если Вы хотите продублировать элемент, создайте ещё один элемент того же типа с такими же параметрами (кроме, разумеется, строкового идентификатора) или воспользуйтесь иструментом копирования вопроса (в списке вопросов веб-формы).
    Закладка "Ограничения"

    Данная форма служит для указания ограничений на добавление результатов.

    Поле | Описание
Использовать ограничения | При отмеченной опции становятся активными нижеследующие поля и на добавление результатов будут использованы ограничения.
Максимальное количество результатов от пользователя | Задается максимальное количество результатов заполнения формы, получаемых от одного пользователя.
Минимальный промежуток времени между результатами | Указывается число единиц времени, определяющее минимальный интервал между результатами заполнения формы.
Использовать ограничения только для результатов в статусах | Используя Ctrl+правый клик мыши выбираются статусы данной веб-формы, для которых будут использованы ограничения.

    Закладка "Дополнительно"

    Данная закладка отображается только в полном режиме создания веб-форм.

    С помощью этой формы вы можете настроить шаблоны, используемые при работе с веб-формой.

    Поле | Описание
Почтовые шаблоны | Шаблоны, используемые для отправки результатов веб-формы.
Для фильтра по таблице результатов в административной части | Путь к шаблону, используемому для фильтрации (поиска) результатов веб-формы в административном разделе.
Для таблицы результатов в административной части | Путь к шаблону, используемому для отображения таблицы результатов в административном разделе.
    Закладка "Статистика"

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

    Поле | Описание
Event1 | Идентификатор типа события – event1
Event2 | Идентификатор типа события – event2
Event3 | Дополнительный параметр для события.
    Закладка "Доступ"

    Данная форма служит для настройки прав групп пользователей на доступ к веб-форме.

    Поле Описание
    [Группа пользователей] Право группы пользователей на форму. Каждое последующее право включает в себя все предыдущие.
    • доступ закрыт - форма и ее результаты полностью недоступны;
    • заполнение формы - посетитель может только заполнить и сохранить форму;
    • работа со своим результатом в соответствии с его статусом -посетитель получает возможность работать только со своими результатами в соответствии с правами, заданными для каждого из статусов, в котором находится тот или иной результат;
    • работа со всеми результатами в соответствии с их статусами- посетитель получает возможность работать со всеми результатами в соответствии с правами, заданными для каждого из статусов, в котором находится тот или иной результат;
    • просмотр параметров формы - включает все вышеописанные права, а также возможность просмотра параметров веб-формы;
    • полный доступ -включает все вышеописанные права, а также права на изменение настроек формы.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком веб-форм.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров веб-формы.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Список вопросов веб-формы

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Список вопросов

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список вопросов
    •

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

    Форма поиска

    С помощью данной формы вы можете выполнить поиск вопросов веб-формы, соответствующих указанным параметрам.

    Поле | Описание
    Вопрос* | Текст вопроса (его часть).
    ID* | ID требуемого вопроса.
    Активен | Флаг активности вопроса, который требуется отобразить.
    Символьный идентификатор* | Идентификатор вопроса.
    Комментарий* | Служебный комментарий (его часть).
    Обязателен | Флаг обязательности ответа.
    Включено в HTML-таблицу результатов | Флаг, указывающий, отображаются ли ответы на вопрос в HTML-таблице результатов.
    Включено в таблицу результатов в Excel формате | Флаг, указывающий, отображаются ли ответы на вопрос в таблице результатов в Excel формате.
    Включено в фильтр таблицы результатов | Флаг, указывающий наличие в таблице результатов полей, включенных в фильтр для поиска ответов на вопрос.
    Логика между полями Тип логики, используемый при проведении выборки по значениям полей:
    • и: будут выведены все элементы, обладающие всеми указанными свойствами;
    • или: будут выведены все элементы, обладающие хотя бы одним из указанных свойств.

    * - для данных полей вы можете воспользоваться специальными логическими выражениями.

    Для того чтобы отобрать вопросы веб-формы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех вопросов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить | Переход к форме создания нового вопроса для выбранной веб-формы.
Параметры формы | Переход к форме настройки параметров веб-формы, список вопросов которой представлен на данной странице.
Результаты | Переход на страницу со списком результатов веб-формы.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список вопросов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора вопросов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над вопросом:
    • Параметры вопроса - редактирование параметров вопроса;
    • Копировать - копирование вопроса;
    • Удалить - удаление вопроса.
    ID | Идентификатор вопроса.
    Акт. Признак активности вопроса.

    Поле отображается только в полном режиме редактирования веб-форм.
    Сорт. | Относительный "вес", определяющий положение вопроса в общем списке.
    Обяз. | Признак обязательности ответа на вопрос.
    Символьный идентификатор Символьный код вопроса.

    Поле отображается только в полном режиме редактирования веб-форм.
    Вопрос | Текст вопроса.
    Тип поля Тип поля для ввода ответа на вопрос.

    Поле отображается только в упрощённом режиме редактирования веб-форм.
    Комментарий | Служебный комментарий к вопросу.
    Таб. Флаг, указывающий, отображаются ли ответы на вопрос в HTML-таблице результатов.

    Поле отображается только в полном режиме редактирования веб-форм.
    Excel Флаг, указывающий, отображаются ли ответы на вопрос в таблице результатов в Excel формате.

    Поле отображается только в полном режиме редактирования веб-форм.


Создание и редактирование вопроса

В этом разделе

  • Контекстная панель
  • Упрощённая форма редактирования
  • Редактирование в полном режиме
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Вопросы | Переход на страницу со списком вопросов формы.
Создать | Переход на страницу создания нового вопроса формы. Кнопка отображается при редактировании существующего вопроса.
Копировать | Копирование текущего вопроса в новый. Кнопка отображается при редактировании существующего вопроса.
Деинсталлировать | Удаление текущего вопроса. Кнопка отображается при редактировании существующего вопроса.
Статусы | Переход на страницу со списком статусов формы. Кнопка отображается только в полном режиме редактирования веб-форм.
Поля | Переход на страницу со списком полей формы. Кнопка отображается только в полном режиме редактирования веб-форм.
Результаты | Ссылка для перехода на страницу со списком результатов формы.

    Упрощённая форма редактирования

    Закладка "Свойства"
    Поле | Описание
    Форма | Форма, к которой относится вопрос.
    Дата изменения | Дата последнего изменения вопроса. Поле отображается при редактировании существующего вопроса.
    Активен | Флаг активности вопроса.
    Порядок сортировки | Относительный "вес", определяющий положение вопроса в общем списке.
    Изображение | Изображение, которое будет выведено рядом с вопросом.
    Вопрос | Текст вопроса.
    Поле ответа обязательно для заполнения | Флаг обязательности ответа на данный вопрос формы.
    Тип поля для ответа Тип поля для ответа на данный вопрос:
    • text - однострочный текст;
    • textarea- многострочный текст;
    • multiselect - список вариантов с возможностью множественного выбора;
    • dropdown - список вариантов с возможностью одиночного выбора;
    • radio - набор radio кнопок (одиночный выбор);
    • checkbox - набор checkbox кнопок (множественный выбор);
    • image - поле для ввода изображения;
    • date - поля для ввода даты со встроенным календарем;
    • file - поле для добавления файла;
    • password - поле для ввода пароля;
    • email - поле для ввода электронного адреса;
    • hidden - скрытое поле.
    Ответ Для поля типа textarea указывается количество столбцов и строк.

    Для полей типа radio, checkbox, dropdown, multiselect поле Ответ выглядит следующим образом:
    Поле | Описание
Варианты ответа | Вариант ответа на вопрос.
Порядок | Относительный "вес", определяющий порядок следования вариантов ответа в списке.
По умолчанию | Вариант ответа, отмеченный в этом поле, по умолчанию будет использоваться в качестве ответа на вопрос.

    Для поля типа hidden из выпадающего списка выбирается тип поля ответа, а для остальных полей задается размер поля ответа.
    Закладка "Валидаторы"

    С помощью данной закладки вы можете добавить валидаторы для используемых полей ответов.

    Поле | Описание
Доступные валидаторы для поля типа <тип_поля> | Из выпадающего списка для поля указанного типа выбирается один из доступных валидаторов. Для его назначения служит кнопка Добавить валидатор, расположенная рядом с полем.
    Закладка "Комментарий"

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

    Полная форма редактирования

    Закладка "Свойства"
    Поле | Описание
Форма | Форма, к которой относится вопрос.
Дата изменения | Дата последнего изменения вопроса. Поле отображается при редактировании существующего вопроса.
Активен | Флаг активности вопроса.
Порядок сортировки | Относительный "вес", определяющий положение вопроса в общем списке.
* Символьный идентификатор | Символьный код вопроса. Задается символами латинского алфавита.
Обязателен | Признак обязательности ответа на данный вопрос.

    * - Поля, обязательные для заполнения.

    Закладка "Вопрос"
    Поле | Описание
Изображение | Изображение, которое будет показываться рядом с вопросом.
Текст вопроса | Текст создаваемого вопроса.
    Закладка "Ответ"

    Данная форма позволяет создать поля, используемые для ввода ответа на вопрос, либо создать возможные варианты ответов на вопрос.

    Поле | Описание
    ID | Идентификатор поля для ответа.
    Текст
    ANSWER_TEXT     		Текст ответа на вопрос.

    Используется для полей типа dropdown, multiselect, radio, checkbox. Для остальных типов полей необходимо поставить пробел.
    Значение
    ANSWER_VALUE     		Дополнительный параметр, который может быть использован для идентификации конкретного ответа (например, в списках).
    Тип поля Тип поля для ответа на данный вопрос:
    • text - однострочный текст;
    • textarea- многострочный текст;
    • multiselect - список вариантов с возможностью множественного выбора;
    • dropdown - список вариантов с возможностью одиночного выбора;
    • radio - набор radio кнопок (одиночный выбор);
    • checkbox - набор checkbox кнопок (множественный выбор);
    • image - поле для ввода изображения;
    • date - поля для ввода даты со встроенным календарем;
    • file - поле для добавления файла;
    • password - поле для ввода пароля;
    • email - поле для ввода электронного адреса;
    • hidden - скрытое поле.
    Ширина | Ширина полей типа text, textarea, image, date. Задается количеством столбцов.
    Высота | Высота полей типа textarea, multiselect. Задается количеством строк.
    Параметры Данное поле может использоваться для вывода стиля элемента ввода, а также для задания специальных идентификаторов:
    • SELECTED -при задании этого идентификатора поле ввода будет выделено; работает для полей следующих типов: multiselect, dropdown, radio, checkbox.
    • NOT_ANSWER -данный идентификатор используется для пометки тех пунктов элементов управления, которые не являются вариантами ответа на вопрос. В том случае, если этот идентификатора задан и если ответ на вопрос обязателен, выбор посетителем данного ответа не будет считаться ответом на обязательный вопрос формы. Работает для типов полей: dropdown, radio, multiselect, checkbox.
    • NOW_DATE -выводит в поле типа date текущую дату.
    • NOW_TIME -выводит в поле типа date текущее время.
    Сорт. | Относительный "вес" определяющий положение варианта ответа в общем списке.
    Акт. | Признак активности поля. Для отображения в публичном разделе выбираются только активные варианты ответа.
    Удалить | Для того чтобы удалить вариант ответа, установите флаг в это поле и нажмите кнопку "Применить".
    Закладка "Валидаторы"

    С помощью данной закладки вы можете добавить валидаторы для используемых полей ответов.

    Поле | Описание
Доступные валидаторы для поля типа <тип_поля> | Из выпадающего списка для поля указанного типа выбирается один из доступных валидаторов. Для его назначения служит кнопка Добавить валидатор, расположенная рядом с полем.
    Закладка "Результаты"

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

    Поле | Описание
Показать в HTML-таблице результатов | Если отметить данный флаг, то ответы на данный вопрос будут отображены в HTML-таблице результатов формы.
Показать в Excel-таблице результатов | Если отметить данный флаг, то ответы на данный вопрос будут отображены в Excel-таблице результатов формы.
Заголовок столбца в таблице | Текст, который будет выводиться в таблице результатов в качестве заголовка столбца, содержащего ответы на данный вопрос.
    Закладка "Фильтр"
    Поля в фильтре
    для вводимого значения Тип полей фильтра таблицы результатов для поиска ответов, вводимых пользователем в следующих типах полей: text, textarea.
    Возможны следующие типы полей в фильтре:
    • однострочное текстовое поле;
    • числовой интервал;
    • интервал дат;
    • флаг существования.
    для параметра ANSWER_TEXT Тип полей фильтра для поиска значений параметра ANSWER_TEXT в ответах посетителя.
    Возможны следующие типы полей в фильтре:
    • однострочное текстовое поле;
    • числовой интервал;
    • выпадающий список из всех значений ANSWER_TEXT;
    • флаг существования.
    для параметра ANSWER_VALUE Тип полей фильтра для поиска значений параметра ANSWER_VALUE в ответах посетителя.
    Возможны следующие типы полей в фильтре:
    • однострочное текстовое поле;
    • числовой интервал;
    • выпадающий список из всех значений ANSWER_TEXT;
    • флаг существования.
    Подпись к полю фильтра Текст, который будет выводиться рядом с выбранными полями фильтра по таблице результатов.
    Закладка "Комментарий"

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров вопроса. Переход к списку вопросов.
Применить | Сохранение параметров вопроса. Продолжение редактирования вопроса.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Список полей

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список полей
  • Как создать поле
  • Как изменить поле
    •

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

    Фильтр

    С помощью данной формы вы можете выполнить поиск полей веб-формы, соответствующих указанным параметрам.

    Наименование параметра | Описание
    Заголовок* | Заголовок поля.
    ID* | ID поля.
    Активен | Флаг активности поля.
    Символьный идентификатор* | Идентификатор поля.
    Комментарий* | Служебный комментарий.
    Включено в HTML-таблицу результатов | Флаг, указывающий, отображаются ли значения полей в HTML-таблице результатов.
    Включено в таблицу результатов в Excel формате | Флаг, указывающий, отображаются ли значения полей в Excel-таблице результатов.
    Включено в фильтр таблицы результатов | Флаг, определяющий, участвуют ли значения поля в фильтре.
    Логика между полями Определяется тип логики, используемой при проведении выборки по значениям полей фильтра:
    • и: будут выведены все элементы, обладающие всеми указанными свойствами;
    • или: будут выведены все элементы, обладающие хотя бы одним из указанных свойств.

    * - для данных полей вы можете воспользоваться специальными логическими выражениями.

    Для того чтобы отобрать поля веб-формы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех полей нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить | Создание нового поля.
Параметры формы | Переход к форме редактирования параметров веб-формы.
Результаты | Переход на страницу со списком результатов веб-формы.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список полей

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора полей, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные действия над полем:
    • Параметры вопроса- редактирование параметров поля;
    • Копировать - копирование поле в новое;
    • Удалить - удаление поля.
    ID | Идентификатор поля.
    Акт. | Признак активности поля. Если поле не активно, то оно будет не доступно для показа в таблице результатов и в фильтре по таблице результатов.
    Сорт. | Относительный "вес", определяющий порядок вывода полей в списке.
    Символьный идентификатор | Символьный код поля (задается символами латинского алфавита).
    Заголовок | Заголовок поля.
    Тип поля Тип поля:
    • текст - поле имеет текстовое значение;
    • число - поле имеет числовое значение;
    • дата - значением поля является дата.
    Комментарий | Комментарий к значению поля.
    Таб. | Флаг, определяющий, будет ли поле отображаться в HTML-таблице результатов.
    Excel | Флаг, определяющий, будет ли поле экспортироваться в таблицу результатов в формате Excel.

    Как создать поле

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

    Как изменить поле

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


Создание и редактирование поля

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Свойства
  • Валидаторы
  • Результаты
  • Фильтр
  • Комментарий
    •
  • Кнопки управления
    •

    Для создания и изменения поля формы применяется страница одного типа.

    Контекстная панель

    Кнопка | Описание
Поля | Переход на страницу со списком полей формы.
Создать | Переход на страницу создания нового поля формы. Кнопка отображается на странице редактирования уже существующего поля.
Копировать | Копирование текущего поля в новое. Кнопка отображается на странице редактирования уже существующего поля.
Деинсталлировать | Удаление текущего поля. Кнопка отображается на странице редактирования уже существующего поля.
Статусы | Переход на страницу со списком статусов формы.
Вопросы | Переход на страницу со списком вопросов формы.
Результаты | Переход на страницу со списком результатов формы.

    Форма редактирования

    Закладка Свойства
    Поле | Описание
    Форма | Название формы, к которой относится данное поле.
    Дата изменения | Дата последнего изменения поля (отображается только на странице редактирования уже существующего поля).
    Активен | Флаг активности поля.
    Порядок сортировки | Порядок сортировки поля; используется при выводе данных в таблице результатов, а также при выводе в фильтре.
    * Символьный идентификатор | Идентификатор поля; может состоять только из букв латинского алфавита.
    Тип поля Используется для хранения данных в соответствующем формате, а также для выбора полей в фильтре:
    • текст – однострочное текстовое поле в фильтре;
    • число – числовой интервал в фильтре;
    • дата – интервал дат в фильтре.
    Заголовок | Заголовок поля.

    * - Поля, обязательные для заполнения.

    Закладка Валидаторы
    Поле | Описание
Доступные валидаторы для поля типа <тип_поля> | Из выпадающего списка для поля указанного типа выбирается один из доступных валидаторов. Для его назначения служит кнопка Добавить валидатор, расположенная рядом с полем.
    Закладка Результаты

    Данная закладка служит для настройки параметров показа значения поля.

    Поле | Описание
Показать в HTML-таблице результатов | Если отметить данный флаг, то значения данного поля будут отображены в HTML-таблице результатов формы.
Показать в Excel-таблице результатов | Если отметить данный флаг, то значения данного поля будут отображены в Excel-таблице результатов формы.
Заголовок столбца в таблице | Текст, который будет выводиться в таблице результатов в качестве заголовка столбца, содержащего значения данного поля.
    Закладка Фильтр

    Данная форма служит для настройки полей в фильтре для поиска записей по значению данного поля.

    Поле | Описание
    Поля в фильтре Типы полей, по значениям которых будет осуществляться фильтрация элементов на странице со списком форм.
    Возможны следующие типы полей:
    • текстовое поле;
    • числовой интервал;
    • интервал дат;
    • флаг существования.
    Подпись к полю фильтра | Текст, который будет выводиться рядом с выбранными полями фильтра по таблице результатов.
    Закладка Комментарий

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров поля. Переход к списку полей формы.
Применить | Сохранение параметров поля. Продолжение редактирования.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Список статусов

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Список статусов для результатов формы

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список статусов
  • Как создать статус
  • Как изменить статус
    •

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

    Фильтр

    С помощью данной формы вы можете выполнить поиск статусов веб-формы, соответствующих указанным параметрам.

    Поле | Описание
Заголовок* | Заголовок статуса.
ID* | ID статуса.
Активен | Флаг активности статуса.
Описание* | Описание статуса.
Результатов | Интервал, позволяющий отфильтровать статусы по количеству результатов.

    * - для данных полей вы можете воспользоваться специальными логическими выражениями.

    Для того чтобы отобрать статусы веб-формы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех статусов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить | Переход к форме создания нового статуса.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список статусов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора статусов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над статусом:
    • Изменить - редактирование параметров статуса;
    • Копировать - копирование статуса в новый;
    • Удалить - удаление статуса.
    ID | Идентификатор статуса.
    Изменен | Дата последнего редактирования параметров статуса.
    Акт. | Признак активности статуса.
    Сорт. | Относительный "вес", определяющий порядок вывода статусов в списке.
    Умол. | Указывается, будет ли данный статус присваиваться всем вновь создаваемым результатам по умолчанию.
    Заголовок | Заголовок статуса.
    Описание | Описание статуса.
    Результаты | Количество результатов в данном статусе. Ссылка с количеством результатов позволяет перейти к списку данных результатов.

    Как создать статус

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

    Как изменить статус

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


Создание и редактирование статуса

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Свойства
  • Доступ
    •
  • Кнопки управления
    •

    Для создания и изменения статусов применяется страница одного типа. Переход к данной странице возможен только в полном режиме редактирования веб-форм.

    Контекстная панель

    Кнопка | Описание
Статусы | Переход на страницу со списком статусов формы.
Новый статус | Переход на страницу создания нового статуса формы. Кнопка отображается на странице редактирования уже существующего статуса.
Копировать | Копирование текущего статуса в новый. Кнопка отображается на странице редактирования уже существующего статуса.
Деинсталлировать | Удаление текущего статуса. Кнопка отображается на странице редактирования уже существующего статуса.
Вопросы | Переход на страницу со списком вопросов формы.
Поля | Переход на страницу со списком полей формы.
Результаты | Переход на страницу на страницу со списком результатов формы.

    Форма редактирования

    Закладка Свойства
    Поле | Описание
Форма | Форма, для результатов которой используется данный статус.
Изменен | Дата и время последнего изменения настроек статуса.
Результатов в данном статусе | Количество результатов, имеющих данный статус.
Активен | Флаг активности статуса.
*Заголовок | Заголовок статуса.
Описание | Описание статуса.
Порядок сортировки | Порядок сортировки статуса (используется, в частности, при выводе выпадающего списка статусов).
Присваивать данный статус всем новым документам по умолчанию | Данный флаг позволяет присваивать редактируемый статус всем вновь создаваемым документам в случае, если статус не был явно указан.
CSS класс для отображения заголовка статуса | CSS класс для текста, которым будет выводиться заголовок статуса. Например, в таблице результатов или при просмотре, редактировании статуса при использовании шаблонов типа default.php.
Файл-обработчик смены данного статуса на другой (либо удаление результата) | Адрес файла-обработчика, который будет запускаться при смене статуса.
Файл-обработчик смены какого-либо статуса на данный (либо добавление нового результата) | Адрес файла-обработчика, который будет запускаться при смене какого-либо статуса на данный. Подробнее об обработчиках смены статуса см. раздел Обработчики статусов.

    * - Поля, обязательные для заполнения.

    Закладка Доступ

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

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров статуса. Переход к списку статусов.
Применить | Сохранение параметров статуса. Продолжение редактирования.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Результаты веб-формы

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Результаты заполнения веб-формы

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список результатов
  • Редактирование результата
  • Просмотр результата
    •

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

    Фильтр

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

    Поле | Описание
ID* | ID результата.
Дата создания | Дата создания результата.
Дата изменения | Дата изменения результата.
Посетитель был зарегистрирован? | Регистрировался ли посетитель, заполнявший форму на сайте.
Пользователь был авторизован? | Был ли посетитель авторизован по своим регистрационным данным в момент заполнения формы.
ID пользователя* | ID, логин, имя, фамилия посетителя заполнявшего форму.
ID посетителя* | ID посетителя в модуле статистики.
ID сессии* | ID сессии в модуле статистики.
Статус | Статус результата. Данное условие поиска доступно только в полном режиме редактирования веб-форм.
ID статуса | ID статуса результата. Данное условие поиска доступно только в полном режиме редактирования веб-форм.

    * - для данных полей вы можете воспользоваться специальными логическими выражениями.

    Для того чтобы отобрать результаты веб-формы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех результатов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить | Переход к форме создания нового результата.
Параметры формы | Переход к форме редактирования параметров веб-формы.
Вопросы | Переход к списку вопросов веб-формы.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список результатов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора результатов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над результатом:
    • Просмотр - просмотр результата;
    • Изменить - редактирование результата;
    • Удалить - удаление результата.
    ID | Идентификатор результата.
    Статус | Статус, в котором находится результат. Данное поле отображается только в полном режиме редактирования форм.
    Изменено | Дата последнего изменения результата.
    Кем изменено | Логин, имя, фамилия пользователя, создавшего либо изменившего результат (если посетитель не зарегистрирован, то выводится надпись не зарегистрирован).
    Посетитель | ID посетителя в модуле статистики.
    Сессия | ID сессии в модуле статистики.
    [Вопросы формы] | Ответы на вопросы формы.

    Редактирование результата

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

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

    Просмотр результата

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

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


Настройки

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Настройки модуля

Данная форма (Настройки -> Настройки продукта -> Настройки модулей) предназначена для задания общесистемных параметров модуля веб-форм.

Закладка "Настройки"

Поле | Описание
Использовать HTML редактор (только для IE 5.0 или FireFox 1.0 и выше) | При установке данного флага в моменты редактирования свойств и вопросов формы будет загружаться встроенный HTML редактор.
Использовать упрощённый режим редактирования форм | Выбор данной опции позволяет выполнять создание веб-форм в упрощённом режиме (без использования статусов результатов веб-формы, полей и т.д.).
Максимальное кол-во записей выбираемых в SQL запросах | Ограничение, накладываемое на количество записей, выводимых в общем списке результатов веб-форм.
Количество результатов на одной странице | Количество результатов веб-форм для показа на одной странице.
Право по умолчанию для вновь создаваемых веб-форм Права по умолчанию для групп пользователей на доступ ко всем вновь создаваемым веб-формам:
  • доступ закрыт - форма и ее результаты полностью недоступны;
  • заполнение формы - посетитель может только заполнить и сохранить форму;
  • работа со своим результатом в соответствии с его статусом -посетитель получает возможность работать только со своими результатами в соответствии с правами, заданными для каждого из статусов, в котором находится тот или иной результат;
  • работа со всеми результатами в соответствии с их статусами- посетитель получает возможность работать со всеми результатами в соответствии с правами, заданными для каждого из статусов, в котором находится тот или иной результат;
  • просмотр параметров формы - включает все вышеописанные права, а также возможность просмотра параметров веб-формы;
  • полный доступ -включает все вышеописанные права, а также права на изменение настроек формы.

Закладка "Доступ"

Данная форма служит для определения прав групп пользователей на доступ к модулю веб-форм.

Поле | Описание
По умолчанию | Управление уровнем доступа групп пользователей, для которых установлено право "по умолчанию".
[Группа пользователей]

Управление правом доступа отдельных групп пользователей. Возможны следующие уровни доступа:

  • Доступ закрыт - доступ к меню и всем административным файлам модуля закрыт;
  • Доступ открыт - доступ к меню и административным файлам открыт; дальнейшие права доступа к формам регламентируются правами, заданными в каждой конкретной форме;
  • Полный доступ - Подразумевает открытие доступа к меню и административным файлам модуля, а также право на создание новых форм. В то же время, доступ к существующим формам регламентируется правами, заданными в каждой конкретной форме.


Веб-форма (комплексный компонент)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Веб-форма"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:form","",Array(
     "AJAX_MODE" => "Y",
     "SEF_MODE" => "Y",
     "WEB_FORM_ID" => $_REQUEST["WEB_FORM_ID"],
     "RESULT_ID" => $_REQUEST["RESULT_ID"],
     "START_PAGE" => "new",
     "SHOW_LIST_PAGE" => "Y",
     "SHOW_EDIT_PAGE" => "Y",
     "SHOW_VIEW_PAGE" => "Y",
     "SUCCESS_URL" => "",
     "SHOW_ANSWER_VALUE" => "N",
     "SHOW_ADDITIONAL" => "N",
     "SHOW_STATUS" => "Y",
     "EDIT_ADDITIONAL" => "N",
     "EDIT_STATUS" => "Y",
     "NOT_SHOW_FILTER" => "",
     "NOT_SHOW_TABLE" => "",
     "CHAIN_ITEM_TEXT" => "",
     "CHAIN_ITEM_LINK" => "",
     "IGNORE_CUSTOM_TEMPLATE" => "N",
     "USE_EXTENDED_ERRORS" => "N",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "AJAX_OPTION_NOSHADOW" => "N",
     "AJAX_OPTION_NOJUMP" => "Y",
     "AJAX_OPTION_NOSTYLE" => "N",
     "SEF_FOLDER" => "/communication/web-forms/",
     "SEF_URL_TEMPLATES" => Array(
         "new" => "#WEB_FORM_ID#/",
         "list" => "#WEB_FORM_ID#/list/",
         "edit" => "#WEB_FORM_ID#/edit/#RESULT_ID#/",
         "view" => "#WEB_FORM_ID#/view/#RESULT_ID#/"
         ),
     "VARIABLE_ALIASES" => Array(
         "new" => Array(),
         "list" => Array(),
         "edit" => Array(),
         "view" => Array(),
         )
     )
);?>

Описание параметров

Основные параметры
START_PAGE
Выбирается страница, используемая в качестве начальной:
  • list - страница со списком результатов данной формы;
  • new - страница добавления результата, т.е. будет представлена выбранная веб-форма для заполнения.
SHOW_LIST_PAGE
[Y|N] Если значение параметра START_PAGE равно "new", то при отмеченной опции пользователь после заполнения результата будет переведен на страницу со списком результатов.
Если же в качестве начальной страницы указано "list", то вне зависимости от этой опции выведется страница результатов.
SHOW_EDIT_PAGE
[Y|N] При отмеченной опции на странице со списком результатов будет присутствовать ссылка Изменить на редактирование результата.

Примечание: кол-во записей на странице со списком результатов зависит от прав доступа пользователя, установленных в настройках формы и в настройках ее статуса.

SHOW_VIEW_PAGE
[Y|N] При отмеченной опции на странице со списком результатов будет присутствовать ссылка на просмотр результата.

Примечание: кол-во записей на странице со списком результатов зависит от прав доступа пользователя, установленных в настройках формы и в настройках ее статуса.

SUCCESS_URL
Путь к странице с сообщением об успешной отправке результата формы.
Используется при отправке результата пользователем без прав редактирования результата.
Источник данных
WEB_FORM_ID
Идентификатор веб-формы.
RESULT_ID
Идентификатор результата заполнения формы.
По умолчанию указано $_REQUEST["RESULT_ID"], но также может быть записан php-код, возвращающий RESULT_ID.
Внешний вид
SHOW_ANSWER_VALUE
[Y|N] Отмеченная опция означает вывести для показа значение параметра ANSWER_VALUE вопроса веб-формы (выводится рядом со значением ответа).
SHOW_ADDITIONAL
[Y|N] При отмеченной опции будут выведены дополнительные поля формы при их наличии.
SHOW_STATUS
[Y|N] При отмеченной опции на странице со списком результатов будет показываться статус текущего результата.
EDIT_ADDITIONAL
[Y|N] При отмеченной опции дополнительные поля будут выведены на редактирование.
EDIT_STATUS
[Y|N] При установленной флаге и с учётом того, что если значение параметра SHOW_STATUS равно "Y", то будет отображена форма смены статуса.
Список доступных статусов в форме зависит от прав доступа, установленных для данной группы в настройках статусов формы.
NOT_SHOW_FILTER
Указываются коды полей, которые нельзя показывать в фильтре. С помощью данной настройки можно исключить те поля веб-формы, которые не должны отображаться в фильтре на странице со списком результатов.

Примечание: для того чтобы поле отображалось в фильтре на странице со списком результатов, для данного вопроса должна быть заполнена закладка Фильтр в форме редактирования вопроса веб-формы в расширенном режиме.

NOT_SHOW_TABLE
Указываются коды полей, которые нельзя показывать в таблице. С помощью данной настройки можно исключить те поля веб-формы, которые не должны отображаться в таблице на странице со списком результатов веб-формы.
IGNORE_CUSTOM_TEMPLATE
[Y|N] При отмеченной опции для отображения веб-формы будет использоваться шаблон формы по умолчанию, даже если создан свой шаблон.
USE_EXTENDED_ERRORS
[Y|N] При отмеченной опции будет использован расширенный вывод сообщений об ошибках.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Указываются адреса следующих страниц:
  • new -страница добавления результата;
  • list - страница списка результатов;
  • edit - страница редактирования результата;
  • view - страница просмотра результата.
VARIABLE_ALIASES
Имена переменных, в которых передаются названия действий.
Управление режимом AJAX
AJAX_MODE
[Y/N] При установленном флаге включается режим AJAX.
AJAX_OPTION_NOSHADOW
[Y/N] При выборе значения "Y"не будет происходить затенения формы при сохранении результатов ее заполнения.
AJAX_OPTION_NOJUMP
[Y/N] При отмеченной опции отключается прокрутка к началу компонента в публичной части при сохранении результата заполнения веб-формы.
AJAX_OPTION_NOSTYLE
[Y/N] При отмеченной опции будет отменена подгрузка стилей.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
CHAIN_ITEM_TEXT
Название дополнительного пункта в навигационной цепочке (если оставить незаполненным, то в навигационную цепочку пункт не добавляется).
CHAIN_ITEM_LINK
Можно задать ссылку, которая будет показана на дополнительном пункте меню в навигационной цепочке.


Заполнение веб-формы

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Заполнение веб-формы"

Компонент служит для вывода формы и добавления результата, т.е. для ее заполнения. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:form.result.new","",Array(
     "SEF_MODE" => "Y",
     "WEB_FORM_ID" => $_REQUEST["WEB_FORM_ID"],
     "LIST_URL" => "result_list.php",
     "EDIT_URL" => "result_edit.php",
     "SUCCESS_URL" => "",
     "CHAIN_ITEM_TEXT" => "",
     "CHAIN_ITEM_LINK" => "",
     "IGNORE_CUSTOM_TEMPLATE" => "N",
     "USE_EXTENDED_ERRORS" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "SEF_FOLDER" => "/communication/web-forms/",
     "VARIABLE_ALIASES" => Array(
         )
     )
);?>

Описание параметров

Источник данных
WEB_FORM_ID
Идентификатор веб-формы.
Внешний вид
IGNORE_CUSTOM_TEMPLATE
[Y|N] При отмеченной опции для отображения веб-формы будет использоваться шаблон формы по умолчанию, даже если создан свой шаблон.
USE_EXTENDED_ERRORS
[Y|N] При отмеченной опции будет использован расширенный вывод сообщений об ошибках.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
VARIABLE_ALIASES
В режиме без поддержки ЧПУ задаются имена следующих переменных:
  • WEB_FORM_ID - имя переменной, которой передается ID веб-формы;
  • RESULT_ID - имя переменной, которой передается ID результата заполнения формы.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Параметры компонента
LIST_URL
Указывается адрес страницы со списком результатов.
EDIT_URL
Указывается адрес страницы редактирования результата.
SUCCESS_URL
Путь к странице с сообщением об успешной отправке результата формы.
Используется при отправке результата пользователем без прав редактирования результата.
CHAIN_ITEM_TEXT
Название дополнительного пункта в навигационной цепочке (если оставить незаполненным, то в навигационную цепочку пункт не добавляется).
CHAIN_ITEM_LINK
Можно задать ссылку, которая будет показана на дополнительном пункте меню в навигационной цепочке.


Просмотр результата

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Просмотр результата"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:form.result.view","",Array(
     "SEF_MODE" => "Y",
     "RESULT_ID" => $_REQUEST["RESULT_ID"],
     "SHOW_ADDITIONAL" => "N",
     "SHOW_ANSWER_VALUE" => "N",
     "SHOW_STATUS" => "Y",
     "EDIT_URL" => "result_edit.php",
     "CHAIN_ITEM_TEXT" => "",
     "CHAIN_ITEM_LINK" => "",
     "SEF_FOLDER" => "/communication/web-forms/",
     "SEF_URL_TEMPLATES" => Array(
         "view" => "#RESULT_ID#/"
         ),
     "VARIABLE_ALIASES" => Array(
         "view" => Array(),
         )
     )
);?>

Описание параметров

Источник данных
RESULT_ID
Идентификатор результата. По умолчанию указано $_REQUEST["RESULT_ID"].
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Указывается адрес следующей страницы:
  • view - страница просмотра результата.
VARIABLE_ALIASES
Имена переменных, в которых передаются названия действий.
Параметры компонента
SHOW_ADDITIONAL
[Y|N] При отмеченной опции будут выведены дополнительные поля формы при их наличии.
SHOW_ANSWER_VALUE
[Y|N] Отмеченная опция означает вывести для показа значение параметра ANSWER_VALUE вопроса веб-формы (выводится рядом со значением ответа).
SHOW_STATUS
[Y|N] При отмеченной опции на странице со списком результатов будет показываться статус текущего результата.
EDIT_URL
Указывается адрес страницы редактирования результата.
CHAIN_ITEM_TEXT
Название дополнительного пункта в навигационной цепочке (если оставить незаполненным, то в навигационную цепочку пункт не добавляется).
CHAIN_ITEM_LINK
Можно задать ссылку, которая будет показана на дополнительном пункте меню в навигационной цепочке.


Редактирование результата

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Редактирование результата"

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

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:form.result.edit","",Array(
     "SEF_MODE" => "Y",
     "RESULT_ID" => $_REQUEST["RESULT_ID"],
     "EDIT_ADDITIONAL" => "N",
     "EDIT_STATUS" => "Y",
     "LIST_URL" => "result_list.php",
     "VIEW_URL" => "result_view.php",
     "CHAIN_ITEM_TEXT" => "",
     "CHAIN_ITEM_LINK" => "",
     "IGNORE_CUSTOM_TEMPLATE" => "N",
     "SEF_FOLDER" => "/communication/web-forms/",
     "SEF_URL_TEMPLATES" => Array(
         "edit" => "#RESULT_ID#/"
         ),
     "VARIABLE_ALIASES" => Array(
         "edit" => Array(),
         )
     )
);?>

Описание параметров

Источник данных
RESULT_ID
Идентификатор результата заполнения формы.
По умолчанию указано $_REQUEST["RESULT_ID"], но также может быть записан php-код, возвращающий RESULT_ID.
Внешний вид
IGNORE_CUSTOM_TEMPLATE
[Y|N] При отмеченной опции для отображения веб-формы будет использоваться шаблон формы по умолчанию, даже если создан свой шаблон.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Указывается адрес следующей страницы:
  • edit - страница редактирования результата.
VARIABLE_ALIASES
Имена переменных, в которых передаются названия действий.
Дополнительные настройки
EDIT_ADDITIONAL
[Y|N] При отмеченной опции будут выведены для редактирования дополнительные поля формы при их наличии.
EDIT_STATUS
[Y|N] При отмеченной опции будет выведена форма смены статуса текущего результата. Статусы будут доступны в соответствии с правами пользователя.
LIST_URL
Указывается адрес страницы со списком результатов.
VIEW_URL
Указывается адрес страницы просмотра результата заполнения формы.
CHAIN_ITEM_TEXT
Название дополнительного пункта в навигационной цепочке (если оставить незаполненным, то в навигационную цепочку пункт не добавляется).
CHAIN_ITEM_LINK
Можно задать ссылку, которая будет показана на дополнительном пункте меню в навигационной цепочке.


Список результатов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список результатов"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:form.result.list","",Array(
     "SEF_MODE" => "Y",
     "WEB_FORM_ID" => $_REQUEST["WEB_FORM_ID"],
     "VIEW_URL" => "result_view.php",
     "EDIT_URL" => "result_edit.php",
     "NEW_URL" => "result_new.php",
     "SHOW_ADDITIONAL" => "N",
     "SHOW_ANSWER_VALUE" => "N",
     "SHOW_STATUS" => "Y",
     "NOT_SHOW_FILTER" => "",
     "NOT_SHOW_TABLE" => "",
     "CHAIN_ITEM_TEXT" => "",
     "CHAIN_ITEM_LINK" => "",
     "SEF_FOLDER" => "/communication/web-forms/",
     "VARIABLE_ALIASES" => Array()
     )
);?>

Описание параметров

Источник данных
WEB_FORM_ID
Идентификатор веб-формы.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
VARIABLE_ALIASES
Имена переменных, в которых передаются названия действий.
Параметры компонента
VIEW_URL
Указывается адрес страницы просмотра результата заполнения формы.
EDIT_URL
Указывается адрес страницы редактирования результата.
NEW_URL
Указывается адрес страницы добавления результата (заполнения формы).
SHOW_ADDITIONAL
[Y|N] При отмеченной опции будут выведены дополнительные поля формы при их наличии.
SHOW_ANSWER_VALUE
[Y|N] Отмеченная опция означает вывести для показа значение параметра ANSWER_VALUE вопроса веб-формы (выводится рядом со значением ответа).
SHOW_STATUS
[Y|N] При отмеченной опции на странице со списком результатов будет показываться статус текущего результата.
NOT_SHOW_FILTER
Указываются коды полей, которые нельзя показывать в фильтре. С помощью данной настройки можно исключить те поля веб-формы, которые не должны отображаться в фильтре на странице со списком результатов.

Примечание: для того чтобы поле отображалось в фильтре на странице со списком результатов, для данного вопроса должна быть заполнена закладка Фильтр в форме редактирования вопроса веб-формы в расширенном режиме.

NOT_SHOW_TABLE
Указываются коды полей, которые нельзя показывать в таблице. С помощью данной настройки можно исключить те поля веб-формы, которые не должны отображаться в таблице на странице со списком результатов веб-формы.
CHAIN_ITEM_TEXT
Название дополнительного пункта в навигационной цепочке (если оставить незаполненным, то в навигационную цепочку пункт не добавляется).
CHAIN_ITEM_LINK
Можно задать ссылку, которая будет показана на дополнительном пункте меню в навигационной цепочке.


Компонент Редактирование результата

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Редактирование результата"

Данный компонент предназначен для редактирования результата заполнения произвольной веб-формы, созданной в административном интерфейсе модуля Веб-формы. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?
$APPLICATION->IncludeFile("form/result_edit/default.php", array(
    "RESULT_ID" => $_REQUEST["RESULT_ID"],
    "EDIT_ADDITIONAL" => "N",
    "EDIT_STATUS" => "Y",
    "LIST_URL" => "result_list.php",
    "VIEW_URL" => "result_view.php",
    "CHAIN_ITEM_TEXT" => "Список анкет",
    "CHAIN_ITEM_LINK" => "result_list.php?WEB_FORM_ID=".$_REQUEST["WEB_FORM_ID"],
    ));
?>

Описание параметров

RESULT_ID
ID результата.
EDIT_ADDITIONAL
Y – вывести на редактирование поля результата веб-формы (не путать с вопросами) [Y|N].
EDIT_STATUS
Y – вывести выпадающий список для смены статуса результата веб-формы [Y|N].
LIST_URL
Адрес страницы для перенаправления пользователя после нажатия на кнопку Сохранить (если данный параметр оставить незаполненным, то пользователь останется на той же странице).
VIEW_URL
Адрес страницы для просмотра результата.
CHAIN_ITEM_TEXT
Название дополнительного пункта в навигационной цепочке (если оставить незаполненным, то в навигационную цепочку пункт не добавляется).
CHAIN_ITEM_LINK
Ссылка на дополнительном пункте меню в навигационной цепочке.


Компонент Просмотр результата

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Просмотр результата"

Данный компонент предназначен для просмотра результата заполнения произвольной веб-формы, созданной в административном интерфейсе модуля Веб-формы. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?
$APPLICATION->IncludeFile("form/result_view/default.php", array(
    "RESULT_ID" => $_REQUEST["RESULT_ID"],
    "SHOW_ADDITIONAL" => "N",
    "SHOW_ANSWER_VALUE" => "N",
    "SHOW_STATUS" => "Y",
    "EDIT_URL" => "result_edit.php",
    "CHAIN_ITEM_TEXT" => "Список анкет",
    "CHAIN_ITEM_LINK" => "result_list.php?WEB_FORM_ID=".$_REQUEST["WEB_FORM_ID"],
    ));
?>

Описание параметров

RESULT_ID
ID результата.
SHOW_ADDITIONAL
Y – вывести для показа поля результата веб-формы (не путать с вопросами) [Y|N].
SHOW_ANSWER_VALUE
Y – вывести для показа значение параметра ANSWER_VALUE вопроса веб-формы (выводится в круглых скобках рядом со значением ответа) [Y|N].
SHOW_STATUS
Y – вывести текущий статус результата веб-формы [Y|N].
EDIT_URL
Адрес страницы для редактирования результата.
CHAIN_ITEM_TEXT
Название дополнительного пункта в навигационной цепочке (если оставить незаполненным, то в навигационную цепочку пункт не добавляется).
CHAIN_ITEM_LINK
Ссылка на дополнительном пункте меню в навигационной цепочке.


Список результатов

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список результатов"

Данный компонент предназначен для вывода таблицы-списка результатов заполнения произвольной веб-формы, созданной в административном интерфейсе модуля Веб-формы. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?
$APPLICATION->IncludeFile("form/result_list/default.php", array(
    "WEB_FORM_ID" => $_REQUEST["WEB_FORM_ID"],
    "VIEW_URL" => "result_view.php",
    "EDIT_URL" => "result_edit.php",
    "NEW_URL" => "result_new.php",
    "SHOW_ADDITIONAL" => "N",
    "SHOW_ANSWER_VALUE" => "N",
    "SHOW_STATUS" => "Y",
    "NOT_SHOW_FILTER" => "",
    "NOT_SHOW_TABLE" => ""
    ));
?>

Описание параметров

WEB_FORM_ID
ID веб-формы, результаты которой необходимо вывести.
VIEW_URL
Адрес страницы для просмотра результата (если параметр не задан, ссылка на просмотр результата не выводится).
EDIT_URL
Адрес страницы для редактирования результата (если параметр не задан, ссылка на редактирование результата не выводится).
NEW_URL
Адрес страницы для заполнения формы и создания нового результата.
SHOW_ADDITIONAL
Y – вывести для показа поля результата веб-формы (не путать с вопросами) [Y|N].
SHOW_ANSWER_VALUE
Y – вывести для показа значение параметра ANSWER_VALUE вопроса веб-формы (выводится в круглых скобках рядом со значением ответа) [Y|N].
SHOW_STATUS
Y – вывести текущий статус результата веб-формы [Y|N].
NOT_SHOW_FILTER
Символьные коды полей и вопросов веб-формы, которые не нужно выводить в фильтре (через запятую).
NOT_SHOW_TABLE
Символьные коды полей и вопросов веб-формы, которые не нужно выводить в таблице (через запятую).


Заполнение веб-формы

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Заполнение веб-формы"

Данный универсальный компонент предназначен для вывода произвольной веб-формы, созданной в административном интерфейсе модуля Веб-формы. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?
$APPLICATION->IncludeFile("form/result_new/default.php", array(
    "WEB_FORM_ID" => $_REQUEST["WEB_FORM_ID"],
    "LIST_URL" => "result_list.php",
    "EDIT_URL" => "result_edit.php",
    "CHAIN_ITEM_TEXT" => "Список анкет",
    "CHAIN_ITEM_LINK" => "result_list.php?WEB_FORM_ID=".$_REQUEST["WEB_FORM_ID"]
));
?>

Описание параметров

WEB_FORM_ID
ID веб-формы.
LIST_URL
Адрес страницы для перенаправления пользователя после нажатия на кнопку Сохранить (если данный параметр оставить незаполненным, то пользователь останется на той же странице).
EDIT_URL
Адрес страницы для перенаправления пользователя после нажатия на кнопку Применить (если данный параметр оставить незаполненным, то пользователь останется на той же странице).
CHAIN_ITEM_TEXT
Название дополнительного пункта в навигационной цепочке (если оставить незаполненным, то в навигационную цепочку пункт не добавляется).
CHAIN_ITEM_LINK
Ссылка на дополнительном пункте меню в навигационной цепочке.


Создание новой веб-формы

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание новой веб-формы (упрощённый режим)

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

  1. Перейдите на страницу настроек модуля Веб-формы: Настройки -> Настройки продукта -> Настройки модулей.
  2. Установите флаг в поле "Использовать упрощённый режим редактирования форм" и нажмите кнопку "Сохранить".
  3. Откройте список форм в административном разделе (Сервисы -> Веб-формы -> Настройка форм).
  4. Нажмите кнопку Добавить.
  5. В поле Наименование введите название новой веб-формы.
  6. Укажите порядок сортировки (порядок показа веб-форм в списке). Чем большее значение вы укажете, тем ниже в списке будет показана данная веб-форма.
  7. Создайте названия пунктов меню для административного раздела сайта, ведущих к таблице результатов веб-формы.
  8. Выберите сайт (сайты), на котором будет показана веб-форма.
  9. Если вы хотите, чтобы результаты заполнения веб-формы отправлялись на определённый адрес, установите флаг в поле "Отправлять результаты по email". Почтовый шаблон, с использованием которого будут отсылаться сообщения, будет сгенерирован автоматически после сохранения формы.
    Ссылка "Список шаблонов" позволяет перейти к списку созданных шаблонов. При необходимости вы можете изменить созданный шаблон.
  10. Укажите текст, который будет выводиться на кнопке для отправки результатов веб-формы (например, Сохранить или Отправить).
  11. Для защиты от автоматического заполнения формы отметьте опцию Использовать CAPTCHA.

  12. Перейдите на закладку "Описание".
  13. Загрузите изображение с локального компьютера. Изображение будет показано в публичной части рядом с названием и описанием формы.
  14. Введите описание веб-формы. Описание может быть в виде обычного текста или HTML-кода.
  15. На закладке "Шаблон формы" вы можете создать свой шаблон веб-формы или же использовать шаблон по умолчанию.

  16. Для того чтобы добавить ограничения на результаты заполнения форм, перейдите на закладку "Ограничения". Отметьте опцию "Использовать ограничения" и задайте параметры "Максимальное количество результатов от пользователя" и "Минимальный промежуток времени между результатами".
  17. У вас есть возможность отразить факты заполнения и сохранения форм в модуле статистики через механизм регистрации событий, позволяющий, помимо всего прочего, проследить динамику активности заполнения формы по дням и построить соответствующий график. Для этого перейдите на закладку "Статистика" и задайте идентификаторы типа события для модуля статистики.

  18. Откройте закладку "Доступ".
  19. Настройте права доступа групп пользователей на работу с данной веб-формой. Вы можете назначить следующие права доступа:
    • доступ закрыт;
    • заполнение формы;
    • просмотр и изменение своих результатов;
    • просмотр параметров формы;
    • полный доступ.
  20. Нажмите кнопку "Сохранить", чтобы добавить новую веб-форму и вернуться на список форм, кнопку "Применить", чтобы сохранить изменения и остаться на странице редактирования веб-формы. Чтобы очистить все заполненные поля, нажмите кнопку "Отменить".

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


Создание вопросов веб-формы

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание вопросов веб-формы (упрощённый режим)

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

  1. Откройте административный раздел: Сервисы -> Веб-формы > Настройка форм.
  2. Для формы, вопросы к которой вы хотите создать, в столбце Вопросы нажмите ссылку "+".

  3. На открывшейся форме отметьте, активен ли вопрос.
  4. Укажите порядок сортировки.
  5. Установите флажок в поле Обязателен, если ответ на данный вопрос обязателен.
  6. Если необходимо, загрузите изображение для вопроса с локального компьютера.
  7. Введите текст вопроса в виде обычного текста или HTML-кода. При редактировании можно использовать HTML-редактор.

  8. Выберите тип поля для ответа на данный вопрос. В зависимости от выбранного типа поля укажите необходимые параметры в поле Ответ (в данном случае указана длина поля для ответа на вопрос).
  9. С помощью закладки "Валидаторы" можете назначить имеющиеся валидаторы для выбранного типа поля.
  10. Откройте закладку "Комментарий" и введите служебный комментарий к вопросу.
  11. Для сохранения вопроса нажмите кнопку "Сохранить".


Создание полей веб-формы

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

Для создания поля выполните следующие действия:
  1. Перейдите в полный режим редактирования веб-форм. Для этого откройте страницу настроек модуля веб-форм (Настройки -> Настройки продукта -> Настройки модулей) и снимите флаг в поле "Использовать упрощённый режим редактирования форм". Затем сохраните выполненные настройки с помощью кнопки "Сохранить".
  2. Откройте административный раздел: Сервисы -> Веб-формы > Настройка форм.
  3. Для формы, поля к которой вы хотите создать, в столбце Поля нажмите ссылку "+".
  4. На открывшейся форме установите флажок в поле Активен для того, чтобы значение данного поля отображалось в результатах веб-форм;
  5. Укажите порядок сортировки.
  6. В поле Символьный идентификатор укажите символьный код поля.
  7. Выберите тип данного поля:
    • text (текст)
    • integer (число)
    • date (дата)
  8. Введите заголовок поля.
  9. На закладке "Валидаторы" можете указать один из доступных валидаторов для выбранного типа поля.
  10. Откройте закладку "Результаты".
  11. Отметьте поля Показать в HTML-таблице результатов и Показать в Excel-таблице результатов, если данные, хранимые в этом поле, нужно отображать в соответствующих таблицах результатов и если нужно выводить в фильтре поля для фильтрации результатов по значениям, хранящимся в данном поле. Поля фильтра будут выбраны в соответствии с типом поля:
    • типу text соответствует однострочное текстовое поле фильтра;
    • типу integer соответствует интервал чисел;
    • типу date интервал дат.

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

    • & (логическое И)
    • | (логическое ИЛИ)
    • ~ (логическое отрицание)
    • () круглые скобки

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

  12. В поле Заголовок столбца в таблице вы можете ввести текст, который будет выводиться в таблице результатов в качестве заголовка столбца.
  13. Откройте закладку "Фильтр".
  14. Укажите типы полей для проведения выборки в таблице результатов по значениям данного поля.
  15. В поле Подпись к полю фильтра вы можете ввести текст, который будет выводиться рядом с выбранными полями фильтра по таблице результатов.
  16. На закладке "Комментарий" вы можете ввести служебный комментарий к полю.
  17. Сохраните поле с помощью кнопки "Сохранить" или "Применить".


Настройка статусов веб-формы

  1. Перейдите в полный режим редактирования веб-форм. Для этого откройте страницу настроек модуля веб-форм (Настройки -> Настройки продукта -> Настройки модулей) и снимите флаг в поле "Использовать упрощённый режим редактирования форм". Затем сохраните выполненные настройки с помощью кнопки "Сохранить".
  2. Откройте административный раздел: Сервисы -> Веб-формы > Настройка форм.
  3. Для формы, статусы к которой вы хотите создать, в столбце Статусы нажмите ссылку "+".

  4. На открывшейся форме установите флаг в поле Активен для того, чтобы статус был доступен.
  5. В поле Заголовок введите название статуса.
  6. Добавьте описание статуса.
  7. Укажите порядок сортировки (последовательность, в которой будут показаны статусы при выводе выпадающего списка статусов и в административной части).
  8. В поле CSS класс для отображения заголовка статуса укажите стиль текста, которым будет выводиться заголовок статуса (например, в таблице результатов, при просмотре или редактировании статуса при использовании шаблонов типа default.php).
  9. Также вы можете указать файлы-обработчики смены статусов.

  10. Откройте закладку "Доступ".
  11. Отметьте группы пользователей, которые имеют право на перевод результатов в данный статус. Эти пользователи смогут присвоить результату данный статус. Вы можете отдельно назначить данное право для создателя результата. Для того чтобы пользователи могли воспользоваться этим правом, у них должно быть право на редактирование результата.
  12. Укажите, какие группы пользователей имеют право на просмотр результатов в данном статусе. Члены выбранных групп смогут увидеть результат в данном статусе. Вы можете отдельно назначить данное право для создателя результата.
  13. Определите группы пользователей, которые получат право на редактирование результатов в данном статусе. Вы можете отдельно назначить данное право для создателя результата.
  14. Укажите группы пользователей, члены которых могут удалять результаты в данном статусе. Вы можете отдельно назначить данное право для создателя результата.
  15. Нажмите кнопку "Сохранить", чтобы добавить новый статус.


Контроллер сайтов

Модуль "Контроллер сайтов" предназначен для группового централизованного администрирования, обновления, мониторинга большого количества сайтов, расположенных как на этом же сервере, так и на удаленных серверах, доступных через Интернет:

  1. Хранит список всех локальных сайтов с их характеристиками и настройками.
  2. Предоставляет возможность по управлению любым сайтом (глобальное администрирование) или сразу группой сайтов.
  3. Осуществляет контроль над размерами каждого локального сайта, периодом активности и т.п.
  4. Выполняет процедуру обновления продукта на сайтах клиентах.
  5. Содержит мастера и шаблоны для создания новых сайтов.

Помимо обновления, управления правами и параметрами на клиентских сайтах, контроллер может осуществлять копирование/удаление файлов на локальных сайтах, удаленно выполнять произвольные PHP-скрипты, быть сервером для единой авторизации и еще множество других операций.

Логически каждый сайт, подключенный к контроллеру, имеет следующий минимальный набор характеристик:

  • набор установленных модулей продукта (редакцию);
  • бюджет локального администратора и набор его прав доступа внутри данного сайта.

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

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


Управление подчиненными сайтами

В этом разделе

Фильтр
Контекстная панель
Список сайтов

На данной странице (Сервисы -> Контроллер -> Сайты) представлен список сайтов, подключенных к сайту-контроллеру.

Фильтр

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

Поле | Описание
Название | Поиск сайта-клиента по его названию.
ID | Поиск клиента по его идентификатору.
URL сайта | URL-адрес клиента.
Группа | Отбор клиентов, относящихся к указанной группе. Если выбрано значение любая, то будут отображены клиенты, относящиеся ко всем группам.
Уникальный код | Поиск клиента по его уникальному коду.
Активен | Отображение только активных клиентов либо только неактивных клиентов, либо всех клиентов.
Отсоединенный | Отображение только присоединенных клиентов либо только отсоединенных клиентов, либо всех клиентов.
Период изменения | Поиск клиентов, настройки которых были изменены в указанный период.
Период создания | Поиск клиентов, которые были созданы в указанный период времени.
Активен с | Отбор клиентов, активность которых началась в заданный период времени.
Активен по | Отбор клиентов, активность которых закончилась в заданный период времени.

Для того чтобы отфильтровать клиенты по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех клиентов нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Добавить | Служит для добавления нового клиента.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список сайтов

Колонка | Описание
Колонка флажков | Поле предназначено для выбора клиентов, к которым предполагается применить какое-либо действие.
Меню
действий
 При нажатии на кнопку действий конкретного клиента отображается меню, позволяющее:
  • Редактировать - отредактировать параметры сайта;
  • Войти как Администратор - переход в публичный раздел сайта-клиента в качестве администратора;
  • Обновить сайт - установка обновлений на сайт клиента;
  • Обновить настройки - выполнение установки настроек на сайт клиента;
  • Выполнить PHP - переход на страницу удаленного выполнения команды для данного сайта;
  • Лог операций - переход на страницу журнала работы контроллера с установленным фильтром на данном клиенте;
  • Отсоединить - отключение клиента от контроллера;
  • Удалить - удаление записи данного клиента.
Дата изменения | Дата и время проведения последнего изменения клиента.
Кем изменено | Логин, имя и фамилия пользователя, проводившего последнее изменение клиента.
Название | Название клиента.
URL сайта | URL-адрес сайта-клиента.
Группа | Группа, к которой относится клиент.
Отключен | Отметка о том, что клиент присоединен или отсоединен от контроллера.
Акт. | Признак активности клиента.
Активен с | Дата и время начала активности клиента.
Активен по | Дата и время окончания активности клиента.
Дата создания | Дата и время создания клиента.
Кем создана | Логин, имя и фамилия пользователя, который создал клиента.
Уникальный код | Уникальный код клиента.
Общ.ядро | Признак общности ядра контроллера и клиента.
Заметки | Произвольное описание клиента.
ID | Идентификатор клиента.
© «Битрикс» 2001-2008, «1С-Битрикс» 2008 1С-Битрикс: Управление сайтом


Создание и редактирование сайта

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание и редактирование сайта (клиента)

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

    Форма, размещенная на данной странице, предназначена для регистрации новых клиентов и редактирования параметров существующих.

    Контекстная панель

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

    Форма редактирования

    Поле | Описание
ID | Идентификатор сайта-клиента. Данное поле отображается только при редактировании существующего клиента и изменению не подлежит.
Отсоединен от контроллера | Отметка о том, что клиент отсоединен от контроллера. Данное поле отображается только при редактировании существующей записи о клиенте и изменению не подлежит.
Дата создания | Дата и время, а также логин, имя и фамилия пользователя, который зарегистрировал клиента. Данное поле отображается только при редактировании существующего клиента.
Последнее изменение | Дата и время, а также логин, имя и фамилия последнего пользователя, изменившего параметры клиента. Данное поле отображается только при редактировании существующего клиента.
*Название | Название клиента.
*Уникальный код | Уникальный код клиента, генерируемый автоматически.
*URL клиента | URL-адрес клиента.
*Группа | Указывается группа, к которой принадлежит клиент.
*Логин администратора подключаемого сервера | Логин администратора подключаемого сайта-клиента. Данное поле отображается только при регистрации нового клиента.
*Пароль администратора подключаемого сервера | Пароль администратора подключаемого сайта-клиента. Данное поле отображается только при регистрации нового клиента.
Активен (открыт для доступа посетителям) | Признак активности клиента. Для того чтобы сайт-клиент был открыт для доступа посетителям, необходимо отметить данную опцию.
Период активности | Указывается период, в течение которого активен клиент.
Общее ядро | При отмеченной опции будет использована жесткая привязка клиента к контроллеру: локальные сайты не содержат ядра продукта, а используют подключенное символическими ссылками (symlink) общее ядро (мастер-копию) с головного сайта. В противном случае будет использована мягкая привязка: сайт подключается со своим ядром.
Описание | Произвольное описание клиента.

    * Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров клиента. Возврат к списку клиентов контроллера.
Применить | Сохранение внесенных изменений. Продолжение редактирования параметров клиента.
Отменить | Отмена внесенных изменений. Возврат первоначальных значений параметров.
    © «Битрикс» 2001-2008, «1С-Битрикс» 2008 1С-Битрикс: Управление сайтом


Управление группами сайтов

В этом разделе

Фильтр
Контекстная панель
Список групп

На странице Управление группами сайтов (Сервисы -> Контроллер -> Группы) представлена таблица, содержащая список групп сайтов-клиентов. Страница служит для добавления новых групп, а также для перехода к редактированию существующих.

Фильтр

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

Поле | Описание
Название | Поиск группы по ее названию.
ID | Поиск группы по ее идентификатору.
Период изменения | Данное поле позволяет найти группы, которые были изменены в указанный период.
Период создания | Отбор групп, которые были созданы в указанный период.

Для того чтобы отфильтровать группы по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех групп нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Добавить | Служит для добавления новой группы сайтов.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список групп

Колонка | Описание
Колонка флажков | Поле предназначено для выбора групп сайтов, к которым предполагается применить какое-либо действие.
Меню
действий
 При нажатии на кнопку действий конкретной группы отображается меню, позволяющее:
  • Редактировать - отредактировать группу сайтов;
  • Удалить - удалить группу.
    Примечание: удаление группы, к которой относится хотя бы один сайт, а также группы, используемой по умолчанию, невозможно.
Название | Название группы.
Дата изменения | Дата и время проведения последней модификации группы.
Кем изменено | Логин, имя и фамилия пользователя, проводившего последнее изменение группы.
Дата создания | Дата и время создания группы сайтов.
Кем создана | Логин, имя и фамилия пользователя, создавшего группу.
Описание | Произвольное описание группы сайтов.
ID | Идентификатор группы.
© «Битрикс» 2001-2008, «1С-Битрикс» 2008 1С-Битрикс: Управление сайтом


Создание и редактирование группы

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Параметры
  • Модули
  • Настройки модулей
  • Права доступа
  • Дополнительно
    •
  • Кнопки управления
    •

    Контекстная панель

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

    Форма редактирования

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

    Вкладка "Параметры"
    Поле | Описание
ID | Идентификатор группы. Данное поле отображается только при редактировании существующей группы и изменению не подлежит.
Дата создания | Дата и время, а также логин, имя и фамилия пользователя, создавшего группу. Данное поле отображается только при редактировании существующей группы.
Последнее изменение | Дата и время, а также логин, имя и фамилия последнего пользователя, изменившего параметры группы. Данное поле отображается только при редактировании существующей группы.
*Название | Название группы.
Описание | Произвольное описание группы.
Обновление настроек у сайтов данной группы
Период автоматического обновления установок на клиенте, минут | Указывается интервал (в минутах), через который происходит автоматическое обновление всех настроек клиента. Если указано значение "0", то настройки автоматически обновляться не будут. Если данное поле оставлено пустым, то будет использовано значение по умолчанию, указанное в настройках модуля.
Обновить настройки у сайтов данной группы сразу после сохранения | При отмеченной опции настройки клиентов данной группы будут обновлены сразу после сохранения (будет выполнена задача Установить групповые настройки). Данная опция отображается только при редактировании существующей группы.

    * Поля, обязательные для заполнения.

    Вкладка "Модули"
    Поле | Описание
Установленные модули | При отмеченной опции станет доступным список модулей. На клиентах группы будут установлены только отмеченные в списке модули, а остальные - деинсталлированы. Если же данная опция не отмечена, то на клиентах будут установлены все модули. При отсоединении клиента от контроллера его деинсталлированные модули будут проинсталлированы.
    Вкладка "Настройки модулей"

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

    Поле | Описание
    Главный модуль
    Автокеширование компонентов | Включение или отключение автокеширования на клиенте.
    Режим вывода ошибок (error_reporting) Определяет, какие сообщения об ошибках в работе системы клиентов будут выводиться на экран (обычно используется для отладки):
    • Только ошибки - выводить сообщения только об ошибках;
    • Ошибки и предупреждения - выводить сообщения об ошибках, а также предупреждения о возможности возникновения ошибки;
    • Не выводить - не показывать сообщения об ошибках.
    E-Mail адрес или список адресов через запятую на который будут дублироваться все исходящие сообщения | Все почтовые сообщения сайта-клиента будут дублироваться на указанный e-mail адрес (адреса).
    Дисковая квота | При необходимости вы можете задать ограничение (в Мб) на дисковое пространство.
    Регистрация
    Позволять ли пользователям регистрироваться самостоятельно | Определяет, могут ли посетители самостоятельно регистрироваться на сайте-клиенте.
    Разрешить запоминание авторизации | Определяет, выводить ли флажок "Запомнить меня на этом компьютере" в форме авторизации.
    Использовать CAPTCHA при регистрации | Использовать специальный текст для различия человека и программы при создании запроса на регистрацию в системе клиента.
    Использовать Компоненты 2.0 для авторизации и регистрации | При отмеченной опции для авторизации и регистрации будут использованы Компоненты 2.0.
    Обновление
    Имя сервера, содержащего обновления | Имя сервера, с которого выполняется обновление клиента.
    Адрес прокси для системы обновлений | Адрес прокси-сервера, через который выполняется доступ к серверу обновлений.
    Порт прокси для системы обновлений | Адрес порта, по которому выполняется доступ к системе обновлений через прокси-сервер.
    Имя пользователя прокси | Имя пользователя для доступа к прокси-серверу.
    Пароль прокси | Пароль для доступа к прокси-серверу.
    Усиленная проверка корректности установки обновлений | Флаг в этом поле позволяет выполнять проверку корректности установки обновлений. При копировании файлов из промежуточной папки /updates/ в папки модулей будет выполняться проверка контрольной суммы. Если полученная контрольная сумма не соответствует исходной, то выводится сообщение о некорректной установке обновлений.
    Загружать только стабильные обновления | При отмеченной опции в системе обновлений будут загружаться только стабильные версии. При снятой опции - бета-версии.
    Управление структурой
    Доступные в виз. редакторе компоненты | Перечень компонентов, которые доступны в визуальном редакторе клиентов.
    Вкладка "Права доступа"
    Поле | Описание
Отнимать полный доступ у Администраторов | При отмеченной опции будет отнят полный доступ у администраторов сайтов-клиентов, а назначены те права, которые указаны в нижеследующем поле.
Права доступа локальных групп на удаленных сайтах | 1. Указывается название локальной группы, права доступа которой необходимо настроить. 2. Отмечаются флагом те модули, на которых будут настроены права данной группы. 3. Для отмеченного модуля из выпадающего списка выбирается тот уровень прав, которым должна обладать группа. Примечание: Если будет выбран уровень доступа, который не существует на клиенте, то будет создан. Если на клиенте уже существует уровень с таким же именем (пусть уровень А), то он будет обновлен (будет уровень А*). Когда для данного модуля будет назначен другой уровень доступа (например, уровень В), то в список уровней доступа клиента будет возвращен уровень А, а уровень А* с клиента будет удален и добавлен уровень В.

    Клик по ссылке Настроить права доступа для еще одной группы... добавляет поля для настройки прав доступа для еще одной локальной группы.

    Вкладка "Дополнительно"
    Поле | Описание
Произвольный PHP-скрипт для выполнения при установке данной групповой политики | Задается php-скрипт, который будет выполнен на клиентах группы при проведении установки групповых настроек.
Произвольный PHP-скрипт для выполнения при отмене данной групповой политики | Задается php-скрипт, который выполняется при отсоединении клиента.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров группы. Возврат к списку групп клиентов.
Применить | Сохранение внесенных изменений. Продолжение редактирования параметров группы.
Отменить | Отмена внесенных изменений. Возврат первоначальных значений параметров.
    © «Битрикс» 2001-2008, «1С-Битрикс» 2008 1С-Битрикс: Управление сайтом


Задачи для выполнения на клиентах контроллера

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Задачи для выполнения на клиентах контроллера сайтов

В этом разделе

Фильтр
Контекстная панель
Список задач

На данной странице представлен список задач, выполняемых на клиентах контроллера. Могут быть выполнены следующие задачи:
  • установка групповых настроек;
  • обновление сайта;
  • обновление счетчика;
  • выполнение команды;
  • закрытие/открытие клиентов.

Фильтр

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

Поле | Описание
Статус выполнения | Поиск задач по статусам их выполнения. Возможен множественный выбор статусов.
ID | Поиск задачи по ее идентификатору.
Клиент | Название клиента, на котором должны выполниться (выполнялись) задачи.
Операция | Поиск задачи по названию. Если выбрано значение любая, то будут отображены все задачи.
Период выполнения | Отбор задач, с указанным периодом их выполнения.
Период изменения | Отбор задач, с указанным периодом их изменения.
Период создания | Отбор задач, с указанным периодом их создания.

Для того чтобы отфильтровать задачи по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех задач нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Обновить список | Обновляет список задач.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список задач

Колонка | Описание
Колонка флажков | Поле предназначено для выбора задач, к которым предполагается применить какое-либо действие.
Меню
действий
 При нажатии на кнопку действий конкретной задачи отображается меню, позволяющее:
  • Повторить - повторить выполнение задачи.
  • Отменить - удалить задачу из списка.
Клиент | Название клиента, на котором выполнена задача.
Задача | Название задачи.
Состояние | Один из статусов выполнения задачи: новая, выполнена частично, успешно выполнена или ошибка выполнения.
Выполнено | Дата и время выполнения задачи.
Аргумент | Аргумент задачи. Например, для задачи Выполнить команду в качестве аргумента выступает php-скрипт.
Результат | Указывается результат выполнения задачи или описание ошибки выполнения задачи.
URL клиента | URL-адрес клиента.
Дата изменения | Дата и время изменения задачи.
Дата создания | Дата и время создания задачи.
ID | Идентификатор задачи.
© «Битрикс» 2001-2008, «1С-Битрикс» 2008 1С-Битрикс: Управление сайтом


Журнал работы контроллера

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Журнал работы контроллера сайтов

В этом разделе

Фильтр
Контекстная панель
Список записей журнала

Форма Журнал работы контроллера сайтов отображает все события, связанные с функционированием контроллера и его клиентов.

Фильтр

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

Поле | Описание
Название | Название выполненной работы сайтом-контроллером.
Статус | Поиск можно задать по успешно выполненной работе или по работе, выполненной с ошибками, или по всем работам на контроллере.
Описание | Описание выполненной работы контроллером.
ID | Поиск по идентификатору записи журнала.
Клиент | Название клиента, на котором выполнялась работа.
ID клиента | Поиск записи работы контроллера по идентификатору контроллера.
Задача | Название задачи, выполняемой на клиентах контроллера.
ID задачи | Идентификатор задачи.
Период создания | Поиск записей журнала по периоду их создания.

Для того чтобы отфильтровать записи по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех записей нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список записей журнала

Колонка | Описание
Колонка флажков | Поле предназначено для выбора записей, к которым предполагается применить какое-либо действие.
Меню
действий
 При нажатии на кнопку действий конкретной записи отображается меню, позволяющее:
  • Удалить - удалить запись журнала.
Дата добавления | Дата добавления записи в журнал (дата выполнения работы).
Название | Название выполненной работы сайтом-контроллером.
Клиент | Указывается название сайта-клиента и его идентификатор, для которого выполнялась работа.
Статус | Статус выполнения работы: успешно или с ошибками.
Задача | Идентификатор и название задачи, выполненной на клиенте.
Пользователь | Логин, имя и фамилия пользователя, выполнившего работу на контроллере.
Описание | Описание выполненной работы или произошедшей ошибки.
ID | Идентификатор записи журнала.
© «Битрикс» 2001-2008, «1С-Битрикс» 2008 1С-Битрикс: Управление сайтом


Обновление сайтов

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

Если сайт-клиент имеет свое ядро, то для его обновления необходимо перейти на страницу Сервисы -> Контроллер -> Обновление сайтов, выбрать клиент и нажать кнопку меню действий Обновить сайт. Запись об этой операции будет отображена на странице со списком задач, причем в поле Результат будут перечислены обновленные модули.

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


Удаленная командная PHP-строка

Расположенная на данной странице форма служит для задания php-скрипта, который будет выполняться на удаленном сервере.

Форма фильтра

Поле | Описание
Сайт | Выбирается сайт, на котором будет выполнен скрипт. При выборе значения все скрипт будет выполнен на всех сайтах указанной группы.
Группа | Выбирается группа, на сайте (сайтах) которой должен быть выполнен скрипт.

Вкладка "PHP-скрипт"

Поле | Описание
[поле типа textarea] | Поле служит для ввода произвольного php-скрипта.
Выполнить через планировщик задач | При отмеченной опции команда будет выполнена не сразу, а поставлена в очередь задач.

Кнопки управления

Поле | Описание
Выполнить | Выполнение указанного в поле скрипта или постановка задачи в очередь.
Очистить | Очистка поля для создания нового скрипта.
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


Настройки

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Настройки модуля

Данная форма (Настройки -> Настройки продукта -> Настройки модулей -> Контроллер) предназначена для задания общесистемных параметров модуля "Контроллер сайтов".

Закладка "Настройки"

Поле | Описание
Группа по умолчанию для присоединяющихся сайтов | Название группы, к которой будут присоединяться сайты при их присоединении к контроллеру.
Интервал для автоматической установки групповых настроек на клиентские сайты, по умолчанию, минут | Задается интервал по умолчанию (в минутах) для автоматической установки групповых настроек на клиентские сайты. Если указано "0", то настройки клиентов не будут обновляться автоматически.
Путь к папке с общим ядром (относительно корня сайта-контроллера) | Для возможности обновления клиентов с общим файловым ядром продукта, необходимо указать путь к папке с общим ядром.

Закладка "Доступ"

Данная форма служит для определения прав групп пользователей на доступ к модулю "Контроллер сайтов".

Поле | Описание
По умолчанию | Управление уровнем доступа групп пользователей, для которых установлено право "по умолчанию".
[Группа пользователей] Управление правом доступа отдельных групп пользователей. Возможны следующие уровни доступа:
  • Доступ запрещен - доступ к модулю закрыт;
  • Только чтение - разрешается только просмотр файлов и параметров модуля;
  • Добавление новых сайтов - добавление новых сайтов, позволяет безопасно вводить имя-пароль на клиентских машинах при присоединении;
  • Управление сайтами - управление сайтами, т.е. их добавление, обновление, отсоединение, административный вход на них, просмотр журнала работы. Нельзя удалять сайты и изменять групповые настройки;
  • Полный доступ - полный доступ без каких-либо ограничений.


Реклама

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

Можно ограничить период показа баннера, указать количество показов, отметить, на каких страницах и в каких разделах сайта баннер будет показан, а на каких – запрещён к показу.

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

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

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

  • Рекламный блок - определённый тип рекламы, который отображается в одной, либо нескольких рекламных областях.
  • Рекламная область - место в основном шаблоне сайта для показа рекламы того или иного типа.

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


Графики, реклама

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Графики

В этом разделе

  • Графики по баннерам
  • Фильтр
  • Пример графика
    •
  • Графики по контрактам
  • Фильтр
  • Пример графика
    •

    Система 1С-Битрикс: Управление сайтом позволяет наглядно оценить с помощью графиков ход и результаты проведения рекламной компании как по отдельным баннерам, так и в рамках определённого контракта на показ рекламы. Построение графиков выполняется в соответствующих разделах модуля Реклама:

    • Графики по баннерам: Сервисы -> Реклама -> Отчеты -> Графики по баннерам;
    • Графики по контрактам: Сервисы -> Реклама ->Отчеты -> Графики по контрактам.

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

    Графики по баннерам

    Фильтр

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

    Параметр | Описание
    Период | Период времени, данные за который будут использованы при построении графика. Если значение поля не указано, то для построения графика будут использованы данные за весь доступный период.
    *Что показывать Укажите, какие данные должны быть отображены на графике:
    • посетители;
    • показы;
    • клики;
    • CTR.
    *Баннеры Вы можете выбрать один и более баннеров, динамику по которым необходимо отобразить на графике.
    В выпадающем списке вы можете выбрать тип графика:
    • суммарный график – означает, что для всех выбранных баннеров будет построен один суммарный график;
    • отдельные графики – означает, что для каждого выбранного баннера будет построен отдельный график.
    Группы Данное поле позволяет построить график для одной или нескольких групп баннеров.
    В выпадающем списке вы можете выбрать тип графика:
    • суммарный график – означает, что для всех выбранных групп баннеров будет построен один суммарный график;
    • отдельные графики – означает, что для каждой выбранной группы баннеров будет построен отдельный график.

    * Обязательные параметры.

    Для того чтобы построить график на основе выбранных параметров, нажмите кнопку "Найти". Для сброса значений параметров нажмите кнопку "Отменить".

    Пример графика показов

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

    Графики по контрактам

    Фильтр

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

    Параметр | Описание
    Период | Период времени, данные за который будут использованы при построении графика. Если значение поля не указано, то для построения графика будут использованы данные за весь доступный период.
    *Что показывать Укажите, какие данные должны быть отображены на графике:
    • посетители;
    • показы;
    • клики;
    • CTR.
    *Контракты Выбор контракта подразумевает построение одного графика по всем баннерам, приписанным к данному контракту. В выпадающем списке вы можете выбрать тип графика:
    • суммарный график – означает, что для всех выбранных контрактов будет построен один суммарный график;
    • отдельные графики – означает, что для каждого выбранного контракта будет построен отдельный график.

    * Обязательные параметры.

    Для того чтобы построить график на основе выбранных параметров, нажмите кнопку "Найти". Для сброса значений параметров нажмите кнопку "Отменить".

    Пример графика CTR

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

    См. также Диаграммы


Графики, реклама

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Диаграммы

В этом разделе

  • Диаграммы по баннерам
  • Фильтр
  • Пример диаграммы
    •
  • Диаграммы по контрактам
  • Фильтр
  • Пример диаграммы

    • Система 1С-Битрикс: Управление сайтом позволяет представить результаты проведения рекламных компаний в виде диаграмм. Построение диаграмм выполняется в соответствующих разделах модуля Реклама:

    • Диаграммы по баннерам: Сервисы -> Реклама -> Отчеты -> Диаграммы баннеров;
    • Диаграммы по контрактам: Сервисы -> Реклама -> Отчеты -> Диаграммы контрактов.

    Диаграммы позволяют наглядно сравнить количество посетителей, просмотревших различную рекламу, количество показов и кликов, а также индекс отклика на рекламу (CTR). Период времени, в течение которого выполняется хранение данных, используемых для построения диаграмм, определяется в настройках модуля Реклама.

    Диаграммы по баннерам

    Фильтр

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

    Параметр | Описание
    Период | Период времени, данные за который будут использованы при построении диаграммы. Если значение поля не указано, то для построения диаграммы будут использованы данные за весь доступный период.
    *Что показывать Укажите, какие данные должны быть отображены на диаграмме:
    • посетители;
    • показы;
    • клики;
    • CTR.
    Диаграмма по каждому типу данных будет представлена на отдельной закладке.
    *Баннеры | Вы можете выбрать баннеры, данные по которым необходимо отобразить на диаграмме. Для построения диаграммы необходимо выбрать хотя бы два баннера в списке.
    Группы | Дополнительно вы можете построить диаграммы по группам баннеров. Для этого нужно выбрать группы, данные по которым необходимо отобразить на диаграмме. Для построения диаграммы необходимо выбрать хотя бы две группы в списке.

    * Обязательные параметры.

    Для того чтобы построить диаграмму на основе выбранных параметров, нажмите кнопку "Найти". Для сброса значений параметров нажмите кнопку "Отменить".

    Пример диаграммы показов

    Диаграммы по контрактам

    Фильтр

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

    Параметр | Описание
    Период | Период времени, данные за который будут использованы при построении диаграммы. Если значение поля не указано, то для построения диаграммы будут использованы данные за весь доступный период.
    *Что показывать Укажите, какие данные должны быть отображены на диаграмме:
    • посетители;
    • показы;
    • клики;
    • CTR.
    Диаграмма по каждому типу данных будет представлена на отдельной закладке.
    *Контракты | Выберите контракты, данные по которым должны быть отображены на диаграмме.

    * Обязательные параметры.

    Для того чтобы построить график на основе выбранных параметров, нажмите кнопку "Найти". Для сброса значений параметров нажмите кнопку "Отменить".

    Пример диаграммы посетителей

    Примечание. Если баннеры отсутствуют, то диаграммы не выводятся.


Баннеры

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список баннеров
    •

    На странице Баннеры (Сервисы -> Реклама -> Баннеры) представлен список рекламных баннеров, имеющихся на сайте.

    Рекламный баннер – это графическое изображение или текстовый блок рекламного характера, клик на котором обычно приводит к открытию страницы с описанием рекламируемого товара или услуги. Баннер в системе 1С-Битрикс: Управление сайтом характеризуется следующими признаками:

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

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

    • подтвержден – в данном статусе баннер доступен для показа на сайте;
    • на рассмотрении – данный статус не позволяет показывать баннер на сайте и означает, что баннер необходимо либо перевести в статус подтвержден, либо в статус отклонен;
    • отклонен – в данном статусе баннер не может быть показан на сайте.

    При переводе баннера в тот или иной статус можно указать причину смены статуса в поле Комментарий к статусу.

    Отклик баннера (CTR) – отношение числа кликов на баннер к числу показов этого баннера. Выражается в процентах и рассчитывается по следующей формуле: (K * 100) / S, где K – число кликов на баннер, S – число показов баннера. Баннер с CTR выше 10% считается очень удачным.

    Вес баннера - число, влияющее на вероятность выбора баннера при показе. При показе баннера в публичной части сайта сначала выбирается контракт, баннер которого будет показан. При этом, чем выше вес контракта, тем больше вероятность того, что данный контракт будет выбран. После того, как определён контракт, система выбирает баннер, принадлежащий данному контракту. Чем выше вес баннера, тем больше вероятность выбора данного баннера для показа.

    Группа баннера– баннеры, обладающие каким-либо общим признаком (например, рекламируемый объект), могут быть объединены в группу. Название группы задается произвольно. Группировка баннеров применяется для удобства управления баннерами, а также при построении отчетов по рекламным компаниям.

    Форма поиска

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

    Поле | Описание
    *ID | Идентификатор баннера.
    Индикатор Поле позволяет отобрать баннеры по значению индикатора:
    • – баннер неактивен (например, истек заданный период активности);
    • – баннер активен.
    На значение данного индикатора влияет индикатор контракта, к которому принадлежит баннер. Если контракт имеет красный индикатор (контракт не активен), то все баннеры данного контракта будут также иметь красный индикатор.
    Статус | Статус баннера.
    Сайты | Сайты, для показа на которых предназначен баннер.
    Посетителей | Интервал количества посетителей, просмотревших тот или иной баннер.
    Показано | Интервал количества показов баннера.
    Кликнули | Интервал количества кликов на баннер.
    Отклик баннера (CTR) (%) | Интервал значений показателя отклика баннера.
    *Группа | Группа, к которой относиться баннер.
    *Контракт | Контракт баннера.
    *Тип | Тип баннера.
    *Имя | Имя баннера.
    *Код | Код баннера.
    *Комментарий | Комментарий к баннеру.

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

    Для того чтобы отобрать баннеры по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех баннеров нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить баннер | Переход к форме создания нового баннера.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список баннеров

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора баннеров, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над баннером:
    • Изменить - редактирование баннера;
    • Просмотреть - просмотр параметров баннера;
    • График CTR - просмотр графика отклика для данного баннера;
    • Копировать - копирование баннера в новый;
    • Удалить баннер - удаление баннера.
    ID | Идентификатор баннера.
    Инд. Индикатор активности баннера:
  • – баннер неактивен (например, истек заданный период активности);
  • – баннер активен.
    • На значение данного индикатора влияет индикатор контракта, к которому принадлежит баннер. Если контракт имеет красный индикатор (контракт не активен), то все баннеры данного контракта будут также иметь красный индикатор.
    Сайты | Сайты, на которых может быть показан данный баннер.
    Акт. Признак активности баннера:
    • Да - баннер активен;
    • Нет - баннер неактивен.
    Вес | Относительный "вес" баннера, влияющий на вероятность выбора баннера для показа на сайте.
    Имя | Имя баннера.
    Группа | Группа, к которой принадлежит данный баннер.
    Тип | Название типа баннера.
    Контракт | Название контракта, к которому приписан баннер.
    Статус | Текущий статус баннера.
    Посетителей | Количество посетителей, просмотревших баннер.
    Посетителей макс. | Максимальное число посетителей, для которых будет показан баннер.
    Показано | Количество выполненных показов баннера.
    Максим. показов | Максимально число показов баннера, при достижении которого баннер становится неактивным.
    Последний показ | Дата и время последнего показа баннера.
    Кликнули | Количество кликов по данному баннеру.
    Максим. кликов | Максимальное число кликов на баннер, при достижении которого баннер становится неактивным.
    Последний переход | Дата и время последнего перехода по баннеру.
    CTR (%) | Значение показателя отклика данного баннера.
    Дата первого показа | Дата и время первого показа баннера.
    Равномерность ротации | Отметка о равномерности показа баннеров.


Создание и редактирование баннера

В данном разделе

  • Контекстная панель
  • Форма редактирования
  • Баннер
  • Ограничения
  • Таргетинг
  • Статистика
  • Комментарий
    •
  • Кнопки управления
    •

    Контекстная панель

    Кнопка | Описание
Список | Переход на страницу со списком баннеров.
График CTR баннера | Просмотр графика отклика для данного баннера.
Просмотреть баннер | Переход к форме просмотра параметров баннера
Добавить баннер | Переход к форме создания нового баннера. Кнопка отображается при редактировании существующего баннера.
Копировать баннер | Копирование текущего баннера в новый. Кнопка отображается при редактировании существующего баннера.
Удалить баннер | Удаление редактируемого баннера.

    Форма редактирования

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

    Закладка "Баннер"

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

    Поле | Описание
    Статус баннера Индикатор, определяющий статус показа баннера:
  • - баннер не показывается;
  • - баннер показывается.
    • Поле отображается в режиме редактирования существующего баннера.
    Создан Дата и время создания баннера, а также имя пользователя, создавшего баннер.

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

    Поле отображается только в режиме редактирования существующего баннера.
    Контракт | Контракт, к которому приписывается баннер. Перечень доступных контрактов представлен в виде поля со списком.
    Активен | Признак активности баннера. Для показа в публичном разделе доступны только активные баннеры.
    Интервал показа | Период времени, в течение которого баннер может показываться на сайте. По истечении этого периода, баннер становится не активным.
    Имя | Произвольное имя баннера.
    Группа | Произвольная группа баннера (в выпадающем списке вы можете выбрать одну из ранее созданных групп).
    Тип | Тип баннера.
    Вес (приоритет) | Относительный "вес", влияющий на вероятность выбора баннера для показа в публичном разделе сайта.
    Что показывать
    Изображение | Поле для загрузки изображения с локального компьютера. Это изображение будет показываться в виде баннера.
    Текст всплывающей подсказки | Текст подсказки, которая будет появляться при наведении указателя мыши на изображении.
    Flash-баннер не содержит ссылку Установка флага в данное поле позволяет при нажатии на flash-баннер выполнять переход по ссылке, указанной в поле URL для перехода при клике на изображении, а также выполнять регистрацию события клика по баннеру в модуле статистики.

    Обратите внимание!
    Выбор данной опции накладывает ограничения на использование интерактивности flash-баннеров. Т.е. если flash-баннер содержит некоторую интерактивность (например, появление сообщения или эффекта движения при наведении указателем мыши на баннер), то при выборе этой опции данная интерактивность будет недоступна.

    URL для перехода при клике на изображении | Адрес страницы, которая будет открыта по клику на баннере.
    Где развернуть URL <a target= Параметр, определяющий, в каком окне будет показана страница, открытая по клику на баннер:
    • _self – открыть в текущем окне (по умолчанию);
    • _blank – открыть в новом окне;
    • _parent – открыть в своем фрейме;
    • _top - во всем текущем окне браузера.
    Код баннера
    Код баннера - произвольный текст или HTML-код, который будет отображаться в качестве баннера.

    В коде баннера можно использовать макросы #RANDOM1#, #RANDOM2#, #RANDOM3#, #RANDOM4#, #RANDOM5#, которые будут заменены случайными числами в момент показа в публичной части сайта данного кода. Также можно использовать следующие шаблоны:
    • #BANNER_NAME# - имя баннера;
    • #BANNER_ID# - ID баннера;
    • #CONTRACT_ID# - ID контракта;
    • #TYPE_SID# - тип баннера.
    Статус баннера
    Статус Статус баннера, определяющий возможность показа баннера на сайте:
    • подтвержден – в данном статусе баннер доступен для показа на сайте;
    • на рассмотрении – данный статус не позволяет показывать баннер на сайте и означает, что баннер необходимо либо перевести в статус подтвержден, либо в статус отклонен;
    • отклонен – в данном статусе баннер не может быть показан на сайте.
    Комментарий к статусу | Пояснение к изменению статуса баннера.
    Оповестить об изменении статуса владельцев контракта | Если данная опция выбрана, то при изменении статуса баннера владельцу контракта, к которому относится баннер, будет отправлено почтовое сообщение по шаблону Изменился статус баннера.
    Закладка "Ограничения"

    Данная форма служит для задания ограничений на показ баннера.

    Поле | Описание
    Фиксировать число показов баннера | Выбор этого флажка позволяет фиксировать число показов баннера.
    Показывать баннеры с равномерной скоростью При отмеченной опции баннер будет показываться с равномерной скоростью.
    Если данная опция отмечена, то необходимо настроить следующие параметры:
    • указать интервал показа;
    • отметить опцию фиксировать число показов баннера;
    • задать максимальное число показов баннера.
    Максимальное число посетителей, для которых будет показан баннер Максимальное число посетителей, для которых будет показан баннер.

    При редактировании баннера рядом с данным полем отображается число посетителей, которым был показан баннер. Для того чтобы обнулить показатели счетчика, установите флаг в поле сбросить и нажмите кнопку "Применить".
    Максимальное число показов данного баннера одному посетителю | В данном поле вы можете установить ограничение на число показов баннера одному посетителю. Считается, что оптимальным количество показов баннера одному посетителю равно 4.
    Максимально число показов баннера Максимально число показов баннера, при достижении которого баннер становится неактивным.

    При редактировании баннера рядом с данным полем отображается число выполненных показов баннера. Для того чтобы обнулить показатели счетчика, установите флаг в поле сбросить и нажмите кнопку "Применить".
    Фиксировать клики на данный баннер | Выбор данной опции позволяет регистрировать клики по баннеру в модуле статистики.
    Максимальное число кликов на баннер Максимальное число кликов на баннер, при достижении которого баннер становится неактивным.

    При редактировании баннера рядом с данным полем отображается число выполненных кликов по баннеру. Для того чтобы обнулить показатели счетчика, установите флаг в поле сбросить и нажмите кнопку "Применить".
    Отклик баннера (CTR) (%) | Значение показателя отклика данного баннера.
    Закладка "Таргетинг"

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

    Поле | Описание
    Сайты | Сайты, на которых будет показываться баннер.
    Разделы и страницы, на которых баннер обязательно будет показан Адреса разделов или страниц сайта, на которых должен показываться баннер. Например: /ru/catalog/ или/ru/catalog/index.php.

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

    Адреса страниц могут быть заданы с использованием параметров. Каждый адрес раздела или страницы должен начинаться с новой строки.
    Ключевые слова Ключевые слова для баннера, влияющие на возможность показа баннера на страницах сайта:
    • Если для страницы сайта заданы желательные ключевые слова, то баннер будет показан на странице в том случае, если хотя бы одно ключевое слово баннера присутствует в наборе желательных ключевых слов страницы;
    • Если для страницы сайта заданы обязательные ключевые слова, то баннер будет показан на странице в том случае, если набор ключевых слов баннера совпадает с набором обязательных ключевых слов страницы.
    Более подробная информация приводится в руководстве Управление показом баннеров с помощью ключевых слов.
    Группы пользователей | С помощью данного поля вы можете выбрать группы пользователей, для которых будет (или не будет) показываться данный баннер. Для этого выберите необходимые группы пользователей и установите переключатель в одно из значений: или Не показывать баннер для выбранных групп.
    Показывать только для посетителей следующих стран | Страны, посетителям из которых будет показываться данный баннер.
    Показать только для посетителей, приходящих по следующим рекламным кампаниям Поле доступно только администраторам модуля.

    Это поле позволяет выполнять показ баннера для посетителей, пришедших по определённой рекламной компании. Регистрация рекламных компаний выполняется с помощью модуля статистики.
    Показывать посетителям В данном поле вы можете выбрать, каким посетителям показывать баннер:
    • всем - показывать баннер всем посетителям сайта;
    • только новым - показывать баннер пользователям, впервые пришедшим на сайт;
    • только вернувшимся - показывать баннер пользователям, вернувшимся на сайт.
    Время и дни недели для показа | Часы и дни недели, по которым баннер доступен для показа. На диапазон доступных значений влияют ограничения, заданные для контракта, к которому относится баннер.
    Закладка "Статистика"

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

    Поле | Описание
    Фиксировать в статистике | Флаг в данном поле позволяет регистрировать события клика по баннеру в модуле статистики.
    Event1 | Идентификатор типа события - event1.
    Event2 | Идентификатор типа события - event2.
    Event3 Дополнительный параметр события.

    Для создания идентификаторов типа события event1, event2, event3 можно использовать следующие макросы:
    • #BANNER_NAME# - имя баннера;
    • #BANNER_ID# - ID баннера;
    • #CONTRACT_ID# - ID контракта;
    • #TYPE_SID# - тип баннера.
    Закладка "Комментарий"

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком баннеров.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров баннера.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Контракты

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список контрактов
    •

    На странице Контракты (Сервисы -> Реклама -> Контракты) представлен список рекламных контрактов.

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

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

    Отклик баннеров контракта (CTR) – отношение суммарного числа кликов на баннеры контракта к суммарному числу показов этих баннеров. Выражается в процентах и рассчитывается по следующей формуле: (K * 100) / S, где K – суммарное количество кликов на все баннеры контракта, S – суммарное количество показов всех баннеров контракта. Контракт с CTR выше 10% считается удачным.

    Вес контракта - число, влияющее на вероятность выбора контракта при показе баннеров. При показе баннера в публичной части сайта сначала выбирается контракт, баннер которого будет показан. При этом, чем выше вес контракта, тем больше вероятность того, что данный контракт будет выбран. После того, как определён контракт, система выбирает баннер, принадлежащий данному контракту.

    Форма поиска

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

    Поле | Описание
    *ID | Идентификатор (ID) требуемого контракта.
    Изменено | Время возможного изменения требуемых баннеров.
    Индикатор Это поле позволяет отобрать контракты по значению индикатора:
    • красный – контракт неактивен либо истек в соответствии со своими ограничениями;
    • зеленый – контракт активен и не истек.
    Сайты | Позволяет отобразить только те контракты, баннеры которых показываются только на указанных сайтах.
    Количество баннеров | Интервал количества баннеров, приписанных к требуемым контрактам.
    Посетителей | Интервал числа уникальных посетителей, которым были показаны баннеры требуемых контрактов.
    Показано | Интервал суммарного количества показов баннеров требуемых контрактов.
    Кликнули | Интервал суммарного количество кликов на баннеры требуемых контрактов.
    Отклик баннеров контракта (CTR) (%) | Интервал откликов баннеров требуемых контрактов (CTR).
    *ID, логин, имя владельца | ID и/или логин и/или ФИО пользователя, приписанного к требуемым контрактам.
    *Заголовок | Поиск по заголовку требуемых контрактов.
    *Описание | Поиск по описанию требуемых контрактов.
    *Административный комментарий | Поиск по комментарию администратора.

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

    Для того чтобы отобрать рекламные контракты по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех контрактов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить контракт | Переход к форме создания нового рекламного контракта.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список рекламных контрактов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора контрактов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над контрактом:
    • Изменить - редактирование рекламного контракта;
    • Просмотреть - просмотр параметров контракта;
    • График - просмотр графика CTR для данного контракта;
    • Удалить - удаление контракта. Удаление контракта, используемого по умолчанию (с ID=1), невозможно.
    ID | Идентификатор контракта.
    Инд. Индикатор контракта:
  • – контракт не активен, либо истек в соответствии со своими ограничениями;
  • – контракт активен.
    • Изменено | Дата и время последнего изменения контракта.
    Сайты | Сайты, на которых действует данный контракт.
    Сорт. | Порядок показа контрактов в списке.
    Акт. | Признак активности контракта. Для показа в публичном разделе сайта могут быть выбраны баннеры только активного контракта.
    Вес | Относительный "вес" контракта. Влияет на вероятность выбора для показа в публичном разделе баннера, принадлежащего к данному контракту.
    Заголовок | Заголовок контракта.
    Описание | Описание контракта.
    Баннеров | Количество баннеров, принадлежащих контракту. Ссылка с количеством баннеров позволяет перейти к списку этих баннеров.
    Посетителей | Количество уникальных посетителей, которым показаны баннеры контракта.
    Посетителей макс. | Максимальное количество уникальных посетителей, которым будут показаны баннеры контракта.
    Показано | Количество показов баннеров контракта.
    Максим. показов | Максимальное количество показов баннеров контракта, при достижении которого контаракт становится неактивным.
    Кликнули | Количество кликов по баннерам данного конракта.
    Максим. кликов | Максимальное количество кликов на баннеры контракта, при достижении которого контракт становится неактивным.
    CTR (%) | Значение показателя суммарного отклика баннеров контракта.


Создание и редактирование контракта

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Контракт
  • Ограничения
  • Таргетинг
  • Доступ
  • Комментарий
    •
  • Кнопки управления
    •

    Контекстная панель

    Кнопка | Описание
Список контрактов | Переход на страницу со списком рекламных контрактов.
График CTR контракта | Просмотр графика CTR для текущего контракта.
Просмотреть параметры контракта | Переход к форме просмотра параметров контракта.
Добавить контракт | Переход к форме создания нового контракта. Кнопка отображается при редактировании существующего контракта.
Удалить контракт | Удаление текущего контракта.

    Форма редактирования

    Эта форма предназначена для создания новых и изменения параметров существующих контрактов.

    Закладка "Контракт"

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

    Поле | Описание
    Статус Индикатор, определяющий статус контракта:
  • - контракт не активен;
  • - контракт активен.
    • Поле отображается только в режиме редактирования существующего баннера.
    Создан Дата и время создания контракта, а также имя пользователя. создавшего контракт.

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

    Поле отображается только в режиме редактирования существующего баннера.
    Активен | Признак активности контракта. Баннеры неактивных контактов не могут быть показаны на сайте.
    Период показа баннеров | Интервал времени, в течение которого могут показываться баннеры контракта. При истечении данного периода контракт становится неактивным.
    Порядок сортировки | Значение сортировки, определяющее порядок вывода контрактов в списке.
    Вес (приоритет) | Относительный "вес", влияющий на вероятность выбора баннеров контракта для показа в публичном разделе сайта.
    Заголовок | Произвольный заголовок контракта.
    Описание | Произвольное описание контракта.
    Статус по умолчанию для новых баннеров и при изменении полей баннера, отмеченных символом "1" | Статус баннера, устанавливаемый для новых баннеров контракта либо для существующих баннеров контракта при изменении отображаемой части баннеров.
    Количество баннеров контракта | Таблица, показывающая количество баннеров контракта, находящихся в разных статусах.
    Закладка "Ограничения"

    Данная форма служит для управления ограничениями на показ рекламы, относящейся к данному контракту.

    Поле | Описание
Сайты | Сайты, на которых могут показываться баннеры, относящиеся к данному контракту.
Типы баннеров | Типы баннеров, доступные для создания в рамках данного контракта.
Максимальное количество уникальных посетителей, которым будут показаны баннеры контракта | Ограничение на число уникальных посетителей сайта, которым будут показаны баннеры контракта. Если число уникальных посетителей, просмотревших рекламу контракта, достигает указанного значения, контракт становится неактивным. При редактировании контракта рядом с данным полем отображается число уникальных посетителей, просмотревших рекламу контракта.
Максимальное количество показов баннеров контрактов | Ограничение на суммарное количество показов всех баннеров контракта. Если суммарное число показов достигнет данного значения, контракт станет неактивным. При редактировании контракта рядом с данным полем отображается число выполненных показов баннеров контракта.
Максимальное количество кликов на баннеры контракта | Ограничение на суммарное количество кликов на все баннеры контракта. Если суммарное число кликов достигнет данного значения, контракт станет неактивным. При редактировании контракта рядом с данным полем отображается количество выполненных кликов на баннеры контракта.
Суммарный отклик баннеров контракта (CTR) (%) | Значение суммарного отклика баннеров контракта.
Время и дни недели показа баннеров | Часы и дни недели, по которым может выполняться показ баннеров контракта.
    Закладка "Таргетинг"

    Данная форма служит для настройки таргетинга рекламы в рамках данного контракта.

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

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

    Каждый адрес раздела или страницы должен начинаться с новой строки.
    Ключевые слова Ключевые слова для баннеров контракта, влияющие на возможность показа баннеров на тех или иных страницах сайта:
    • Если для страницы сайта заданы желательные ключевые слова, то баннер будет показан на странице в том случае, если хотя бы одно ключевое слово баннера присутствует в наборе желательных ключевых слов страницы;
    • Если для страницы сайта заданы обязательные ключевые слова, то баннер будет показан на странице в том случае, если набор ключевых слов баннера совпадает с набором обязательных ключевых слов страницы.
    Более подробная информация приводится в руководстве Управление показом баннеров с помощью ключевых слов.
    Закладка "Доступ"

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

    Поле | Описание
Просмотр | Данное право дает пользователю возможность просматривать параметры контракта, параметры баннеров контракта, а также графики и диаграммы баннеров контракта.
Управление баннерами | Данное право дает пользователю возможность просматривать параметры контракта и выполнять создание, редактирование и удаление баннеров контракта.
Изменение прав пользователей на контракт | Данное право дает пользователю возможность редактировать параметры контракта, а также управлять правами пользователей на Просмотр и Управление баннерами для данного контракта.
    Закладка "Комментарий"

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком рекламных контрактов.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров рекламного контракта.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Типы баннеров

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список типов баннеров
    •

    На странице Типы баннеров (Сервисы -> Реклама -> Типы баннеров) представлен список используемых в системе типов баннеров.

    Тип баннера - именованная область в HTML-шаблоне сайта, в которой выводятся баннеры. Имя области в шаблоне сайта совпадает с именем типа баннера, которые требуется показывать в данной области.

    Форма поиска

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

    Поле | Описание
*ID | Идентификатор типа баннера.
Изменено | Дата изменения типа баннера.
Активен | Признак активности типа баннеров.
*Имя | Имя типа.
*Описание | Описание типа.

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

    Для того чтобы отобрать типы баннеров по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех типов баннеров нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить тип | Переход к форме создания нового типа баннеров.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

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

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора типов баннеров, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над типом баннеров:
    • Изменить - редактирование типа баннеров;
    • Просмотреть - просмотр параметров типа баннеров;
    • График CTR - просмотр графика отклика для баннеров данного типа;
    • Удалить - удаление типа баннеров.
    ID | Символьный идентификатор типа баннеров.
    Изменено | Дата и время последнего изменения типа баннеров.
    Акт. | Признак активности типа баннеров.
    Сорт. | Относительный "вес", влияющий на порядок вывода типов баннеров в списке.
    Имя | Произвольное имя типа баннеров.
    Описание | Произвольное описание типа баннеров.
    Баннеров | Количество баннеров данного типа. Ссылка с количеством баннеров позволяет перейти к списку баннеров этого типа.


Создание и редактирование типа баннера

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

    Контекстная панель

    Кнопка | Описание
Список типов | Переход на страницу со списком типов баннеров.
График CTR типа | Просмотр графика CTR для баннеров данного типа.
Просмотреть тип | Переход к форме просмотра параметров типа баннера.
Добавить тип | Переход к форме создания нового типа баннера. Кнопка отображается при редактировании существующего типа баннера.
Удалить тип | Удаление текущего типа баннера.

    Форма редактирования

    Эта форма применяется для создания и редактирования типов баннеров.

    Примечание для разработчиков
    После создания нового типа следует изменить HTML-шаблон сайта, выделив в нем место для отображения баннеров нового типа путём вызова $APPLICATION->ShowBanner(...).

    Поле | Описание
Создан | Дата и время создания типа баннера, а также имя пользователя, создавшего данный тип.
Изменен | Дата и время последнего изменения типа баннера, а также имя пользователя, выполнившего изменение.
Активен | Признак активности типа.
Порядок сортировки | Относительный "вес", влияющий на порядок вывода типов баннера в списке.
* Символьный идентификатор (ID) | Символьный идентификатор типа. Для создания идентификатора допустимо использование латинских букв, цифр, символа подчеркивания (_). Используется для определения места показа баннеров данного типа в шаблоне сайта (см. ShowBanner).
Имя | Произвольное имя типа баннера.
Описание | Произвольное описание типа баннера.
    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком типов баннера.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров типа баннера.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Частые вопросы (FAQ)

Как использовать flash-баннеры ?

  • Предварительно flash-баннер необходимо загрузить в каталог /upload/advertising/flash/
  • При создании баннера необходимо в "коде баннера" указать следующий код:

<a
href="../../../bitrix/click.php?id=#banner_id#&event1=banner&event2=click&event3=#banner_id#&goto=[url]">
<div>
<OBJECT
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
id="banner"
WIDTH="190"
HEIGHT="190"
ALIGN="">
<PARAM NAME=movie VALUE="/upload/advertising/flash/banner.swf">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>

<EMBED
src="../../../upload/advertising/flash/banner.swf"
quality=high
bgcolor=#FFFFFF
WIDTH="190"
HEIGHT="190"
NAME="banner"
ALIGN=""
TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
</EMBED>
</OBJECT>
</div>
</a>
    заменив при этом banner.swf на имя вашего flash-баннера и указав его размеры. В самом flash-баннере желательно не задавать ссылку для перехода. А в [URL] необходимо указать url-кодированную ссылку.

Почему у меня не считается количество посетителей просматривающих баннеры?

Суть проблемы состоит в том, что модуль рекламы не может уcтановить cookie для посетителя просмотревшего тот или иной баннер. Данный cookie устанавливается в функции CAdvBanner::Show, но так как в большинстве случаев, данная функция вызывается уже после того как HTML-кодтент страницы начинает отсылаться браузеру клиента, то в соответствии с ограничениями протокола HTTP, cookie не может быть установлен.

Проблему можно решить следующими путями:

  • Для редакции "Эксперт" и "Бизнес" инсталлируйте модуль компрессии. Данный модуль буферизирует результат парсинга, прежде чем сжать его и передать браузеру клиента. Буферизация позволит корректно учитывать посетителей просматривающих баннеры.
  • Если ваш сайт целиком работает на PHP, то для редакции Веб-аналитика в файле /bitrix/php_interface/dbconn.php добавьте следующий PHP код:

ob_start();
    Данная функция включает буферизацию парсинга PHP страниц, что позволит корректно учитывать посетителей.
  • Если на вашем сайте нет возможности использовать буферизацию, то учет посетителей будет работать, если в дизайне сайта (prolog_main.php, epilog_main.php) использовать следующую схему:

<?
// прежде чем начинается вывод страницы, необходимо получить HTML баннеров
if (CModule::IncludeModule("advertising")):
    $strBanner_top	= CAdvBanner::Show("TOP");
    $strBanner_bottom = CAdvBanner::Show("BOTTOM");
    $strBanner_left   = CAdvBanner::Show("LEFT");
endif;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
    <?
    // выводим HTML баннеров в заранее отведенных рекламных областях
    echo $strBanner_top;
    echo $strBanner_bottom;
    echo $strBanner_left;
    ?>
</body>
</html>
    Т.е. перед тем как начинается вывод HTML-кодтента, вы предварительно запоминаете HTML всех баннеров в PHP переменных, а уже затем используете их вывод в том месте дизайна, где вам необходимо.


Настройки

В этом разделе

  • Закладка "Настройки"
  • Закладка "Доступ"
    •

    Форма настроек модуля Рекламы (Настройки -> Настройки продукта -> Модули) предназначена для задания общесистемных параметров модуля.

    Закладка "Настройки"

    Данная форма предназначена для настройки общих параметров модуля.

    Название параметра | Описание параметра
Не использовать ограничения контрактов при показе баннера | При отмеченной опции ограничения контрактов не будут использованы при показе баннеров.
Использовать HTML редактор (только для IE 5.0 или FireFox 1.0 и выше) | Установка данного параметра позволяет разрешить или запретить использование визуального HTML редактора при редактировании кода баннеров.
Сколько дней хранить динамику по баннерам | Данный параметр позволяет ограничить количество дней, отводимых для хранения данных по показам и кликам на баннеры.
Ширина графика | Ширина графиков (в пикселях).
Высота графика | Высота графиков (в пикселях).
Диаметр круговой диаграммы | Диаметр круговых диаграмм (в пикселях).
На сколько дней запоминать, что посетитель посмотрел тот или иной баннер | Количество дней, в течение которых посетитель считается просмотревшим тот или иной баннер.
Полное имя файла для учета кликов на баннер | Путь к файлу, содержащему скрипт для сбора статистики по кликам на баннеры. Скрипт по умолчанию (/bitrix/rk.php) регистрирует клики в модуле статистики, если последний установлен; иначе, предпринимается попытка зарегистрировать клик в модуле рекламы.
Подкаталог для хранения загруженных баннеров | Имя подкаталога (относительно каталога /upload/), в котором хранятся все изображения, загружаемые при создании баннеров.

    Закладка "Доступ"

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

    Поле | Описание
    По умолчанию | Управление правами доступа всех групп пользователей, для которых установлен уровень доступа "по умолчанию".
    [Группа пользователей] Уровень доступа для конкретной группы пользователей:
    • Доступ закрыт - доступ запрещён;
    • Рекламодатель - доступ к меню и административным файлам открыт, пользователь видит только те контракты и принадлежащие им баннеры, на которые у него есть соответствующие права. Данный уровень прав используется для групп рекламодателей, размещающих свои баннеры на вашем сайте.
    • Менеджер баннеров- доступ к управлению баннерами контракта (без права изменения параметров контракта), в настройках которого для данных пользователей установлено право Управление баннерами.
    • Демо-доступ - пользователь видит все контракты, типы баннеров, баннеры, может строить любые графики, но без права модификации чего-либо (право обычно используется в демонстрационном режиме, когда пользователь может все видеть, но не имеет права что либо изменять).
    • Администратор рекламы - полный доступ, без каких либо ограничений.


Размещение баннера на сайте

Для того чтобы добавить новый баннер на сайт, выполните следующее.

  1. Откройте страницу управления баннерами: Сервисы -> Реклама - > Баннеры.
  2. Выберите кнопку Добавить баннер на контекстной панели.
  3. Выберите Контракт, в соответствии с которым будет проводиться показ баннера.
  4. Для того чтобы баннер мог быть показан в публичном разделе, установите флаг в поле Активен.
  5. Укажите интервал показа баннера. Нажмите на кнопку [image], чтобы использовать календарь для выбора даты.
  6. Введите Имя баннера (имя отображается только в административном разделе и используется для удобства редактирования).
  7. Вы можете указать название Группы, к которой относится данный баннер. Можно создать новую группу или выбрать в выпадающем списке название одной из указанных ранее групп.
  8. Выберите место размещения баннера на странице (Тип рекламного блока).
  9. Укажите Вес (приоритет) баннера. Данное число влияет на вероятность выбора баннера для показа на сайте (чем выше значение вы укажете, тем чаще будет показан баннер).

  10. Загрузите изображение баннера.
  11. Если необходимо введите текст всплывающей подсказки для баннера. Этот текст будет показан при наведении курсора мыши на баннер.
  12. Укажите ссылку, по которой пользователь перейдет после нажатия на баннер. В ссылке можно использовать параметры referer1 и referer2. Подробнее об этих параметрах вы можете прочитать в разделе Статистика.
  13. Определите поведение окна веб-браузера при нажатии на баннер:
    • _self – открыть в текущем окне;
    • _blank – открыть в новом окне;
    • _parent – открыть в своем фрейме;
    • _top - открыть во всем текущем окне браузера.

  14. Если необходимо, введите HTML-код баннера. HTML-код используется при обмене баннерами или для размещения рекламного блока.

    Если вы принимаете участие в обмене баннерами, хотите разместить собственный баннер или баннер другого сайта с использованием HTML, вам необходимо использовать специальный код баннера. Данный код нужно добавить в поле HTML-код. В HTML-коде могут быть использованы от одного до пяти случайных чисел с именами %%RANDOM1%% .... %%RANDOM5%%. Если вы используете HTML-код для нескольких баннеров, то во избежание дублирования одних и тех же баннеров на одной странице сайта, вам следует указать значение переменной RANDOM. Всего в системе может быть использовано 5 различных параметров (%%RANDOM1%% …%%RANDOM5%%).

    Если задается одновременный показ двух баннеров одной категории (например, в область кода вводится код для двух баннеров слева), то для них соответственно должны быть заданы параметры %%RANDOM1%% и %%RANDOM2%%. Эти параметры используются для того, чтобы избежать дублирования баннеров при показе, когда одновременно могут быть показаны два одинаковых баннера.

  15. Установите статус баннера:
    • подтвержден - баннер доступен для показа на страницах сайта;
    • на рассмотрении - баннер находится в состоянии рассмотрения;
    • отклонен - баннер не будет показан на страницах сайта.

  16. Введите комментарий к изменению статуса.
  17. Если установить флаг в поле Оповестить об изменении статуса владельцев контракта, то при изменении статуса баннера будет сгенерированно и отправлено сообщение на основе шаблона Изменился статус баннера.
  18. Для того чтобы задать параметры показа баннера, перейдите на закладку Ограничения.
  19. Для фиксирования число показов баннера отметьте опцию Фиксировать число показов баннера.
  20. При отмеченной опции Показывать баннеры с равномерной скоростью баннер будет показываться с равномерной скоростью.
    Если данная опция отмечена, то обязательно нужно настроить следующие параметры:
    • указать интервал показа;
    • отметить опцию фиксировать число показов баннера;
    • задать максимальное число показов баннера.
  21. Укажите максимальное число посетителей, для которых будет показан данный баннер.
  22. Введите ограничение на число показов данного баннера одному посетителю.
  23. Укажите максимальное число показов баннера, при достижении которого баннер станет неактивным.
  24. Для того чтобы клики на баннер фиксировались в модуле статистики, установите флаг в поле Фиксировать клики на данный баннер.
  25. Укажите число нажатий (кликов) на баннер, при достижении которого баннер будет отключен.

    Примечание:
    Если вы не хотите устанавливать ограничения на количество показов и кликов на баннер, оставьте соответствующие поля формы незаполненными.

  26. Перейдите на закладку Таргетинг.
  27. Выберите сайт(ы), на котором будет показан баннер.
  28. Введите адреса страниц (разделов), на которых баннер будет показан.
  29. Введите адреса страниц (разделов), на которых баннер не будет показан.

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

  32. Настройте таргетинг рекламы по странам. Для этого нужно выбрать страны, для которых будет показан данный баннер.
  33. Настройте таргетинг рекламы по рекламным кампаниям. Баннер будет показан только для посетителей, пришедших по указанной рекламной кампании. Если не указывать кампанию, баннер будет показан всем посетителям.
  34. Настройте таргетинг рекламы по посетителям. Вы можете выбрать, каким посетителям показывать рекламу: новым, вернувшимся на сайт или всем посетителям.
  35. Выберите дни недели и часы, по которым будет осуществляться показ баннера.

  36. Для того чтобы задать параметры регистрации события клика по баннеру в модуле статистики, перейдите на закладку Статистика.
  37. Укажите значения полей event1, event2, event3. В этих полях указываются идентификаторы типа событий. Подробнее о типах событий можно прочитать в разделе Статистика.

  38. При необходимости создайте служебный комментарий. Для этого перейдите на закладку Комментарий. Созданное сообщение будет доступно для просмотра только в административном разделе.
  39. Нажмите кнопку Применить, чтобы сохранить изменения и продолжить редактирование параметры баннера.
  40. Нажмите кнопку Сохранить, чтобы добавить рекламный баннер и вернуться к списку рекламы.


Баннер

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Баннер"

Данный компонент выводит баннер заданного типа. Компонент является стандартным и входит в дистрибутив модуля.

Внимание! Данный компонент не учитывает таргетинг по ключевым словам, для этого необходимо использовать функцию $APPLICATION->ShowBanner().

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:advertising.banner","",Array(
     "TYPE" => "LEFT",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0"
     )
);?>

Описание параметров

Основные параметры
TYPE
Указывается один из типов баннера, созданных в системе.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.


Подписка и рассылки

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

  • общие новости;
  • пресс-релизы вашей компании;
  • сообщения об обновлениях на сайте;
  • информацию о новых товарах и услугах;
  • анонсы публикаций;
  • другую информацию.

Термины

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

Рассылки
Тематические рубрики, на которые могут подписаться посетители сайта. Возможна одновременная подписка на несколько рассылок.
Подписчики
Посетители сайта, подписавшиеся на рассылки. Подписчики могут быть как зарегистрированными пользователями, так и анонимными. Анонимными подписчиками признаются подписчики, не зарегистрированные на сайте.
Выпуски
Почтовые сообщения, рассылаемые подписчикам. Выпуск может быть направлен:
  • подписчикам на определённые рассылки;
  • пользователям определённых групп прав;
  • на произвольные адреса.


Выпуски

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Выпуски сообщений

В этом разделе

  • Фильтр
  • Список сообщений
  • Как создать сообщение
  • Как отправить сообщение
  • Диаграмма смены статусов сообщения
  • Как найти сообщение

    • Форма Список выпусков предназначена для управления новостными сообщениями. С помощью этой формы можно:

    • в форме наглядной таблицы просматривать имеющиеся сообщения;
    • создавать новостные сообщения (выпуски) с чистого листа и путём копирования существующих сообщений;
    • редактировать сообщения;
    • удалять сообщения;
    • отправлять сообщения рассылки подписчикам.

    Форма Список выпусков содержит две основные области: фильтр и список сообщений.

    Фильтр

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

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

    Нижеследующая таблица описывает поля фильтра.

    Поле | Описание
    Найти | Поле, позволяющее найти выпуски сообщений по их основным параметрам: идентификатору, теме или статусу. Это поле присутствует, даже если фильтр свернут.
    ID | Идентификатор сообщения, под которым оно зарегистрировано в базе данных. Поле допускает использование языка запросов для создания сложных условий.
    Дата изменения | Параметр определяет диапазон дат, в пределах которых искомые сообщения могли быть изменены.
    Дата отправки | Диапазон дат, в пределах которых искомые сообщения могли быть отправлены.
    Время автоматической отправки Данная опция позволяет делать выборку сообщений, отправляемых автоматически, по дате и времени их отправки.
    В поле указываются Дата и время отправки сообщения, для которого в форме создания/редактирования было задано свойство Отправлять автоматически в указанное время.
    Статус Текущий статус сообщения в базе данных. Определены следующие статусы для каждого сообщения:
    • Отправлено
    • В процессе
    • Черновик
    • Отправлено с ошибками
    • Остановлен
    Также для фильтрации сообщений по значению статуса можно использовать текстовое поле, расположенное над списком статусов. В этом поле можно комбинировать значения статуса, например, "D|S" или "черновик|отправлено". Поле позволяет использовать язык запросов для создания сложных условий.
    От кого | Поле позволяет задать отправителей сообщений, сообщения от которых требуется найти. В качестве запроса можно использовать полный или частичный адрес e-mail. Возможно использование языка запросов для создания сложных условий.
    Кому было отправлено | Поле служит для задания получателей сообщений для поиска сообщения. В качестве запроса можно использовать полный или частичный адрес e-mail. Поле Кому заполняется после частичной или полной отправки сообщения. Возможно использование языка запросов для создания сложных условий.
    Тема | Тема сообщений, которые требуется найти. Возможно использование языка запросов.
    Тип сообщения | Позволяет отфильтровать только сообщения, созданные в HTML-формате либо в текстовом формате.
    Сообщение | Предназначено для задания слов, частей слов, фраз или частей фраз, которые могут содержаться в искомых сообщениях. Возможно использование языка запросов для создания сложных условий поиска.

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

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления нового выпуска.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список сообщений

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

    Нижеследующая таблица описывает поля таблицы.

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора сообщений, к которым предполагается применить какое-либо правило или действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного правила, отображает меню, позволяющее:
    • Отправить - отправка сообщения. Команда доступна для сообщений, находящихся в статусе Черновик;
    • Остановить - остановка отправки. Команда доступна для сообщений, находящихся в статусе В процессе;
    • Продолжить - возобновление отправки сообщения. Команда доступна для сообщений, находящихся в статусе Остановлен;
    • Изменить – редактирование сообщения. Команда не доступна для сообщений, находящихся в статусе В процессе;
    • Копировать – копирование данного сообщения в новое;
    • Удалить - удаление сообщения. Команда не доступна для сообщений, находящихся в статусе В процессе.

    ID | Идентификатор сообщения, под которым оно зарегистрировано в базе данных.
    Изменен | Дата и время модификации данного сообщения.
    Тема | Тема сообщения.
    Тип | Тип сообщения: текстовый или в формате HTML.
    Статус В данном поле выводится текущий статус сообщения и информация о ходе его отправки.
    Сообщение может находиться в одном из следующих статусов:
    • черновик - сообщение может быть сохранено в данном статусе или переведено в него после остановки или завершения отправки (при этом будет очищена очередь отправки сообщения);
    • в процессе - сообщение находится в процессе отправки;
    • отправлено - отправка сообщения прошла успешно;
    • отправлено с ошибками - во время отправки сообщения произошли ошибки;
    • остановлен - отправка сообщения была прервана.
    Информация о ходе отправки представляется в виде шкалы, на которой цветами обозначено:
    • белый - количество ещё не отправленных сообщений;
    • зеленый - количество отправленных сообщений;
    • красный - количество сообщений, отправленных с ошибкой.
    Отправлено | Дата и время отправки сообщения.

    Как создать сообщение для рассылки

    Для создания сообщения служит кнопка Добавить, открывающая форму добавления/редактирования сообщения. Нажмите эту кнопку, чтобы создать новое сообщение.

    Как отправить сообщение

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

    Диаграмма смены статусов сообщения

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

    Как найти сообщение

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


Создание и редактирование выпуска

В этом разделе

  • Контекстная панель
  • Поля формы
  • Вкладка "Выпуск"
  • Вкладка "Получатели"
  • Вкладка "Вложения"
  • Вкладка "Параметры"
  • Кнопки управления
    •

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

    С помощью этой формы редактирования сообщений можно:

    • создать новое или изменить существующее сообщение рассылки;
    • выбрать подписчиков для получения выпуска рассылки;
    • выбрать пользователей сайта для получения выпуска рассылки;
    • добавить дополнительные адреса получателей выпуска рассылки;
    • настроить параметры сообщения;
    • отправлять сообщения рассылки подписчикам.

    Контекстная панель

    Ссылка | Описание
Список | Ссылка для перехода на страницу со списком выпусков.
Добавить | Ссылка для перехода на страницу создания нового выпуска. Отображается только на странице редактирования уже существующего выпуска.
Копировать | Команда копирования выпуска доступна только на странице редактирования уже существующего выпуска.
Удалить данный выпуск | Удаление выпуска, просматриваемого на данной странице. Команда доступна только на странице редактирования уже существующего выпуска.

    Поля формы

    Вкладка "Выпуск"

    Поле | Описание
    Информация о состоянии выпуска
    Дата модификации Дата и время последнего редактирования сообщения.

    Данное поле отображается только в режиме редактирования существующего сообщения.
    Дата отправки Дата и время отправки сообщения (если сообщение было отправлено).

    Данное поле отображается только в режиме редактирования существующего сообщения.
    Отчет об отправке Ссылка на список адресов, на которые сообщение было отправлено или не отправлено. Выводится, если такой список существует (при статусах Отправлено, Отправлено с ошибками, Остановлен).

    Данное поле отображается только в режиме редактирования существующего сообщения.
    Текущий статус Статус сообщения. Возможны следующие варианты:
    • черновик - выпуск может быть сохранен в данном статусе или переведен в него после остановки или завершения отправки (при этом будет очищена очередь отправки выпуска);
    • отправлено - отправка выпуска прошла успешно;
    • отправлено с ошибками - во время отправки выпуска произошли ошибки;
    • остановлен - отправка выпуска была прервана.
    Перевести в статус Это поле позволяет сменить статус сообщения. Например, чтобы отослать сообщение повторно, можно изменить его статус с Отправлено на Черновик и затем отправить.

    Данное поле отображается только в режиме редактирования существующего сообщения.
    Поля письма
    От кого | Информация об отправителе сообщения в виде, в котором его увидит пользователь, получивший сообщение. Данное поле обязательно для заполнения.
    Кому | Поле "Кому" заголовка сообщения, как его увидит пользователь, получивший сообщение. Данное поле обязательно для заполнения.
    Тема | Тема сообщения. Данное поле обязательно для заполнения.
    Текст письма | Собственно текст сообщения.
    Text / HTML | Формат сообщения. В текстовом режиме отсутствует возможность форматирования текста и вставки рисунков. Режим HTML позволяет использовать любое форматирование сообщения. В то же время, некоторые пользователи могут желать получать сообщения в текстовом формате. В любом случае, выбор формата сообщения остается за вами.
    Использовать визуальный редактор Опция действительна только для формата сообщения HTML.
    Если эта опция включена, сообщение можно редактировать так же легко, как в Microsoft Word.
    Если опция отключена, а сообщение изначально создавалось в HTML-формате, отображается исходный HTML-код сообщения.

    Вкладка "Получатели"

    Поле | Описание
    Адреса получателей
    Рассылки | Список существующих рассылок. Путем выбора требуемых рассылок можно отправить сообщение только тем пользователям, которые подписались на выбранные рассылки.
    Формат подписки Данное поле позволяет отправить сообщение только тем подписчикам, которые выбрали соответствующий формат получения сообщений рассылки. В качестве формата можно выбрать:
    (любой)
    Отправить сообщение всем подписчикам, вне зависимости от запрошенного формата подписки.
    Текст
    Отправить сообщение тем подписчикам, которые выбрали простой текст в качестве формата подписки.
    HTML
    Отправить сообщение тем подписчикам, которые выбрали текст HTML в качестве формата подписки.
    Группы пользователей | Группы пользователей, для которых предназначено данное сообщение. Выберите требуемые группы из списка имеющихся в системе групп пользователей.
    Фильтр на выбранные адреса
    Фильтр по E-Mail Данное поле позволяет ограничить получателей сообщения рассылки путём задания фильтра. Если фильтр установлен, то перед отправкой сообщения каждому пользователю будет производиться проверка, соответствует ли адрес условиям фильтра. Если проверка прошла успешно, то сообщение будет отправлено данному пользователю.

    Для установки фильтра могут быть использованы специальные логические выражения

    Пример фильтра: %@bitrixsoft.ru
    Посмотреть выбранные адреса получателей | Ссылка на страницу просмотра выбранных адресов получателей сообщения.
    Дополнительные адреса получателей
    Дополнительные адреса электронной почты, на которые будет отправлено данное сообщение.

    Вкладка "Вложения"

    Поле | Описание
Имена файлов вложений и кнопка Обзор... | При помощи этих полей можно выбрать файлы, которые будут отосланы получателям выпуска в виде вложений.

    Вкладка "Параметры"

    Поле | Описание
Кодировка письма | Кодировка, в которой будет отправлено сообщение.
Отправлять письмо персонально каждому получателю (рекомендуется) | Если эта опция включена, каждое сообщение будет формироваться и отправляться каждому пользователю отдельно. Если опция выключена, одно сообщение будет отправлено сразу всем пользователям с указанием их адресов в поле Скрытая копия (BCC). Рекомендуется отправлять сообщения персонально, чтобы гарантировать их доставку подписчикам.
Отправлять автоматически в указанное время | Разрешается или запрещается автоматическая отправка сообщения в соответствии с указанными в поле Дата и время отправки параметрами.
Дата и время отправки | Дата и время отправки сообщения.

    Кнопки управления

    Кнопка | Описание
Режим создания нового сообщения
Добавить | Сохраняет сообщение и переходит к отображению списка сообщений.
Применить | Сохраняет сообщение. Редактирование сообщения продолжается.
Сбросить | Сбрасывает все введенные после загрузки формы данные.
Отправить | Нажмите эту кнопку для отправки сообщения.
Режим редактирования имеющегося сообщения
Добавить | Сохраняет сообщение и переходит к отображению списка сообщений.
Применить | Сохраняет сообщение. Редактирование сообщения продолжается.
Сбросить | Сбрасывает все введенные после загрузки формы данные.
Отправить | Отправка сообщения. Отображается в форме редактирования сообщений, находящихся в статусе Черновик.
Продолжить отправку | Команда доступна только для сообщения, находящихся в статусе Остановлен.
Повторить для ошибочных | Позволяет произвести повторную отправку сообщения по адресам, предыдущая отправка на которые прошла с ошибками. Доступна только для сообщений, находящихся в статусе Отправлено с ошибками.


Подписчики

В этом разделе

  • Фильтр
  • Список подписчиков
  • Как создать подписчика
  • Как изменить данные подписчика

    • Форма Подписчики предназначена для управления пользователями, подписанными на получение новостей. С помощью этой формы можно:

    • в форме наглядной таблицы просматривать данные подписчиков;
    • создавать новых подписчиков;
    • редактировать параметры подписчиков;
    • удалять подписчиков.

    Форма Подписчики содержит две основные области: фильтр и список подписчиков.

    Фильтр

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

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

    Нижеследующая таблица описывает поля фильтра.

    Поле | Описание
    ID Идентификатор подписчика, под которым он зарегистрирован в базе данных.
    Поле позволяет использовать язык запросов для задания сложных условий.
    Дата добавления | Параметр определяет диапазон дат, в пределах которых искомые подписчики могли быть добавлены в базу данных.
    Дата изменения | Параметр определяет диапазон дат, в пределах которых данные искомых подписчиков могли быть изменены.
    E-Mail | Адрес электронной почты подписчика, используемый для отсылки сообщений.
    Анонимный Данное поле позволяет включать в отчет подписчиков:
    • анонимных (не зарегистрированных на сайте) подписчиков;
    • зарегистрированных на сайте подписчиков;
    • всех подписчиков, как анонимных, так и зарегистрированных.
    ID пользователя Идентификатор пользователя, под которым он зарегистрирован на сайте. (Сравните с ID.)
    Данное поле значимо лишь для зарегистрированных (не анонимных пользователей).
    Подписчик Персональные данные пользователя, по которым следует произвести отбор.
    Данное поле значимо лишь для зарегистрированных (не анонимных пользователей).
    Подтверждено Позволяет отобразить подписчиков:
    • подтвердивших свою подписку;
    • не подтвердивших подписки;
    • всех подписчиков.
    Активно Данное поле позволяет включать в отчет подписчиков, чей статус подписки:
    • активен (подписчик получает сообщения);
    • не активен (подписчик не получает сообщения);
    • всех подписчиков.
    Формат | Это поле предназначено для фильтрации подписчиков по желаемому формату получаемых сообщений.
    Рассылка | При помощи этого поля можно отобрать только тех подписчиков, которые подписаны на те или иные рассылки. Для выбора нескольких рассылок воспользуйтесь клавишей Ctrl при нажатии кнопки мыши.

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

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления нового подписчика.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список подписчиков

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

    Нижеследующая таблица описывает поля таблицы.

    Колонка | Описание
Колонка флажков | Поле предназначено для выбора подписчиков, к которым предполагается применить какое-либо правило или действие.
Меню действий | При нажатии на кнопку действий конкретного подписчика, отображает меню, позволяющее изменить или удалить подписчика.
ID | Идентификатор подписчика, под которым он зарегистрировано в базе данных.
Добавлено | Дата добавления данного подписчика в базу данных.
Адрес | Адрес электронной почты подписчика, используемый для отсылки сообщений.
Подписчик | Данные о подписчике: анонимный или, если подписчик зарегистрирован на сайте, его регистрационные данные.
Подтв. | Статус подтверждения подписки. "Да" - если данный подписчик подтвердил своё желание получать сообщения подписанных рассылок, и "нет" - в противном случае.
Акт. | Статус активности подписки. Если подписка активна, то сообщения данному подписчику отсылаются. В противном случае, отсылка не производится.
Формат | Желаемый подписчиком формат сообщений.
Изменено | Дата изменения параметров подписки.
Время подтверждения | Дата создания подписки.
Код подтверждения | Код подтверждения подписки.

    Как создать подписчика

    Для создания подписчика служит кнопка Добавить, открывающая форму добавления/редактирования адреса. Нажмите эту кнопку, чтобы создать нового подписчика.

    Как изменить данные подписчика

    Для изменения регистрационных данных подписчика дважды кликните на строке соответствующего подписчика.


Создание и редактирование подписчика

В этом разделе

  • Контекстная панель
  • Поля формы
  • Вкладка "Подписчик"
  • Вкладка "Подписки"
    •
  • Кнопки управления

    • Для создания и изменения данных подписчика рассылок применяется форма одного типа. В зависимости от того, создаете вы новое сообщение или редактируете существующее, некоторые поля могут присутствовать или отсутствовать на форме.

    С помощью этой формы можно:

    • создать новое или изменить существующее сообщение рассылки;
    • выбрать подписчиков для получения выпуска рассылки;
    • выбрать пользователей сайта для получения выпуска рассылки;
    • добавить дополнительные адреса получателей выпуска рассылки;
    • настроить параметры сообщения;
    • отправлять сообщения рассылки подписчикам.

    Контекстная панель

    Ссылка | Описание
Список | Ссылка на страницу со списком адресов подписчиков.
Добавить | Ссылка на страницу добавления нового подписчика. Отображается только при переходе на страницу редактирования уже существующего подписчика.
Удалить | Удаление текущего подписчика. Ссылка доступна только при переходе на страницу редактирования уже существующего подписчика.

    Поля формы

    Вкладка "Подписчик"

    Поле | Описание
Дата добавления | Дата добавления данного подписчика в базу данных. Данное поле отображается только в режиме редактирования данных существующего подписчика.
Дата модификации | Дата последнего изменения данных подписчика. Данное поле отображается только в режиме редактирования данных существующего подписчика.
Подписка подтверждена | Флаг, определяющий, подтвердил подписчик желание получать сообщения или нет.
Код подтверждения подписки | Код подтверждения подписки, отправленный подписчику для подтверждения. Данное поле отображается только в режиме редактирования данных существующего подписчика.
Дата генерации кода подтверждения | Дата и время генерации кода активации подписки. Данное поле отображается только в режиме редактирования данных существующего подписчика.
Анонимный подписчик | Флаг, определяющий статус анонимности подписчика (анонимным признается подписчик, не зарегистрированный на сайте).
Пользователь (ID) | Идентификатор не анонимного пользователя, под которым он зарегистрирован на сайте.
Подписка активна | Статус активности подписки. Если подписка активна, то сообщения данному подписчику отсылаются. В противном случае, отсылка не производится.
E-Mail | Адрес электронной почты подписчика, используемый для отсылки сообщений.
Выслать подписчику код подтверждения при изменении (добавлении) адреса | Если этот флаг установлен, то в случае добавления адреса или изменения адреса подписчика на новый адрес высылается код подтверждения подписки.
Отправить письмо на основе шаблона сайта | Поле служит для выбора шаблона сообщений, в соответствии с которым будет отослан код подтверждения.

    Вкладка "Подписки"

    Поле | Описание
Формат | Формат сообщений данного подписчика.
Рубрики подписки | Существующие рубрики рассылки, новостные сообщения которых отсылаются подписчику.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохраняет параметры подписчика и переходит к отображению списка подписчиков.
Применить | Сохраняет параметры подписчика. Редактирование продолжается.
Отменить | Стирает все введенные данные.


Импорт адресов

В этом разделе

  • Поля формы
  • Кнопки управления

    • Данная форма предназначена для добавления адресов рассылки сообщений из внешних источников (файлов) или из явно задаваемого списка адресов. С ее помощью вы можете легко добавить в систему большое количество адресов электронной почты (например, при смене системы управления сайтом на систему 1С-Битрикс), не прибегая к ручному вводу адресов.

    Для импорта адресов, задайте источник адресов (внешний файл или список), установите описанные ниже параметры импорта и нажмите кнопку Импортировать адреса.

    Поля формы - вкладка "Импорт"

    Поле | Описание
    Импортировать из файла Путь к локальному файлу с адресами, из которого будет производиться импорт. Адреса в файле могут быть разделены запятой, либо каждый новый адрес может находиться на новой строке:

    user1@host.com,user2@host.com,user3@host.com
    или
    user1@host.com
user2@host.com
user3@host.com
    Чтобы найти файл, из которого будет производиться импорт, нажмите кнопку Обзор...
    Импортировать из списка | Вместо файла с адресами, Вы можете явным образом задать адреса в этом поле, например, скопировав в текстовом редакторе и вставив в это поле (Ctrl+V). Для явного задания адресов применяются те же правила, что и при импорте из файла.
    Выслать код подтверждения подписки | При установке этого флага, на каждый из добавленных адресов будет выслан код подтверждения подписки.
    Установить флаг подтверждения подписки | Установка этого флага приведет к тому, что подписка для каждого добавленного адреса будет автоматически подтверждена, даже если подписчик не подтвердил подписку явно.
    Добавить подписчиков Подписчики рассылок могут быть добавлены как анонимные посетители или как зарегистрированные пользователи сайта.
    • Как анонимных посетителей - добавляемые подписчики не будут зарегистрированы на сайте; для них не будут созданы аккаунты.
    • Как пользователей (с созданием аккаунта) - добавляемые подписчики регистрируются на сайте; для них создаются аккаунты с возможностью привязки к группам пользователей.
    Выслать регистрационную информацию пользователям Данный флаг доступен, только если подписчики добавляются как зарегистрированные пользователи.

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

    При регистрации каждого пользователя производится его добавление в заданные группы. Выберите группы, в которые следует добавить регистрируемых пользователей. Чтобы выбрать более одной группы, при их выборе удерживайте нажатой клавишу Ctrl.
    Подписать на рассылки | При добавлении подписчиков есть возможность автоматически подписать их на одну или несколько существующих рассылок. Выберите те рассылки, на которые следует подписать добавляемых пользователей.
    Формат | Формат сообщений, отсылаемых добавляемым подписчикам.
    Отправить письма на основе шаблонов сайта | Сайт, шаблоны которого следует использовать для отправки сообщений подписчикам.

    Кнопки управления

    Кнопка | Описание
Импортировать адреса | Запускает процесс импорта адресов.


Список рассылок

В этом разделе

  • Кнопки управления
  • Поля формы

    • Данная форма является основным средством создания списков рассылки. Важно понимать, что сами по себе списки рассылки не содержат новостных сообщений или подписчиков. Списки рассылки служат лишь удобным средством группировки подписчиков, получающих определённые новостные сообщения. Например, вы можете создать список рассылки "Новости компании" и предлагать посетителям подписаться на него; в дальнейшем, при создании новостного сообщения, вы можете указать, что это сообщение должно отправляться по списку рассылки "Новости компании" - сообщение будет отослано тем подписчикам, которые подписаны на эту рассылку.

    Фильтр

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

    Поле | Описание
ID | Идентификатор рассылки, под которым она зарегистрирован в базе данных.
Сайт | Сайт, на котором действуют требуемые рассылки.
Активность | Данное поле позволяет отобрать рассылки, чей статус активен или неактивен, либо отобразить как активные, так и неактивные рассылки.
Публикация | Позволяет отобрать рассылки, отображаемые на сайте (т.е. те, которые предлагаются посетителям для подписки).
Автоматическая | Позволяет отобрать автоматические либо неавтоматические рассылки.

    Для того чтобы отфильтровать рассылки по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех рассылок нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой рассылки.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Поля формы

    Таблица списков рассылок отображает списки рассылки. Нижеследующая таблица описывает поля таблицы.

    Колонка | Описание
Колонка флажков | Поле предназначено для выбора списков рассылки, к которым предполагается применить какое-либо правило или действие.
Меню действий | При нажатии на кнопку действий конкретного списка рассылки отображается меню, позволяющее Изменить или Удалить правило.
ID | Идентификатор рассылки, под которым оно зарегистрировано в базе данных.
Название | Название рассылки, отображаемое посетителям.
Сайт | Сайт рассылки.
Сорт. | Вес сортировки списка рассылки. Чем больше это значение, тем выше в списке, показываемом посетителям, располагается эта рассылка.
Акт. | Статус активности рассылки. Если рассылка активна, пользователи могут подписаться на нее.
Публ. | Поле показывает, является ли данная рассылка публичной. Т.е. разрешен или запрещён показ ссылки для подписки на данную рассылку в публичном разделе сайта.
Авт. | Признак автоматической генерации выпусков, относящихся к данной рассылке. Если значение поля - Да, то выпуски данной рассылки формируются автоматически по расписанию и на основании выбранного шаблона.
Генерация | Если рассылка является автоматической (поле Авт. имеет значение Да), то в этом поле выводится дата и время последней генерации выпусков данной рассылки. Если генерация выпусков не происходила, то в поле отображается дата и время, в которое рассылка стала автоматической и активной.


Создание и редактирование рассылки

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Для создания и изменения рассылки применяется форма одного типа.

    Контекстная панель

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

    Поля формы

    Вкладка "Рассылка"

    Поле | Описание
Активна | Статус активности рассылки. Если рассылка активна, пользователи могут подписаться на нее.
Выводить в списке публичных рассылок | Разрешается или запрещается показ ссылки для подписки на данную рассылку в публичном разделе сайта.
Показывать рассылку на сайте | Сайт рассылки.
Название* | Название рассылки, отображаемое посетителям.
Сортировка | Вес сортировки списка рассылки. Чем больше это значение, тем выше в списке, показываемом посетителям, располагается эта рассылка.
Описание для подписчиков | Описание рассылки, отображаемое посетителям сайта. Старайтесь создавать описание, краткое по объему и емкое по содержанию.
Автоматическая (выпуски формируются по расписанию и на основании шаблонов) | Установка флажка в данном поле указывает, что создаваемая рассылка должна быть автоматической. Выпуски автоматической рассылки будут генерироваться автоматически на основании выбранного шаблона и отправляться подписчикам по заданному расписанию.

    * - Поле, обязательное для заполнения.

    Вкладка "Автоматическая генерация"

    Эта вкладка доступна только при создании/редактировании автоматической рассылки.

    Поле | Описание
Расписание
Время последней генерации выпуска * | В данном поле выводится дата и время последней генерации сообщений автоматической рассылки. При создании новой автоматической рассылки в данное поле будет подставлена дата и время создания рассылки. Значение поля используется для задания максимальной даты, после которой сообщения автоматической рассылки не будут генерироваться и рассылаться.
Дни месяца | Задается список чисел месяца, по которым будет происходить автоматическая генерация выпусков рассылки. Возможно указание как отдельных дат через запятую (например: 1,8,10), так и диапазона дат (например: 19-25, 27-30).
Дни недели | Дни недели, в которые выпуски рассылки должны генерироваться и рассылаться. Примечание Для осуществления автоматической генерации выпусков необходимо задать значение хотя бы одного из параметров: дней недели либо чисел месяца. Если одновременно были заданы и дни недели, и числа месяца, то генерация выпусков будет происходить при календарном совпадении данных параметров. Например, если был выбран день недели Пт и задано число месяца 10, то генерация выпусков будет происходить в том случае, если десятое число месяца выпадает на пятницу.
Время* | Задается время, в которое будет происходить автоматическая генерация выпусков данной рассылки. Возможно указание списка значений (например: 8:00, 16:00, 24:00).
Шаблон для автоматической генерации выпусков
Доступные шаблоны* | В списке доступных шаблонов выбирается шаблон, на основании которого будут автоматически генерироваться выпуски данной рассылки. Если доступные шаблоны отсутствуют, то будет выведено сообщение: “Не найдено ни одного шаблона для автоматической генерации выпусков”. Шаблоны для автоматической генерации выпусков могут быть созданы с использованием API функций продукта (см. класс CPostingTemplate).
Поля письма
От кого* | Указывается адрес отправителя, который будет подставляться в поле От кого автоматически сгенерированных сообщений рассылки. По умолчанию данное поле имеет значение, заданное на странице настроек модуля Рассылки.

    * - Поля, обязательные для заполнения.

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохраняет параметры рассылки и переходит к отображению списка рассылок.
Применить | Сохраняет параметры рассылки. Редактирование продолжается.
Отменить | Отменяет изменения, внесённые в параметры рассылки.

    См. также

    Списки рассылки


Проверка шаблона рассылки

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

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

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

    Контекстная панель

    Ссылка | Описание
Список | Ссылка на страницу со списком рассылок.
Добавить | Ссылка на страницу создания новой рассылки.
Редактировать | Ссылка для перехода к редактированию рассылки, проверка шаблона которой осуществляется на данной странице.
Удалить | Удаление рассылки, проверка шаблона которой осуществляется на данной странице.

    Поля формы - вкладка "Проверка"

    Поле | Описание
Название рассылки | Название рассылки, проверка шаблона которой осуществляется на данной странице.
Название шаблона | Название проверяемого шаблона для автоматической генерации выпусков.
Описание шаблона | Выводится описание шаблона.
Интервал времени
*С (DD.MM.YYYY HH:MI:SS) | В данном поле указывается нижняя граница периода, за который будет осуществляться проверка шаблона. Т.е. дата и время последней генерации сообщений рассылки на основе выбранного шаблона. Для новой автоматической рассылки по умолчанию подставляется дата и время ее создания.
*По (DD.MM.YYYY HH:MI:SS) | В данном поле указывается верхняя граница периода, за который будет осуществляться проверка шаблона. Т.е. дата и время предстоящей генерации сообщений рассылки на основе выбранного шаблона. Пример Если в настройках рассылки указано, что генерация сообщений будет осуществляться 1 числа каждого месяца, то для проверки вида сообщений рассылки, например, в августе данные поля будут заполнены следующим образом: - в поле начала действия шаблона будет указана дата предыдущего выпуска: 1 июля (01.07.2005); - в поле окончания действия шаблона будет указана дата предстоящего выпуска: 1 августа (01.08.2005).

    * - Поля, обязательные для заполнения.

    Для проверки шаблона нужно нажать кнопку “Проверить”. В результате будет выведена таблица, содержащая следующую информацию:

    Массив входных параметров
[параметры шаблона в базе данных системы] | Выводятся значения параметров шаблона, используемые для его идентификации в системе.
Тело письма
 | Выводится сообщение в том виде, в котором оно будет получено подписчиками.
Параметры выпуска
[ параметры выпуска ] | Выводятся значения параметров выпуска, относящегося к данной рассылке, заданные на странице создания/редактирования выпуска.

    Кнопки управления

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


Настройки

Данная форма (Настройки -> Настройки модулей -> Подписка, рассылки) предназначена для задания общесистемных параметров модуля подписки и рассылки.

Настройка параметров модуля - вкладка "Настройки"

Параметр | Описание
Разрешить анонимную подписку | Если флаг установлен, посетителям сайта позволено подписываться на рассылки без предварительной регистрации на сайте.
Показывать ссылки на авторизацию при анонимной подписке | Если флаг установлен и текущий пользователь имеет статус анонимного пользователя (то есть, вход пользователем не был произведен), отображается ссылка, предлагающая посетителю войти на сайт с использованием его регистрационных данных.
Публичный раздел, где находится страница редактирования подписки | Путь к папке в публичном разделе, в которой находится страница редактирования подписки, относительно корня сайта. При задании пути допустимо использование макроса #LANG_DIR#
Использовать визуальный HTML-редактор | Если опция включена, при создании выпусков новостей по умолчанию используется HTML-редактор.
Интервал в секундах для пошаговой рассылки в режиме "Персонально подписчику" (0 - рассылать за один шаг) | Интервал отправки писем подписчикам. Режим Персонально подписчику предполагает отправку индивидуальных сообщений каждому подписчику с адресом подписчика в поле Кому каждого такого письма.
Максимальное количество адресов в поле BCC не в режиме "Персонально подписчику" | Количество адресов, которое может быть выведено в поле BCC в случае неиспользования режима "Персонально подписчику". Если в поле указано "0", то отправляется одно письмо всем подписчикам.
Адрес отправителя по умолчанию | Адрес отправителя, по умолчанию используемый во всех создаваемых сообщениях.
Адрес получателя по умолчанию | Адрес получателя, по умолчанию используемый в поле Кому каждого создаваемого сообщения.
Кодировки сообщения в рассылку | Перечень допустимых таблиц кодов символов для создания сообщений.
Разрешить 8-битные символы в заголовке письма | Если опция включена, в заголовке письма используются символы расширенного ASCII (0-255). В противном случае, такие символы (обычно национальные, напр., символы русского алфавита) выводятся в кодировке Base-64.
Дополнительный параметр для передачи функции mail | Для более детальной настройки указывается дополнительный параметр функции mail.
Отправлять картинки в виде вложений в письмо | Если опция включена, изображения отправляются как вложения. В противном случае, в тело письма вставляется ссылка на картинку.
Через сколько дней удалять неподтвержденные подписки (0 - не удалять) | Если подписчик не подтвердил своё желание подписаться на выбранную рассылку (обычно путём перехода на указываемую ему страницу в письме-запросе на подтверждение подписки), то спустя указанное количество дней такой подписчик будет удален из базы данных.
Метод автоматической рассылки Автоматическая рассылка может осуществляться одним из следующих методов:
  • Агент - автоматическая рассылка осуществляется внутренними средствами системы;
  • Крон - используется при установке системы на сервер под управлением ОС Unix; предусматривает использование демона cron ОС Unix.
Количество писем для автоматической рассылки агентом за один запуск в режиме “Персонально подписчику” Количество писем выпуска (для которого задано свойство Отправлять письмо персонально каждому получателю), отправляемое агентом за один запуск.
Применяется для снижения нагрузки на сервер.
Метод автоматической генерации выпусков Автоматическая генерация выпусков может осуществляться одним из следующих методов:
  • Агент - автоматическая генерация осуществляется внутренними средствами системы;
  • Крон - используется при установке системы на сервер под управлением ОС Unix; предусматривает использование демона cron ОС Unix.
Интервал проверки необходимости генерации выпусков в секундах Задается интервал времени, каждый раз по истечении которого будет проверяться необходимость генерации выпусков.
Интервал времени задается в секундах.

Настройка уровней доступа к модулю - вкладка "Доступ"

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

В качестве уровней доступа возможен выбор между:

  • закрыт - доступ невозможен;
  • просмотр всех данных модуля - доступ открыт только на просмотр файлов, но не на их изменение;
  • запись - доступ открыт и на чтение, и на изменение файлов..
Поле | Описание
По умолчанию | Позволяет изменять настройки "по умолчанию", влияющие на все группы пользователей, имеющие настройку доступа "по умолчанию".
[Группа пользователей] | Изменение настроек доступа для конкретной группы.


Как добавить подписчика

Для добавления нового подписчика вручную, сделайте следующее.

  1. Откройте форму Список подписчиков (Сервисы -> Рассылки -> Подписчики).
  2. Нажмите кнопку Добавить, расположенную на контекстной панели.
  3. Заполните форму данных о подписчике. Вы можете указать следующие данные:
    Подписка подтверждена
    Флаг, определяющий, подтвердил подписчик желание получать сообщения или нет. Вы можете принудительно установить этот флаг.
    Анонимный подписчик
    Флаг, определяющий статус анонимности подписчика (анонимным признается подписчик, не зарегистрированный на сайте).
    Подписка активна
    Установите этот флаг, иначе подписчик не сможет получать сообщения рассылок.
    E-Mail
    Адрес, на который будут отсылаться сообщения рассылок.
    Выслать подписчику код подтверждения при изменении (добавлении) адреса
    Если этот флаг установлен, то становится активным поле Отправить письмо на основе шаблона сайта, и подписчику будет выслан код подтверждения подписки на основе выбранного шаблона сайта.
  4. После заполнения формы, нажмите кнопку Сохранить или Применить.


Как создать сообщение

Для создания нового сообщения проделайте следующее.
  1. Откройте форму Список выпусков (Сервисы -> Рассылки -> Выпуски).
  2. Нажмите кнопку Добавить, расположенную на контекстной панели.
  3. Заполните поля письма на вкладке Выпуск: От кого, Кому, Тема. Подписчики, получившие сообщение, увидят именно этот текст в соответствующих полях. На этой де вкладке введите текст сообщения. В текстовом режиме отсутствует возможность форматирования текста и вставки рисунков. Режим HTML позволяет использовать любое форматирование сообщения. В то же время, некоторые пользователи могут желать получать сообщения в текстовом формате. В любом случае, выбор формата сообщения остается за Вами.
  4. Выберите получателей сообщения на вкладке Получатели. Существуют следующие опции выбора получателей сообщения:
    Подписчики рассылок
    Указать рассылки, на которые подписаны клиенты. При подписке на рассылки подписчик указывает, на какие рассылки он желает подписаться; таким образом, устанавливается привязка подписчика к определённой рассылке.
    Можно сузить диапазон подписчиков-получателей сообщения, выбрав определённый формат подписки; при отправке сообщения, оно будет доставляться только подписчикам, указавшим соответствующий формат подписки;
    Пользователи сайта
    Если требуется доставка сообщения определённым пользователям сайта, вы можете выбрать их в этом списке.
    Дополнительная фильтрация адресов
    Существует возможность сузить список получателей сообщения, установив фильтр на адреса электронной почты. Например, при необходимости вы можете отправить сообщение только подписчикам с определённого сервера. В качестве фильтра можно использовать полный или частичный адрес e-mail.
    Дополнительные адреса получателей
    Если требуется отправить сообщение получателям, не подписанным ни на одну из рассылок и не входящим ни в одну из групп пользователей (т.е. сторонним адресатам), укажите здесь адреса их электронной почты. В качестве разделителей адресов используйте запятую или перевод строки.
  5. С помощью вкладки Вложения вы можете загрузить вложения письма.
  6. Наконец, на вкладке Параметры выберите кодировку, в которой сообщение будет отправлено. Данное поле должно соответствовать кодировке, используемой в создаваемом сообщении (обычно Windows-1251 для сообщений, создаваемых в операционной системе Windows).
    Опцию Отправлять письмо персонально каждому получателю рекомендуется не отключать.
    При необходимости осуществления автоматической отправки сообщения поставьте флажок в соответствующем поле и укажите дату и время отправки.
  7. Для сохранения сообщения, нажмите кнопку Сохранить или Применить. (При нажатии кнопки Сохранить происходит возврат в форму Список выпусков.)

    Для немедленной отправки сообщения, нажмите кнопку Отправить.


Как импортировать список адресов подписчиков

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

Подготовка файла

Файл, содержащий импортируемые адреса подписчиков, должен быть подобающим образом сформатирован. Адреса в файле могут:

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

Другими словами, файл может выглядеть следующим образом:

user1@host.com,user1@host.com,user1@host.com,user1@host.com

или

user1@host.com
user1@host.com
user1@host.com
user1@host.com

Импорт адресов

  1. Откройте форму Импорт адресов (Сервисы -> Рассылки -> Импорт адресов).
  2. Нажмите кнопку Обзор... и укажите файл, содержащий список адресов.
  3. Если требуется выслать код подтверждения подписки добавляемым подписчикам, установите флаг Выслать код подтверждения подписки.
  4. Если требуется автоматически подтвердить подписку всем добавляемым подписчикам, включите опцию Установить флаг подтверждения подписки.
  5. Если необходимо зарегистрировать добавляемых подписчиков на сайте и создать каждому из них персональный аккаунт, выберите опцию Как пользователей... в поле Добавить подписчиков.

    Если вы выбрали регистрацию добавляемых подписчиков как пользователей на сайте, то:
    • для отсылки регистрационной информации каждому из регистрируемых пользователей, включите опцию Выслать регистрационную информацию...;
    • выберите группы пользователей, к которым будут приписаны регистрируемые пользователи.
  6. Выберите рассылки, на которые по умолчанию будут подписаны пользователи.
  7. Выберите формат рассылки для отсылки сообщений регистрируемым пользователям.
  8. Нажмите кнопку Импортировать адреса.


Как отправить сообщение

Существует несколько способов отправки сообщений в зависимости от их статуса.

Создаваемое сообщение

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

Статус "Черновик"

Если сообщение было сохранено в форме Добавление выпуска, но не отправлено, можно отправить его:

  • перейдя к редактированию сообщения, в форме Редактирование выпуска нажать на кнопку Отправить;
  • в таблице формы Список выпусков выбрать Отправить в меню действий соответствующего сообщения.

Статус "Отправлено"

Для повторной отправки сообщения следует вначале перевести его в статус Черновик.

  1. Откройте сообщения для редактирования, выбрав Изменить в меню действий соответствующего сообщения.
  2. В списке выбора Перевести в статус выберите статус Черновик.
  3. Нажмите кнопку Сохранить или Применить.
  4. По кнопке Сохранить вы вернетесь в форму Список выпусков, где нажмите Отправить в меню действий требуемого сообщения.
  5. Если вы нажали кнопку Применить, то нажмите на появившуюся кнопку Отправить.


Для чего нужны списки рассылки

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для чего нужны списки рассылки?

Списки рассылки - средство группировки подписчиков по темам новостных сообщений.

Списки рассылки не содержат новостных сообщений или подписчиков. Списки рассылки служат удобным средством группировки подписчиков, получающих определённые новостные сообщения.

Например, Вы можете создать список рассылки "Новости компании" и предлагать посетителям подписаться на него. Подписчик, выбрав рассылку для подписки, тем самым устанавливает привязку своего адреса к этой рассылке. В дальнейшем, при создании новостного сообщения, Вы можете указать, что это сообщение должно отправляться по списку рассылки "Новости компании" - сообщение будет отослано тем подписчикам, которые подписаны на эту рассылку.


Как создать список рассылки

Для создания новой рассылки проделайте следующее:
  1. Откройте форму Список рассылок (Сервисы -> Рассылки -> Список рассылок).
  2. Нажмите кнопку Добавить, с помощью которой будет открыта форма Добавление рассылки.
  3. Для активации рассылки должен быть установлен флаг Активна.
  4. Чтобы рассылка отображалась в списке доступных рассылок при подписке, необходимо отметить опцию Выводить в списке публичных рассылок.
  5. Выберите сайт, в котором будет доступна рассылка.
  6. Обязательный шаг
    Введите название рассылки. Это название будет показываться посетителям при подписке.
  7. Существует возможность установить вес сортировки для конкретной рассылки. Чем больше значение этого параметра, тем выше в списке доступных рассылок будет располагаться данная рассылка.
  8. Введите описание рассылки. Описание должно быть максимально информативным; на его основе посетитель будет принимать решение о подписке на данную рассылку. Если вы хотите создать автоматическую рассылку, то отметьте опцию Автоматическая, после чего становится активной закладка Автоматическая генерация. На этой закладке сделайте следующее:
    • Создайте расписание для генерации выпусков данной рассылки, обязательно заполнив поля Время последней генерации выпуска и Время.
    • Выберите шаблон генерации из предложенного списка. Если подходящий шаблон не был найден, то его необходимо создать.
    • Заполните обязательное поле письма От кого.
  9. Для сохранения рассылки нажмите кнопку Сохранить или Применить. (При нажатии кнопки Сохранить происходит возврат в форму Список рассылок).

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


Страница рассылок

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Страница рассылок"

Данный компонент служит для создания страницы со списком рассылок и формами управления подпиской. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:subscribe.index","",Array(
     "SHOW_COUNT" => "N",
     "SHOW_HIDDEN" => "N",
     "PAGE" => "#SITE_DIR#personal/subscribe/subscr_edit.php",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
SHOW_COUNT
[Y|N] При отмеченной опции в публичной части будет выведено количество подписчиков на представленные рассылки.
SHOW_HIDDEN
[Y|N] При установленной опции в списке рассылок будут выведены все активные рассылки вне зависимости от опции Выводить в списке публичных рассылок в настройках рассылки.
Шаблоны ссылок
PAGE
Указывается путь к странице редактирования подписки.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Рассылки.


Страница редактирования подписки

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Страница редактирования подписки"

Компонент служит для создания страницы с формами для добавления или редактирования адреса подписки. Если пользователь не авторизован на сайте, то в зависимости от настроек он сможет подписаться на рассылку, указав свой e-mail или перейти к редактированию параметров рассылки после ввода e-mail и кода подтверждения (пароля) подписки, который высылается на адрес электронной почты после оформления подписки.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:subscribe.edit","",Array(
     "SHOW_HIDDEN" => "N",
     "ALLOW_ANONYMOUS" => "Y",
     "SHOW_AUTH_LINKS" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
SHOW_HIDDEN
[Y|N] При отмеченной опции на странице редактирования будут выведены все активные рубрики вне зависимости от настройки рассылки Выводить в списке публичных рассылок.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
ALLOW_ANONYMOUS
[Y|N] При установленной опции анонимные пользователи смогут подписываться на рассылку, лишь указав свой адрес электронной почты без необходимости регистрации на сайте. В случае неустановленной опции подписаться на рассылку анонимный пользователь не сможет. Только уже подписавшийся пользователь сможет редактировать параметры рассылки после ввода e-mail и кода подтверждения (пароль) подписки.
SHOW_AUTH_LINKS
[Y|N] При установленной опции для анонимного пользователя при подписке на рассылку будут выведены формы для авторизации (если он зарегистрирован, то сможет авторизоваться) и форма для регистрации (пользователь сможет зарегистрироваться, если не имеет учетной записи на сайте).
SET_TITLE
[Y|N] При установленном флаге заголовком страницы будет Редактирование параметров подписки при редактировании подписки или Добавление адреса подписки при создании подписки.


Форма подписки

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма подписки"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:subscribe.form","",Array(
     "USE_PERSONALIZATION" => "Y",
     "PAGE" => "#SITE_DIR#personal/subscribe/subscr_edit.php",
     "SHOW_HIDDEN" => "N",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
USE_PERSONALIZATION
[Y|N] При отмеченной опции будут определяться имеющиеся подписки текущего пользователя.
Источник данных
SHOW_HIDDEN
[Y|N] При установленной опции в списке рассылок будут выведены все активные рассылки вне зависимости от опции Выводить в списке публичных рассылок в настройках рассылки.
Шаблоны ссылок
PAGE
Указывается путь от корня сайта (#SITE_DIR) к странице редактирования подписки.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.


Техподдержка

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

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


Рабочий стол

Рабочий стол содержит набор сводных отчетов по работе службы техподдержки. Сводные отчеты реализованы при помощи следующих обзорных таблиц, отображающих количество назначенных, закрытых и открытых обращений:

  • по ответственным сотрудникам службы;
  • по критичности;
  • по текущему статусу;
  • по сложности;
  • по категории;
  • по источнику обращения;
  • по оценкам ответов на обращения;
  • по уровням поддержки.

Фильтр

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

Нижеследующая таблица описывает поля фильтра.

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

Для того чтобы отфильтровать отчеты по заданным критериям поиска, нажмите кнопку Найти. Для отображения полных отчетов нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Показать сообщения | При включенной опции (да) отображается колонка Сообщения.

Сводные отчеты

Все отчеты показывают количество открытых и закрытых обращений. Открытые обращения ранжированы в соответствии с их источником:

- последний раз в обращение писал оппонент;
- последний раз в обращение писал сотрудник техподдержки;
- обращение закрыто.

Ответственный

Данный отчет показывает количество открытых и закрытых обращений, а также общее количество обращений, отнесенных к конкретному сотруднику службы техподдержки. Открытые обращения ранжированы в соответствии с источником последней записи в обращении - сотрудником техподдержки или оппонентом.

Ответственный |  |  |  | Открыто | Всего
[1] | [2] | [3] | [4] | [5] | [6]
  1. Сотрудник техподдержки, для которого отображается статистика обращений.
  2. Количество открытых обращений, в которые в последний раз писал клиент техподдержки.
  3. Количество открытых обращений, в которые в последний раз писал сотрудник техподдержки.
  4. Количество закрытых обращений.
  5. Количество открытых обращений, за которые ответственен данный сотрудник.
  6. Суммарное количество всех сообщений во всех обращенях, за которые ответственен данный сотрудник.

Критичность

Данный отчет показывает количество открытых и закрытых обращений, а также общее количество обращений по степени их критичности. Открытые обращения ранжированы в соответствии с их статусами.

Критичность |  |  |  | Открыто | Всего
[1] | [2] | [3] | [4] | [5] | [6]
  1. Уровень критичности обращения.
  2. Количество открытых обращений, имеющих данный уровень критичности, в которые в последний раз писал клиент техподдержки.
  3. Количество открытых обращений, имеющих данный уровень критичности, в которые в последний раз писал сотрудник техподдержки.
  4. Количество закрытых обращений, имеющих данный уровень критичности.
  5. Количество сообщений во всех открытых обращениях, имеющих данный уровень критичности.
  6. Суммарное количество всех сообщений во всех обращениях, имеющих данный уровень критичности.

Статус

Данный отчет показывает количество открытых и закрытых обращений, а также общее количество обращений в определённом статусе. Открытые обращения ранжированы в соответствии с источником последней записи в обращении - сотрудником техподдержки или оппонентом.

Статус |  |  |  | Открыто | Всего
[1] | [2] | [3] | [4] | [5] | [6]
  1. Статус
  2. Количество открытых обращений в данном статусе, в которые в последний раз писал клиент техподдержки.
  3. Количество открытых обращений в данном статусе, в которые в последний раз писал сотрудник техподдержки.
  4. Количество закрытых обращений в данном статусе.
  5. Количество сообщений во всех открытых обращениях в данном статусе.
  6. Суммарное количество всех сообщений во всех обращениях в данном статусе.

Сложность

Данный отчет показывает количество открытых и закрытых обращений, а также общее количество обращений определённого уровня сложности. Открытые обращения ранжированы в соответствии с источником последней записи в обращении - сотрудником техподдержки или оппонентом.

Сложность |  |  |  | Открыто | Всего
[1] | [2] | [3] | [4] | [5] | [6]
  1. Уровень сложности обращения.
  2. Количество открытых обращений данного уровня сложности, в которые в последний раз писал клиент техподдержки.
  3. Количество открытых обращений данного уровня сложности, в которые в последний раз писал сотрудник техподдержки.
  4. Количество закрытых обращений данного уровня сложности.
  5. Количество сообщений во всех открытых обращениях данного уровня сложности.
  6. Суммарное количество сообщений во всех обращениях данного уровня сложности.

Категория

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

Данный отчет показывает количество открытых и закрытых обращений, а также общее количество обращений, отнесенных к конкретной категории. Открытые обращения ранжированы в соответствии с источником последней записи в обращении - сотрудником техподдержки или оппонентом.

Категория |  |  |  | Открыто | Всего
[1] | [2] | [3] | [4] | [5] | [6]
  1. Категория обращения.
  2. Количество открытых обращений, находящихся в данной категории, в которые в последний раз писал клиент техподдержки.
  3. Количество открытых обращений, находящихся в данной категории, в которые в последний раз писал сотрудник техподдержки.
  4. Количество закрытых обращений, находящихся в данной категории.
  5. Количество сообщений во всех открытых обращениях, находящихся в данной категории.
  6. Суммарное количество всех сообщений во всех обращениях, находящихся в данной категории.

Источник

Источником обращения в службу техподдержки может быть любое средство связи: телефон, факс, электронная почта, интернет-пейджеры и т.п. Система техподдержки позволяет ранжировать обращения по их источникам.

Данный отчет показывает количество открытых и закрытых обращений, а также общее количество обращений, отнесенных к конкретному источнику обращения. Открытые обращения ранжированы в соответствии с источником последней записи в обращении - сотрудником техподдержки или оппонентом.

Источник |  |  |  | Открыто | Всего
[1] | [2] | [3] | [4] | [5] | [6]
  1. Источник обращения.
  2. Количество открытых обращений, поступивших с данного источника, в которые в последний раз писал клиент техподдержки.
  3. Количество открытых обращений, поступивших с данного источника, в которые в последний раз писал сотрудник техподдержки.
  4. Количество закрытых обращений, поступивших с данного источника.
  5. Количество сообщений во всех открытых обращениях, поступивших с данного источника.
  6. Суммарное количество всех сообщений во всех обращениях, поступивших с данного источника.

Оценка ответов

Данный отчет показывает количество открытых и закрытых обращений, а также общее количество обращений в соответствии с оценкой работы службы техподдержки. Открытые обращения ранжированы в соответствии с источником последней записи в обращении - сотрудником техподдержки или оппонентом.

Оценка ответов |  |  |  | Открыто | Всего
[1] | [2] | [3] | [4] | [5] | [6]
  1. Балл оценки ответов.
  2. Количество открытых обращений, имеющих данный балл оценки, в которые в последний раз писал клиент техподдержки.
  3. Количество открытых обращений, имеющих данный балл оценки, в которые в последний раз писал сотрудник техподдержки.
  4. Количество закрытых обращений, имеющих данный балл оценки.
  5. Количество сообщений во всех открытых обращениях, имеющих данный балл оценки.
  6. Суммарное количество всех сообщений во всех обращениях, имеющих данный балл оценки.

Уровни поддержки

Данный отчет показывает количество открытых и закрытых обращений, а также общее количество обращений, отнесенных к конкретному уровню поддержки. Открытые обращения ранжированы в соответствии с источником последней записи в обращении - сотрудником техподдержки или оппонентом.

Ответственный |  |  |  | Открыто | Всего
[1] | [2] | [3] | [4] | [5] | [6]
  1. Название уровня техподдержки.
  2. Количество открытых обращений данного уровня техподдержки, в которые в последний раз писал клиент техподдержки.
  3. Количество открытых обращений данного уровня техподдержки, в которые в последний раз писал сотрудник техподдержки.
  4. Количество закрытых обращений данного уровня техподдержки.
  5. Количество сообщений во всех открытых обращениях данного уровня техподдержки.
  6. Суммарное количество всех сообщений во всех обращениях данного уровня техподдержки.


Обращения

В этом разделе

  • Фильтр
  • Список обращений
  • Действия над обращениями

    • Форма Обращения отображает обращения пользователей в службу техподдержки. С помощью этой формы вы можете:

    • просматривать обращения пользователей;
    • редактировать и удалять обращения;
    • изменять состояния обращений и их статусы.

    Каждое обращение, помимо стандартных состояний и статусов, может быть идентифицировано как спам.

    Фильтр

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

    Параметр | Описание
    Найти | Это поле позволяет найти требуемые сообщения по наиболее типичным критериям, выбираемым в списке: ID, текст, заголовок, автор.
    *ID обращения | ID обращения в базе. Требуемые ID можно перечислять через запятую.
    Сайты | Сайт, в котором было создано обращение.
    Индикатор Вы можете выбрать один и более цвет индикаторов для фильтрации обращений:

    - последний раз в обращение писал ваш оппонент (вы ответственный);
    - последний раз в обращение писал оппонент (вы не ответственный);
    - последний раз в обращение писали вы;
    - последний раз в обращение писал сотрудник техподдержки;
    - обращение закрыто.
    Закрыто/открыто Закрыто - обращение было закрыто;
    Открыто - обращение не закрыто.
    Отложенное обращение | Позволяет отобразить только отложенные сообщения, неотложенные сообщения или все.
    Спам | Позволяет отобразить только сообщения, которые могут быть расценены как спам, не спам или все.
    Подозрительно на спам | То же, но для сообщений со статусом подозрительно на спам.
    Создано | Интервал даты создания обращения.
    Изменено | Интервал даты последнего изменения обращения.
    *Автор | Автор обращений, которые требуется отобразить.
    *Кто изменил | Сотрудник техподдержки, изменивший обращения, которые требуется отобразить.
    *Ответственный | Сотрудник техподдержки ответственный за обращение.
    Длительность решения проблемы (дни) | Интервал количества дней, прошедших с момента создания обращения до его закрытия.
    Сообщений | Интервал количества сообщений в требуемых обращениях.
    Время решения (мин.) | Интервал времени, прошедшего с момента создания обращения до его закрытия.
    Просроченных сообщений | Интервал количества просроченных сообщений в требуемых обращениях.
    Количество дней до авто-закрытия | Интервал количества дней, оставшихся до автоматического закрытия в требуемых обращениях.
    Уровень поддержки | Уровень поддержки требуемых обращений.
    Категория | Категория отображаемых обращений.
    Критичность | Критичность отображаемых обращений.
    Статус | Статус отображаемых обращений.
    Сложность | Уровень сложности требуемых обращений.
    Оценка ответа | Оценка ответов, даваемая создателем отображаемых обращения.
    Источник | Источник обращения. Если обращение было создано с помощью веб-формы, то имя источника – <web>.
    *Заголовок | Маска для заголовка отображаемых обращений.
    *Комментарий | Маска для текста комментария отображаемых обращений.
    *Текст сообщения | Маска для текста сообщения отображаемых обращений.

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

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления нового обращения.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список обращений

    Колонка | Описание
    Колонка флажков | Это поле позволяет выбрать все или только определённые сообщения для применения к ним действий при помощи вспомогательной формы Действия внизу таблицы.
    Меню
    действий
             При нажатии на кнопку конкретного обращения, отображает меню, позволяющее:
    • Изменить - отредактировать обращение;
    • Закрыть - закрыть сообщение;
    • Открыть - открыть ранее закрытое обращение;
    • Отметить как подозрительное на спам - устанавливает состояние обращения подозрение на спам;
    • Отметить как спам - идентифицирует обращение как спам;
    • Отметить как спам и удалить -пометить сообщение как спам и удалить его;
    • Удалить - удалить сообщение.
    ID | Идентификатор обращения. При клике на идентификаторе открывается форма правки обращения.
    Индикатор Индикатор обращения:

    - последний раз в обращение писал ваш оппонент (вы ответственны);
    - последний раз в обращение писал оппонент (вы не ответственны);
    - последний раз в обращение писали вы;
    - последний раз в обращение писал сотрудник техподдержки;
    - обращение закрыто.
    Заголовок | Заголовок обращения.
    Автор | Автор и время создания обращения.
    Изменено | Время изменения и имя последнего пользователя, изменившего обращение.
    Дата ответа | Дата ответа на обращение.
    Сбщ. | Количество сообщений в обращении.
    Уровень | Уровень техподдержки обращения.
    Категория | Категория, к которой относится обращение.
    Критичность | Критичность обращения.
    Ответственный | Ответственный за обращение.
    Статус | Статус, в котором находится обращение.
    Сложность | Уровень сложности обращения.
    Оценка | Оценка ответа на обращение.
    Время решения | Время, затраченное на решение обращения.
    Выбрано | Количество обращений, выбранных для отображения.
    Отмечено | Количество обращений, отмеченных флажком в поле [1].

    Действия над обращениями

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

    Предусмотрены следующие действия:

    • Закрыть - закрывает обращение.
    • Закрыть и оповестить - закрывает обращение и оповещает об этом пользователей сайта, имеющих право доступа администратор техподдержки.
    • Открыть - переводит обращение в открытое состояние. Открытые обращения допускают создание новых сообщений.
    • Открыть и оповестить - переводит обращение в открытое состояние и оповещает об этом пользователей сайта, имеющих право доступа администратор техподдержки.
    • Снять отметку о спаме - снимает с обращения подозрение на спам.
    • Отметить как подозрительное на спам - устанавливает состояние обращения подозрение на спам.
    • Отметить как спам - идентифицирует обращение как спам.
    • Отметить как спам и удалить - идентифицирует обращение как спам и удаляет его.


Создание и редактирование обращения

Данная форма предназначена для явного создания обращения в службу техподдержки.

При создании нового обращения не сотрудником техподдержки, в зависимости от категории, критичности, либо источника, ответственный может быть назначен автоматически. Если ответственный не был определён, то в случае установки параметра Ответственный по умолчанию в настройках модуля будет назначен ответственный по умолчанию. После того как обращение будет добавлено в базу, ответственный получит извещение по электронной почте. Если ответственный не выбран, то извещение будет отослано на электронные адреса всех пользователей имеющих право "администратор техподдержки" (в том числе и пользователи группы #1).

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

Под изменением обращения понимается:

  • изменение категории, критичности, статуса обращения, а также оценки ответов;
  • назначение нового ответственного за обращение;
  • добавление нового сообщения;
  • закрытие, либо открытие обращения.

Контекстная панель

Кнопка | Описание
Список | Переход к списку всех обращений.
Создать | Создает новое обращение. Отображается только при редактировании обращения.
Закрыть | Закрывает текущее обращение. Отображается только при редактировании обращения.
Удалить | Удаляет текущее обращение. Отображается только при редактировании обращения.
Спам Открывает меню с действиями:
  • Отметить обращение как подозрительное на спам;
  • Отметить обращение как спам;
  • Отметить обращение как спам и удалить.

Отображается только при редактировании обращения.

Форма редактирования обращения - вкладка "Обращение"

Поле | Описание
Сайт | Сайт, на котором зарегистрировано обращение.
Автор | Источник (сайт, телефон и т.п.) и автор обращения.
Создано Время создания обращения; пользователь создавший обращение.

Данное поле отображается только в режиме редактирования существующего обращения.
Изменено Время последней модификации обращения; автор модификации.

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

Данное поле отображается только в режиме редактирования существующего обращения.
Обсуждение

Данная секция отображается только в режиме редактирования существующего обращения.
  • # - порядковый номер сообщения. Определяет порядок, в соответствии с которым выводятся сообщения в дискуссии.
  • Время создания сообщения.
  • Автор сообщения.
  • [Цитировать] – ссылка, позволяющая вставлять цитаты.
  • [Оригинал] - ссылка, ведущая в модуль почты на оригинальный EMail (в случае если сообщение было создано из модуля почты).
  • [Изменить] – ссылка, позволяющая редактировать сообщение. Доступна только администраторам.
  • [Удалить] – ссылка, позволяющая удалить сообщение. Доступна только администраторам.
Изображение и тело сообщения
Режим | Режим работы с обращением.
Сообщение скрыть, автора не оповещать При установке данного флага сообщение будет создано, как скрытое для автора обращения (если он не является сотрудником техподдержки). Помимо этого, не будет отослано почтовое сообщение автору обо всех изменениях, произведенных в данный момент; служба техподдержки уведомление получит.

Данное поле отображается только в режиме редактирования существующего обращения.
Не изменять статус обращения | В случае, если сообщение изменяется, установка этого флага позволяет избежать смены статуса обращения (например, с "последний раз в обращение писал оппонент" на "последний раз в обращение писали вы").
Источник / От кого | В данной группе полей сотрудник техподдержки может указать источник и автора сообщения. Если у сотрудника техподдержки есть право Чтение на главный модуль, то выбор пользователя можно осуществлять с использованием дополнительного окна (кнопка "..."). Помимо этого, при вводе ID пользователя рядом будет выводиться информация о пользователе (логин и имя).
Часто используемые ответы В выпадающем списке администратор либо ответственный может выбрать какой либо шаблон ответа.

Данное поле отображается только в режиме редактирования существующего обращения.
*Заголовок Заголовок сообщения.

Данное поле отображается только в режиме создания нового обращения.
*Сообщение Поле для ввода нового сообщения.

Данное поле отображается только в режиме создания нового обращения.
Прикрепить файлы | Поле для прикрепления и отправки файлов нового сообщения (если требуется).
Статус обращения | Статус обращения.
Сложность | Сложность обращения.
Ответственный | Пользователь ответственный за обращение.
Критичность обращения | Критичность обращения.
Оценка ответов Уровень оценки ответов.
Данное поле отображается только в режиме редактирования существующего обращения.
Категория обращения | Категория обращения.
Уровень поддержки | Требуемый уровень техподдержки для этого сообщения.
Время решения (мин.) Время решения обращения в мин.
Данное поле отображается только в режиме редактирования существующего обращения.
Отложенное обращение Определяет, возможно ли обращение отложить.
Данное поле отображается только в режиме редактирования существующего обращения.
Закрыть при отсутствии ответа через Количество дней, по истечении которых обращение будет автоматически закрыто.
Данное поле отображается только в режиме редактирования существующего обращения.
Закрыть обращение Флаг, позволяющий либо закрыть либо открыть обращение.

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

Данное поле отображается только в режиме редактирования существующего обращения.
* - Поля, обязательные для заполнения.

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

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

  • Категория обращения;
  • Ответственный за обращение;
  • Статус обращения;
  • Закрыть обращение;
  • Административный комментарий.

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

  • Критичность обращения;
  • Оценка ответов.

Вкладка "Редактирование параметров сообщения"

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

Поле | Описание
Источник / От кого | Источник и автор данного сообщения.
Создано | Дата и время создания
Порядковый номер | Порядковый номер сообщения, в соответствии с которым выводятся сообщения в дискуссии. Данное поле отображается только в режиме редактирования существующего обращения.
Отметка о спаме | Позволяет отметить сообщение как спам или подозрительное на спам.
Не изменять статус обращения | Установка этого флажка позволяет не изменять статус обращения.
Скрытое | Установка этого флажка скрывает сообщение от автора.
Запись журнала изменений | Установка этого флажка приводит к записи изменений сообщения в лог-файл.
Сообщение клиента было просрочено | Указывает, что на сообщение клиента (напр., автора обращения) ответ не был дан вовремя.
Сообщение | Тело сообщения.
Прикрепить новые файлы | Поля предназначенные для замены, либо удаления изображения.
ID внешнего оригинала | Идентификатор источника сообщения, например, электронной почты.
Время решения | Время решения в мин.
Дополнительное поле внешнего оригинала | Любая дополнительная информация о внешнем источнике.

Кнопки управления

Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком обращений.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров сообщения.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Графики, техподдержка

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Графики

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

Фильтр

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

Нижеследующая таблица описывает поля фильтра.

Наименование параметра | Описание
Период | Обозначает, данные за какой период времени следует использовать для построения графиков. Для задания временного диапазона можно использовать либо список с количеством дней, либо поля-календари.
Сайты | Сайты, данные по которым будут отображаться на графиках.
Ответственный Поле, позволяющее построить графики только для определённых сотрудников. Использование этого поля требует прав прав администратора техподдержки.

Для данного поля можно воспользоваться специальными логическими выражениями. Синтаксис выражений можно узнать, если кликнуть символ ? рядом с полем.
Уровень поддержки | Уровень поддержки выводимых обращений.
Категория | Требуемая категория выводимых обращений.
Критичность | Критичность выводимых обращений.
Статус | Статус выводимых обращений.
Оценка ответа | Оценка ответа обращений, которые следует отобразить.
Источник | Источник требуемых обращений.
Что показать на графике Данное поле позволяет указать, какие из графиков показывать:
  • открытые обращения;
  • закрытые обращения;
  • все обращения;
  • сообщения;
  • просроченные сообщения.

Для того чтобы отфильтровать отчеты по заданным критериям поиска, нажмите кнопку Найти. Для отображения полных отчетов нажмите кнопку Отменить.

Графики

График нагрузки на техподдержку

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

Пример графика

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

Диаграмма длительности решения проблем

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

Пример диаграммы

Диаграмма количеств сообщений, необходимых для решения проблемы

На данной диаграмме представлено процентное соотношение количеств сообщений в закрытых обращениях.

Пример диаграммы

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


Категории (справочник техподдержки)

В этом разделе

  • Фильтр
  • Записи справочника
  • Действия над записями
  • Как создать запись в справочнике
  • Как изменить запись в справочнике

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

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

    Фильтр

    Параметр | Описание
Найти | Это поле позволяет найти требуемые записи по наиболее типичным критериям, выбираемым в списке: заголовку и описанию.
*ID | Указывает на необходимость отображения конкретной записи в справочнике по ее ID.
Сайты | Отображать записи справочника только для указанных сайтов.
*Заголовок | Наименования записи справочника для отображения.
*Описание | Маска для текста описания.
*Символьный код | Символьный код типа справочника.
*Ответственный | Сотрудник техподдержки, ответственный за новые обращения, созданные в соответствующей категорией или с той или иной критичностью.
По умолчанию | Определяет, отображать ли только справочники по умолчанию, не по умолчанию или все.

    * - эти поля допускают использование специальных логических выражений.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой записи справочника. В открывшемся меню выберите, какой тип записи следует добавить: категорию, критичность, статус, оценку ответов, частый ответ, источник или сложность.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Записи справочника

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

    Колонка флажков | Меню действий | ID | Сорт. | Сайты | Заголовок | Ответст- венный
[1] | [2] | [3] | [4] | [5] | [6] | [7]
Выбрано: [8] | Отмечено: [9] |
    1. Это поле позволяет выбрать все или только определённые записи справочника для применения к ним действий при помощи панели Действия внизу таблицы.
    2. При нажатии на кнопку конкретной записи справочника отображает меню, позволяющее:
      • Изменить - отредактировать запись;
      • Удалить - удалить запись.
    3. ID записи справочника в базе.
    4. Порядок сортировки при выводе в момент изменения обращения.
    5. Сайты, в которых показывать данную запись.
    6. Название категории.
    7. Ответственный за запись.
    8. Количество выбранных записей из базы.
    9. Количество записей, отмеченных флажком в поле [1].

    Действия над записями

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

    Предусмотрены следующие действия:

    • Редактировать отмеченные записи - позволяет быстро отредактировать записи, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные записи справочника.

    Как создать запись в справочнике

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

    Как изменить запись в справочнике

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


Критичности (справочник техподдержки)

В этом разделе

  • Фильтр
  • Записи справочника
  • Действия над записями
  • Как создать запись в справочнике
  • Как изменить запись в справочнике

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

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

    Фильтр

    Наименование параметра | Описание
Найти | Это поле позволяет найти требуемые записи по наиболее типичным критериям, выбираемым в списке: заголовку и описанию.
*ID | Указывает на необходимость отображения конкретной записи в справочнике по ее ID.
Сайты | Отображать записи справочника только для указанных сайтов.
*Заголовок | Заголовок записи справочника для отображения.
*Описание | Маска для текста описания.
*Символьный код | Символьный код типа справочника.
*Ответственный | Сотрудник техподдержки, ответственный за новые обращения, созданные в соответствующей категорией или с той или иной критичностью.
По умолчанию | Определяет, отображать ли только справочники по умолчанию, не по умолчанию или все.

    * - эти поля допускают использование специальных логических выражений.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой записи справочника. В открывшемся меню выберите, какой тип записи следует добавить: категорию, критичность, статус, оценку ответов, частый ответ, источник или сложность.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Записи справочника

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

    Колонка флажков | Меню действий | ID | Сорт. | Сайты | Заголовок | Ответственный
[1] | [2] | [3] | [4] | [5] | [6] | [7]
Выбрано: [8] | Отмечено: [9] |
    1. Это поле позволяет выбрать все или только определённые записи справочника для применения к ним действий при помощи панели Действия внизу таблицы.
    2. При нажатии на кнопку конкретной записи справочника, отображает меню, позволяющее:
      • Изменить - отредактировать запись;
      • Удалить - удалить запись.
    3. ID записи справочника в базе.
    4. Порядок сортировки при выводе в момент изменения обращения.
    5. Сайты, в которых показывать данную запись.
    6. Уровень критичности.
    7. Ответственный за запись.
    8. Количество выбранных записей из базы.
    9. Количество записей, отмеченных флажком в поле [1].

    Действия над записями

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

    Предусмотрены следующие действия:

    • Редактировать отмеченные записи - позволяет быстро отредактировать записи, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные записи справочника.

    Как создать запись в справочнике

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

    Как изменить запись в справочнике

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


Статусы (справочник техподдержки)

В этом разделе

  • Фильтр
  • Записи справочника
  • Действия над записями
  • Как создать запись в справочнике
  • Как изменить запись в справочнике

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

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

    Фильтр

    Наименование параметра | Описание
Найти | Это поле позволяет найти требуемые записи по наиболее типичным критериям, выбираемым в списке: заголовку и описанию.
*ID | Указывает на необходимость отображения конкретной записи в справочнике по ее ID.
Сайты | Отображать записи справочника только для указанных сайтов.
*Заголовок | Заголовок записи справочника для отображения.
*Описание | Маска для текста описания.
*Символьный код | Символьный код типа справочника.
*Ответственный | Сотрудник техподдержки, ответственный за новые обращения, созданные в соответствующей категорией или с той или иной критичностью.
По умолчанию | Определяет, отображать ли только справочники по умолчанию, не по умолчанию или все.

    * - эти поля допускают использование специальных логических выражений.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой записи справочника. В открывшемся меню выберите, какой тип записи следует добавить: категорию, критичность, статус, оценку ответов, частый ответ, источник или сожность.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Записи справочника

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

    Колонка флажков | Меню действий | ID | Сорт. | Сайты | Заголовок
[1] | [2] | [3] | [4] | [5] | [6]
Выбрано: [7] | Отмечено: [8] |
    1. Это поле позволяет выбрать все или только определённые записи справочника для применения к ним действий при помощи панели Действия внизу таблицы.
    2. При нажатии на кнопку конкретной записи справочника, отображает меню, позволяющее:
      • Изменить - отредактировать запись;
      • Удалить - удалить запись.
    3. ID записи справочника в базе.
    4. Порядок сортировки при выводе в момент изменения обращения.
    5. Сайты, в которых показывать данную запись.
    6. Заголовок статуса.
    7. Количество выбранных записей из базы.
    8. Количество записей, отмеченных флажком в поле [1].

    Действия над записями

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

    Предусмотрены следующие действия.

    • Редактировать отмеченные записи - позволяет быстро отредактировать записи, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные записи справочника.

    Как создать запись в справочнике

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

    Как изменить запись в справочнике

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


Оценки ответов (справочник техподдержки)

В этом разделе

  • Фильтр
  • Записи справочника
  • Действия над записями
  • Как создать запись в справочнике
  • Как изменить запись в справочнике

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

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

    Фильтр

    Наименование параметра | Описание
Найти | Это поле позволяет найти требуемые записи по наиболее типичным критериям, выбираемым в списке: заголовку и описанию.
*ID | Указывает на необходимость отображения конкретной записи в справочнике по ее ID.
Сайты | Отображать записи справочника только для указанных сайтов.
*Заголовок | Заголовок записи справочника для отображения.
*Описание | Маска для текста описания.
*Символьный код | Символьный код типа справочника.
*Ответственный | Сотрудник техподдержки, ответственный за новые обращения, созданные в соответствующей категорией или с той или иной критичностью.
По умолчанию | Определяет, отображать ли только справочники по умолчанию, не по умолчанию или все.

    * - эти поля допускают использование специальных логических выражений.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой записи справочника. В открывшемся меню выберите, какой тип записи следует добавить: категорию, критичность, статус, оценку ответов, частый ответ, источник или сложность.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Записи справочника

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

    Колонка флажков | Меню действий | ID | Сорт. | Сайты | Заголовок
[1] | [2] | [3] | [4] | [5] | [6]
Выбрано: [7] | Отмечено: [8] |
    1. Это поле позволяет выбрать все или только определённые записи справочника для применения к ним действий при помощи панели Действия внизу таблицы.
    2. При нажатии на кнопку конкретной записи справочника, отображает меню, позволяющее:
      • Изменить - отредактировать запись;
      • Удалить - удалить запись.
    3. ID записи справочника в базе.
    4. Порядок сортировки при выводе в момент изменения обращения.
    5. Сайты, в которых показывать данную запись.
    6. Заголовок оценки ответа.
    7. Количество выбранных записей из базы.
    8. Количество записей, отмеченных флажком в поле [1].

    Действия над записями

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

    Предусмотрены следующие действия.

    • Редактировать отмеченные записи - позволяет быстро отредактировать записи, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные записи справочника.

    Как создать запись в справочнике

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

    Как изменить запись в справочнике

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


Частые ответы (справочник техподдержки)

В этом разделе

  • Фильтр
  • Записи справочника
  • Действия над записями
  • Как создать запись в справочнике
  • Как изменить запись в справочнике

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

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

    Фильтр

    Наименование параметра | Описание
Найти | Это поле позволяет найти требуемые записи по наиболее типичным критериям, выбираемым в списке: заголовку и описанию.
*ID | Указывает на необходимость отображения конкретной записи в справочнике по ее ID.
Сайты | Отображать записи справочника только для указанных сайтов.
*Заголовок | Заголовок записи справочника для отображения.
*Описание | Маска для текста описания.
*Символьный код | Символьный код типа справочника.
*Ответственный | Сотрудник техподдержки, ответственный за новые обращения, созданные в соответствующей категорией или с той или иной критичностью.
По умолчанию | Определяет, отображать ли только справочники по умолчанию, не по умолчанию или все.

    * - эти поля допускают использование специальных логических выражений.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой записи справочника. В открывшемся меню выберите, какой тип записи следует добавить: категорию, критичность, статус, оценку ответов, частый ответ, источник или сложность.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Записи справочника

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

    Колонка флажков | Меню действий | ID | Сорт. | Сайты | Заголовок
[1] | [2] | [3] | [4] | [5] | [6]
Выбрано: [7] | Отмечено: [8] |
    1. Это поле позволяет выбрать все или только определённые записи справочника для применения к ним действий при помощи панели Действия внизу таблицы.
    2. При нажатии на кнопку конкретной записи справочника, отображает меню, позволяющее:
      • Изменить - отредактировать запись;
      • Удалить - удалить запись.
    3. ID записи справочника в базе.
    4. Порядок сортировки при выводе в момент изменения обращения.
    5. Сайты, в которых показывать данную запись.
    6. Заголовок записи справочника.
    7. Количество выбранных записей из базы.
    8. Количество записей, отмеченных флажком в поле [1].

    Действия над записями

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

    Предусмотрены следующие действия.

    • Редактировать отмеченные записи - позволяет быстро отредактировать записи, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные записи справочника.

    Как создать запись в справочнике

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

    Как изменить запись в справочнике

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


Источники (справочник техподдержки)

В этом разделе

  • Фильтр
  • Записи справочника
  • Действия над записями
  • Как создать запись в справочнике
  • Как изменить запись в справочнике

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

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

    Фильтр

    Наименование параметра | Описание
Найти | Это поле позволяет найти требуемые записи по наиболее типичным критериям, выбираемым в списке: заголовку и описанию.
*ID | Указывает на необходимость отображения конкретной записи в справочнике по ее ID.
Сайты | Отображать записи справочника только для указанных сайтов.
*Заголовок | Заголовок записи справочника для отображения.
*Описание | Маска для текста описания.
*Символьный код | Символьный код типа справочника.
*Ответственный | Сотрудник техподдержки, ответственный за новые обращения, созданные в соответствующей категорией или с той или иной критичностью.
По умолчанию | Определяет, отображать ли только справочники по умолчанию, не по умолчанию или все.

    * - эти поля допускают использование специальных логических выражений.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой записи справочника. В открывшемся меню выберите, какой тип записи следует добавить: категорию, критичность, статус, оценку ответов, частый ответ или источник.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Записи справочника

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

    Колонка флажков | Меню действий | ID | Сорт. | Сайты | Заголовок | Ответственный
[1] | [2] | [3] | [4] | [5] | [6] | [7]
Выбрано: [8] | Отмечено: [9] |
    1. Это поле позволяет выбрать все или только определённые записи справочника для применения к ним действий при помощи панели Действия внизу таблицы.
    2. При нажатии на кнопку конкретной записи справочника, отображает меню, позволяющее:
      • Изменить - отредактировать запись;
      • Удалить - удалить запись.
    3. ID записи справочника в базе.
    4. Порядок сортировки при выводе в момент изменения обращения.
    5. Сайты, в которых показывать данную запись.
    6. Название источника.
    7. Ответственный за запись.
    8. Количество выбранных записей из базы.
    9. Количество записей, отмеченных флажком в поле [1].

    Действия над записями

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

    Предусмотрены следующие действия:

    • Редактировать отмеченные записи - позволяет быстро отредактировать записи, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные записи справочника.

    Как создать запись в справочнике

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

    Как изменить запись в справочнике

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


Сложность (справочник техподдержки)

В этом разделе

  • Фильтр
  • Записи справочника
  • Действия над записями
  • Как создать запись в справочнике
  • Как изменить запись в справочнике

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

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

    Фильтр

    Параметр | Описание
Найти | Это поле позволяет найти требуемые записи по наиболее типичным критериям, выбираемым в списке: заголовку и описанию.
*ID | Указывает на необходимость отображения конкретной записи в справочнике по ее ID.
Сайты | Отображать записи справочника только для указанных сайтов.
*Заголовок | Наименования записи справочника для отображения.
*Описание | Маска для текста описания.
*Символьный код | Символьный код типа справочника.
*Ответственный | Сотрудник техподдержки, ответственный за новые обращения, созданные в соответствующей категорией или с той или иной критичностью.
По умолчанию | Определяет, отображать ли только справочники по умолчанию, не по умолчанию или все.

    * - эти поля допускают использование специальных логических выражений.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой записи справочника. В открывшемся меню выберите, какой тип записи следует добавить: категорию, критичность, статус, оценку ответов, частый ответ, источник или сложность.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Записи справочника

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

    Колонка флажков | Меню действий | ID | Сорт. | Сайты | Заголовок | Ответст- венный
[1] | [2] | [3] | [4] | [5] | [6] | [7]
Выбрано: [8] | Отмечено: [9] |
    1. Это поле позволяет выбрать все или только определённые записи справочника для применения к ним действий при помощи панели Действия внизу таблицы.
    2. При нажатии на кнопку конкретной записи справочника отображает меню, позволяющее:
      • Изменить - отредактировать запись;
      • Удалить - удалить запись.
    3. ID записи справочника в базе.
    4. Порядок сортировки при выводе в момент изменения обращения.
    5. Сайты, в которых показывать данную запись.
    6. Заголовок уровня сложности обращений.
    7. Ответственный за запись.
    8. Количество выбранных записей из базы.
    9. Количество записей, отмеченных флажком в поле [1].

    Действия над записями

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

    Предусмотрены следующие действия:

    • Редактировать отмеченные записи - позволяет быстро отредактировать записи, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные записи справочника.

    Как создать запись в справочнике

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

    Как изменить запись в справочнике

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


Создание и редактирование записи справочника

В этом разделе

  • Вкладка "Запись"
  • Вкладка "Статистика"
  • Кнопки управления

    • Данная форма предназначена для создания и редактирования записей справочника техподдержки, а именно:

    • категорий;
    • критичностей;
    • статусов;
    • оценок;
    • источников обращений;
    • часто используемых ответов;
    • сложности.

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

    Контекстная панель

    Кнопка | Описание
Справочник | Открывает справочник для текущего типа записи.
Создать новую запись | Создает новую запись текущего типа в справочнике. Отображается только при редактировании существующей записи справочника.
Удалить запись | Удаляет открытую запись. Отображается только при редактировании существующей записи справочника.

    Вкладка "Запись"

    Поле | Описание
Тип | Тип записи справочника.
Сайт | Сайт, в котором показывать данную запись.
Порядок сортировки | Порядок сортировки при выводе.
Заголовок* | Заголовок записи.
Символьный код | При использовании функции API CTicket::SetTicket есть возможность задавать в качестве параметра не ID типа записи справочника, а его символьные коды, что упрощает программирование. Данное поле может содержать именно этот символьный код.
Описание | Для типов категория, критичность, оценка, статус данное поле используется для всплывающей подсказки. Для типа часто используемые ответы это поле используется для ввода тела ответа.
При создании нового обращения на сайте, выбирать по умолчанию в выпадающем списке | Данный флаг позволяет выбрать по умолчанию данное значение в веб-форме при создании нового обращения; для одного типа записей справочника и одного сайта может быть только одна запись для которой данный флаг будет установленным. Данное поле доступно для модификации только для типов категория, критичность и источники.
Ответственный | Ответственный за обращение. Данное поле доступно для модификации только для типов категория, критичность и источники.

    * - Поле, обязательное для заполнения.

    Вкладка "Статистика"

    Доступна только для типа категория.

    Как регистрировать новые обращения в техподдержку в модуле статистики
event1 | Идентификатор event1 типа события для модуля статистики.
event2 | Идентификатор event2 типа события для модуля статистики.
event3 | Дополнительный параметр события для модуля статистики.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохраняет параметры записи справочника в базе данных.
Применить | Сохраняет параметры подписчика. Редактирование продолжается.
Сбросить | Сбрасывает все введенные после открытия формы данные.


Уровни техподдержки (SLA)

В этом разделе

  • Фильтр
  • Записи справочника
  • Действия над записями

    • Данная форма служит для создания и настройки уровней техподдержки. Уровни используются для ранжирования и определения приоритетов тех или иных пользователей на получение техподдержки.

    Фильтр

    Параметр | Описание
*Название | Название уровня для отображения.
*ID | Идентификатор уровня для отображения.
Сайт | Отображать только уровни для определённого сайта.
*Описание | Маска для текста описания.

    * - эти поля допускают использование специальных логических выражений.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления нового уровня техподдержки.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Записи справочника

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

    Колонка | Описание
    Колонка флажков | Это поле позволяет выбрать все или только определённые записи для применения к ним действий при помощи панели Действия внизу таблицы.
    Меню
    действий
             При нажатии на кнопку конкретного уровня, отображает меню, позволяющее:
    • Изменить - отредактировать параметры уровня;
    • Удалить - удалить запись.
    ID | ID записи в базе.
    Приоритет | Приоритет уровня техподдержки.
    Сайт | Сайт, на котором действует данный уровень.
    Название | Название уровня техподдержки.
    Описание | Описание уровня техподдержки.
    Время реакции | Максимально возможное время реакции (ответа) на сообщения авторов обращений.
    Группы пользователей | Группы пользователей, для которых действуют правила уровня техподдержки.
    Ответственный | Ответственный по умолчанию за обращения этого уровня.
    Выбрано | Количество записей, выбранных для отображения.
    Отмечено | Количество записей, отмеченных флажком в первом поле.

    Действия над уровнями

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

    Предусмотрены следующие действия.

    • Редактировать отмеченные записи - позволяет быстро отредактировать уровни техподдержки, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные уровни техподдержки.


Настройки

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Техподдержка: настройки модуля

Данная форма (Настройки -> Настройки продукта -> Настройки модулей -> Техподдержка) предназначена для задания общесистемных параметров справочника техподдержки.

Вкладка "Настройки"

Наименование параметра | Описание
Каталог техподдержки (#SITE_DIR# - корневой каталог сайта) | Путь к скриптам техподдержки в публичной части.
Макс. размер загружаемых файлов (Кб) | Максимальный размер загружаемых изображений для пользователей не входящих в группу техподдержки.
Значение по умолчанию для флага "Сообщение скрыть, автора не оповещать" | При установке данного параметра при редактировании обращения флаг Сообщение скрывать, автора не оповещать будет установлен по умолчанию.
Ответственный по умолчанию для новых обращений | При создании нового обращения не сотрудником техподдержки, ответственный может быть выбран в зависимости от категории, критичности или источника обращения (подобные зависимости настраиваются в справочнике техподдержки). Если ответственный не был определён, то назначается ответственный по умолчанию, который в свою очередь выбирается в данном поле.
Значение по умолчанию для поля "Закрыть при отсутствии ответа через" | Если пользователь не выбрал иное количество дней, по истечении которых обращение будет автоматически закрыто, используется значение данного поля.
Режим по умолчанию при просмотре обращения | При просмотре обращения, пользователь может перевести обращение либо в режим просмотра, либо в режим правки (ответа). Это поле позволяет выбрать режим, в котором обращение будет изначально открыто.
Выводить данные в публичных компонентах по пользователям просматривавших обращение за последние | Количество времени (мин.), по истечении которого не выводить информацию о пользователе просмотревшем обращение.
Как часто автоматически обновлять область "Сейчас в обращении" в административной части | Каждое обращение содержит особую область, показывающую, какие пользователи в настоящее время просматривают или редактируют обращение. Очевидно, что обращение может быть открыто во время его просмотра другими пользователями. Значение этого поля определяет, как часто будет обновляться область с пользователями, просматривающими обращение.
Количество обращений на одной странице (для административной части) | Максимальное количество обращений, которое отображается на одной странице. Остальные обращения показываются на следующих страницах списка.
Количество сообщений на одной странице (для административной части) | То же, но для списка сообщений.

Вкладка "Доступ"

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

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

Все вышеперечисленные права являются наследуемыми.


Техподдержка (комплексный компонент)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комлексный компонент "Техподдержка"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:support.ticket","",Array(
     "SEF_MODE" => "Y",
     "TICKETS_PER_PAGE" => "50",
     "MESSAGES_PER_PAGE" => "20",
     "SET_PAGE_TITLE" => "Y",
     "SEF_FOLDER" => "/examples/",
     "SEF_URL_TEMPLATES" => Array(
         "ticket_list" => "index.php",
         "ticket_edit" => "#ID#.php"
     ),
     "VARIABLE_ALIASES" => Array(
         "ticket_list" => Array(),
         "ticket_edit" => Array(),
      )
     )
);?>

Описание параметров

SEF_MODE
При значении параметра "Y" включается поддержка ЧПУ и становятся доступными параметры настройки адресов ЧПУ:
  • SEF_FOLDER - каталог ЧПУ: путь до папки с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
  • SEF_URL_TEMPLATE -> ticket_list - адрес страницы со списком обращений.
  • SEF_URL_TEMPLATE -> ticket_edit - адрес страницы редактирования обращений.
VARIABLE_ALIASES
Имена переменных. В режиме без поддержки ЧПУ указывается переменная, которой будет передаваться идентификатор обращения (например, ID).
TICKETS_PER_PAGE
Количество обращений на одной странице.
MESSAGES_PER_PAGE
Количество сообщений на одной странице.
SET_PAGE_TITLE
Определяет устанавливать заголовок страницы (значение параметра равно "Y") или нет (значение "N").


Редактирование обращения

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Создание нового либо редактирование существующего обращения"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:support.ticket.edit","",Array(
     "ID" => $_REQUEST["ID"],
     "TICKET_LIST_URL" => "ticket_list.php",
     "MESSAGES_PER_PAGE" => "20",
     "SET_PAGE_TITLE" => "Y"
     )
);?>

Описание параметров

ID
ID существующего обращения (если не задан, будет выведена форма для создания нового обращения).
TICKET_LIST_URL
Адрес страницы со списком обращений.
MESSAGES_PER_PAGE
Количество сообщений на одной странице.
SET_PAGE_TITLE
Определяет устанавливать заголовок страницы (значение параметра равно "Y") или нет (значение "N").


Список обращений

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список обращений"

Данный компонент предназначен для вывода фильтра и списка обращений в техподдержку. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:support.ticket.list","",Array(
     "TICKET_EDIT_TEMPLATE" => "ticket_edit.php?ID=#ID#",
     "TICKETS_PER_PAGE" => "50",
     "SET_PAGE_TITLE" => "Y"
     )
);?>

Описание параметров

TICKET_EDIT_TEMPLATE
Адрес страницы для редактирования выбранного обращения.
TICKETS_PER_PAGE
Количество обращений на одной странице.
SET_PAGE_TITLE
Определяет устанавливать заголовок страницы (значение параметра равно "Y") или нет (значение "N"). Если значение параметра равно "Y", то в качестве заголовка страницы будет установлено Список обращений.


Список обращений

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список обращений"

Данный компонент предназначен для вывода списка обращений. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeFile("support/ticket_list/default.php",
Array(
    'TICKET_EDIT_URL' => 'ticket_edit.php',
    'TICKETS_PER_PAGE' => '50',
    )
);?>

Описание параметров

TICKET_EDIT_URL
Адрес страницы редактирования существующих обращений и создания новых.
TICKETS_PER_PAGE
Количество обращений на одной странице.


Редактирование обращения

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Редактирование обращения"

Данный компонент предназначен для вывода формы редактирования существующего обращения либо создания нового. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeFile("support/ticket_edit/default.php",
 Array(
   'ID' => $_REQUEST["ID"],
   'TICKET_LIST_URL' => 'ticket_list.php',
   'TICKET_MESSAGE_EDIT_URL' => 'ticket_message_edit.php',
   'MESSAGES_PER_PAGE' => '50',
   )
);?>

Описание параметров

ID
ID существующего обращения (если не задан, будет выведена форма для создания нового обращения).
TICKET_LIST_URL
Адрес страницы со списком обращений.
TICKET_MESSAGE_EDIT_URL
Адрес страницы для редактирования сообщения.
MESSAGES_PER_PAGE
Количество сообщений на одной странице.


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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Редактирование сообщения"

Данный компонент предназначен для вывода формы редактирования сообщения. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeFile("support/ticket_message_edit/default.php",
  Array(
       'ID' => $_REQUEST["ID"],
       'TICKET_ID' => $_REQUEST["TICKET_ID"],
       'TICKET_LIST_URL' => 'ticket_list.php',
       'TICKET_EDIT_URL' => 'ticket_edit.php',
       )
);?>

Описание параметров

ID
ID сообщения.
TICKET_ID
ID обращения.
TICKET_LIST_URL
Адрес страницы со списком обращений.
TICKET_EDIT_URL
Адрес страницы редактирования обращения.


Форум

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

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

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


Список форумов

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список форумов
    •

    Страница Список форумов (Сервисы -> Форумы -> Список форумов) содержит информацию о существующих форумах, позволяет создавать новые форумы и управлять существующими. Информация о форумах представлена в виде таблицы.

    Форма поиска

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

    Поле | Описание
Сайт | Сайт, к которому относится форум.
Активность | Поиск сайта по признаку активности.
Группа форумов | Группа, к которой относится форум.

    Для того чтобы отобрать форумы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех форумов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новый форум | Переход к созданию нового форума.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список форумов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора форумов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, которые можно произвести над форумом:
    • Редактирование настроек форума;
    • Удаление форума.
    ID | Идентификатор форума в системе.
    Имя | Произвольное название форума.
    Активен | Флаг активности форума. Если флаг не установлен, форум будет недоступен в публичной части.
    Сайт | Сайт(ы), к которым относится данный форум.
    Сорт. | Порядок сортировки форума. Влияет на расположение форума в списке.


Создание/изменение форума

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Форум
  • Настройки
  • Доступ
    •
  • Кнопки управления
    •

    Данная форма применяется как для создания новых, так и для редактирования существующих форумов.

    Примечание: правами на создание новых форумов обладают только администраторы сайта.

    Контекстная панель

    Кнопка | Описание
Список форумов | Переход на страницу со списком форумов.
Создать новый форум | Переход к форме создания нового форума. Кнопка отображается при редактировании существующего форума.
Удалить форум | Удаление редактируемого форума.

    Форма редактирования

    Закладка "Форум"

    Данная закладка служит для настройки общих параметров форума.

    Поле | Описание
    Активен | Признак активности форума. Неактивные форумы доступны только тем пользователям, которые имеют права на полный доступ к ним.
    Группа форумов | Группа, к которой относится форум. Может быть не установлена (т.е. форум без группы).
    *Сортировка | Относительный "вес", определяющий порядок показа форумов в рамках одной группы. Чем больше значение поля, тем ниже в списке будет расположен форум.
    *Имя форума | Произвольное название форума.
    Описание | Краткое описание форума. Описание будет показано в публичной части под названием форума.
    Сайты, на которых доступен форум / Шаблон пути к сообщению на сайте
    Сайт | Сайты, на которых будет доступен форум.
    Шаблон пути к сообщению Шаблон пути к сообщениям форума для данного сайта. Это поле используется при отправке почтовых сообщений с форума и при индексировании сообщений форума в модуле поиска.

    Пример шаблона:
    /forum/index.php?
    PAGE_NAME=read&FID=#FORUM_ID#&TID=#TOPIC_ID#&MID=#MESSAGE_ID##message#MESSAGE_ID#

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

    * - Поля, обязательные для заполнения.

    Закладка "Настройки"
    Поле | Описание
    Позволить HTML | Разрешение или запрещение использования HTML-кода в тексте сообщения. Не рекомендуется разрешать использование произвольного HTML-кода на форуме без особой необходимости, так как это существенно снижает безопасность форума.
    Замена новой строки на <br> | Заменять перевод каретки (новую строку) на тег <br> в режиме HTML. По умолчанию в режиме HTML текст сообщения выводится "как есть", т.е. без преобразований.
    Позволить ссылки | Разрешить использование гиперссылок в сообщении.
    Позволить теги B, U, I | Разрешить выделение текста полужирным, подчеркиванием или курсивом.
    Позволить изображения | Разрешить использование изображений в тексте сообщения. Изображения располагаются на сторонних сайтах и подключаются на форуме.
    Позволить списки | Разрешить создание списков.
    Позволить цитирование | Возможность цитировать сообщение другого пользователя.
    Позволить коды | Использование кодов в сообщении.
    Позволить шрифты | Возможность изменения цвета текста и шрифт.
    Позволить смайлики | Разрешить использование смайликов в сообщении.
    Позволить загрузку Разрешить загрузку присоединенных к сообщению файлов указанного типа. Возможные варианты значений:
    • нет - загрузка запрещена;
    • изображения - загрузка только изображений (gif, jpg, png, jpe, jpeg);
    • файлов с указанными расширениями - загрузка только файлов с расширениями из поля Допустимые расширения загружаемых файлов;
    • любых файлов - загрузка любых файлов. Не разрешайте без крайней необходимости загрузку выполнимых файлов и скриптов, так как это может позволить злоумышленникам полностью разрушить ваш сайт.
    Допустимые расширения загружаемых файлов | Расширения файлов, разрешенных к загрузке на сайт (см. описание предыдущего поля).
    Премодерируемый | Включение режима премодерирования: сообщения пользователей будут публиковаться на сайте только после проверки модератором (администратором сайта или другим пользователем с соответствующими правами).
    Разрешить перенос тем модераторам других форумов | Определяет, разрешено ли модераторам других форумов переносить темы.
    Запросить E-Mail у незарегистрированного пользователя | Определяет, будет ли запрашиваться адрес почты у незарегистрированного пользователя при попытке добавления им сообщения.
    Использовать CAPTCHA | Определяет, использовать ли защиту от автоматического заполнения.
    Сортировка по Сортировка "по умолчанию" тем в рамках одного форума в публичной части сайта. Выберите вариант сортировки сообщений, а также направление сортировки.

    Например, если выбрана сортировка по дате последнего сообщения и направление по убыванию, то последние по дате сообщения будут показаны выше, чем более ранние.
    Направление сортировки | Направление сортировки для выбранного режима сортировки.
    Как регистрировать новые сообщения в модуле статистики**
    event1 | Идентификатор типа события - event1
    event2 | Идентификатор типа события - event2
    event3 | Дополнительный параметр события - event3

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

    Закладка "Доступ"

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

    Поле Описание
    [Группа пользователей]

    Уровень доступа к форуму для данной группы пользователей:

    • Нет доступа - запрет на доступ к форуму;
    • Чтение - доступ на чтения сообщений форума без права создания новых тем;
    • Ответ - доступ к обсуждению существующих тем без права создания новых тем;
    • Новая тема - доступ к обсуждению существующих тем, а также возможность создания новых тем;
    • Модерирование - возможность модерировать форум, т.е. производить те действия, которые не повлекут реальной потери данных. Например, модераторы могут скрыть или показать сообщение, но не могут отредактировать или удалить его. Члены группы с данным уровнем прав имеют возможность подписаться на полученииы копии всех сообщений форума по почте.
    • Редактирование - доступ к управлению чужими сообщениями на форуме;
    • Полный доступ - полный доступ к форуму, включая доступ к настройкам форума и прав доступа.

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком форумов.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров форума.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Модерирование форума

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

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


Группы форумов

В этом разделе

  • Контекстная панель
  • Список групп форумов
    •

    Страница Группы форумов (Сервисы -> Форумы -> Группы форумов) содержит список существующих групп форумов, а также позволяет перейти к созданию и изменению групп форумов.

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

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

    Контекстная панель

    Кнопка | Описание
Новая группа форумов | Переход к созданию новой группы форумов.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список групп форумов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора групп, к которым предполагается применить какое-либо правило или действие.
    Действия Действие над группой форумов:
    • Изменить параметры группы - редактирование группы форумов;
    • Удалить группу - удаление группы форумов. Удаление группы не влечет удаление форумов, относящихся к данной группе.
    Код | Уникальный код группы форумов.
    Название | Название группы, показываемое в публичной части.
    Сорт. | Относительный "вес", определяющий положение группы в списке. Чем меньше значение, тем выше в списке показывается группа.


Создание и редактирование группы

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список групп форумов | Переход на страницу со списком групп форумов.
Создать новую группу | Переход к форме создания новой группы форумов. Кнопка отображается при редактировании существующей группы.
Удалить группу | Удаление текущей группы форумов.

    Форма редактирования

    Поле | Описание
Код | Идентификатор группы форумов в системе. Поле отображается при редактировании группы форумов.
Сортировка | Относительный "вес", определяющий положение группы в списке. Чем меньше значение, тем выше в списке показывается группа.
[Язык]
*Название | Название группы, показываемое в публичной части. Название задается для каждого языка, используемого в системе.
Описание | Произвольное описание группы для каждого языка.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком групп форумов.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров группы форумов.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Звания

В этом разделе

  • Контекстная панель
  • Список званий
    •

    Страница Звания (Сервисы -> Форумы -> Звания) содержит список созданных званий, а также позволяет перейти к созданию новых и изменению существующих званий.

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

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

    Контекстная панель

    Кнопка | Описание
Новое звание | Переход к форме создания нового звания.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список званий

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора званий, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, которые можно произвести над званием:
    • Изменить параметры звания - редактирование звания;
    • Удалить звание - удаление звания.
    ID | Идентификатор звания в системе.
    Название | Название звания, как оно отображается на форуме.
    Необходимо баллов | Количество баллов, требуемое для получения этого звания.
    Голосов | Количество голосов, требуемое для получения этого звания.


Создание и изменение звания

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список званий | Переход на страницу со списком званий.
Добавить новое звание | Переход к форме создания нового звания. Кнопка отображается при редактировании существующего звания.
Удалить звание | Удаление редактируемого звания.

    Форма редактирования

    Поле | Описание
ID | Идентификатор звания.
*Для получения звания необходимо баллов | Количество баллов, требуемое для получения этого звания.
Мнемонический код | Символьный код звания. Поле предназначено для использования разработчиками.
Имеет голосов | Количество голосов, требуемое для получения этого звания.
[Язык]
*Название | Название звания, как оно отображается на форуме. Название задается отдельно для каждого языка.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком званий.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров звания.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Баллы за сообщения

В этом разделе

  • Контекстная панель
  • Список баллов за сообщение
    •

    Форма Баллы за сообщения (Сервисы -> Форумы -> Баллы за сообщения) предназначена для управления количеством баллов, присваиваемых пользователю форума за каждое отправленное сообщение. При помощи этой формы можно легко настроить кумулятивную систему начисления баллов (т.е. количество баллов за одно сообщение будет увеличиваться в зависимости от общего числа отправленных сообщений).

    Контекстная панель

    Поле | Описание
Новая запись | Добавление новой записи с количеством баллов за сообщение.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список баллов за сообщение

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора записей, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над записью о количестве баллов за сообщение:
    • Изменить параметры - редактирование записи;
    • Удалить - удаление записи.
    ID | Идентификатор записи в системе.
    Необходимо сообщений Число сообщений, начиная с которого за каждое сообщение будет начисляться указанное в записи количество баллов.

    Например, если значение поля равно 10, то начиная с десятого сообщения посетителю будет начисляться новое (указанное в данной записи) количество баллов за каждое сообщение.
    Баллов за сообщение | Количество баллов, начисляемое за сообщение, при достижении указанного в предыдущем поле числа сообщений.


Редактирование оценки за сообщение

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

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

    Контекстная панель

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

    Форма редактирования

    Поле | Описание
ID | Идентификатор записи в системе. Отображается только при редактировании записи.
*Минимальное количество сообщений | Число сообщений, начиная с которого за каждое сообщение будет начисляться указанное в записи количество баллов.
Баллов за сообщение | Количество баллов, начисляемое за сообщение, при достижении указанного в предыдущем поле числа сообщений.

    * - Поле, обязательное для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком записей
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров записи.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.

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


Смайлики форума

В этом разделе

  • Контекстная панель
  • Список смайликов
    •

    Форма Смайлики форума (Сервисы -> Форумы -> Смайлики) служит для изменения набора доступных смайликов и иконок. После добавления смайлика или иконки нестандартного размера проверьте внешний вид публичной части форума - возможно, потребуется внести некоторые изменения.

    Контекстная панель

    Кнопка | Описание
Новый смайлик | Добавление нового смайлика.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

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

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора записей, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над записью:
    • Изменить параметры смайлика - редактирование смайлика;
    • Удалить смайлик - удаление смайлика.
    Код | Уникальный системный код смайлика.
    Название | Название изображения, показываемое в публичной части.
    Сорт. | Вес сортировки смайлика. Определяет порядок вывода смайликов в списке.
    Тип | Тип изображения - смайлик (выражение эмоции) или иконка (гештальт суждения).
    Написание | Символьный эквивалент изображения.
    Изображение | Само изображение смайлика или иконки.
    Файл | Путь к файлу с изображением смайлика.


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

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Данная форма предназначена для создания новых и редактирования уже существующих смайликов.

    Контекстная панель

    Кнопка | Описание
Список смайликов | Переход на страницу со списком смайликов.
Добавить новый смайлик | Добавление нового смайлика. Кнопка отображается при редактировании существующего смайлика.
Удалить смайлик | Удаление редактируемого смайлика.

    Форма редактирования

    Поле | Описание
Код | Уникальный системный код смайлика. Поле отображается при редактировании смайлика.
Сортировка | Вес сортировки смайлика. Определяет порядок вывода смайликов в списке.
Написание смайлика | Символьный эквивалент изображения. Возможно перечисление нескольких вариантов через пробел.
Изображение смайлика | Изображение смайлика или иконки. Для загрузки изображения служит кнопка "Обзор". Рекомендуемый размер смайликов: 16x16, иконок: 15x15.
[Язык]
*Название форума | Название изображения, показываемое в публичной части. Название указывается для каждого языка, используемого в системе.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком смайликов.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров смайлика.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Управление темами

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список тем
  • Панель Действия
    •

    На странице Управление темами (Сервисы -> Форумы -> Управление темами) представлена информация о существующих темах форумов.

    Форма поиска

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

    Поле | Описание
Форум | Название форума, к которому относится тема.
Создано | Параметр определяет диапазон дат, в пределах которых искомые темы могли быть изменены.
Последнее сообщение | Параметр определяет диапазон дат, в пределах которых было создано последнее сообщение темы.

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список тем

    Поле | Описание
Колонка флажков | Поле предназначено для выбора тем, к которым предполагается применить какое-либо правило или действие.
ID | Идентификатор темы.
Название | Название темы, отображаемое в публичной части.
Создано | Дата и время создания темы.
Автор | Имя автора темы.
Сообщения | Количество сообщений в теме.
Просмотров | Число просмотров темы.
Форум | Форум, к которому относится тема.
Последнее сообщение | Дата и время последнего сообщения в теме.

    Панель Действия

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

    Кроме быстрого редактирования и удаления отмеченных элементов, предусмотрено ещё одно действие:

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


Управление подпиской

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список пользователей
    •

    На странице Управление подпиской (Сервисы -> Форумы -> Управление подпиской) представлена информация о пользователях, имеющих подписки на форумы.

    Форма поиска

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

    Поле | Описание
Найти | Позволяет найти пользователей, имеющих подписки, по их основным параметрам: логин, e-mail, фамилия, имя, отчество. Это поле присутствует, даже если фильтр свернут.
Дата начала подписки | Диапазон дат, в пределах которых подписки пользователей могли быть начаты.
Форум | Позволяет найти пользователей, подписки которых относятся к указанному форуму.
Вид подписки | Поиск пользователей, имеющих указанный вид подписки.

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

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список пользователей, имеющих подписки

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора пользователей, имеющих подписки, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, которые можно применить к элементу списка:
    • Изменить - переход на форму подписок пользователя;
    • Удалить - удаление всех подписок пользователя.
    FID | Идентификатор пользователя в модуле Форум.
    ID | Идентификатор пользователя.
    E-Mail | E-Mail пользователя.
    Логин | Логин пользователя.
    Имя | Имя пользователя.
    Фамилия | Фамилия пользователя.
    Количество подписок | Количество подписок, которые имеет пользователь.
    Начало подписки | Дата и время первой подписки пользователя.


Подписки пользователя

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список подписок пользователя

  • На форме Подписки пользователя <логин_пользователя> представлена информация обо всех подписках этого пользователя.

    Форма поиска

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

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

    Для того чтобы отфильтровать подписки по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех подписок нажмите кнопку Отменить.

    Контекстная панель

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

    Список подписок пользователя

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора подписок, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, которые можно применить к элементу списка:
    • Удалить - удаление подписки пользователя.
    ID | Идентификатор подписки.
    Форум | Название форума, к которому относится подписка.
    Тема | Название подписки и непосредственно темы форума.
    Начало подписки | Дата и время начала подписки.
    Последнее сообщение | Идентификатор последнего отправленного пользователем сообщения.


Словарь слов

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список слов
  • Панель Действия
    •

    На странице [язык] Словарь слов (Сервисы -> Форумы -> Фильтр нецензурных слов -> Словарь нецензурных слов -> [язык] Словарь слов) представлен список нецензурных слов, входящих в словарь [язык] Словарь слов. Данный словарь используется для фильтрации нецензурных слов в сообщениях форумов.

    Форма поиска

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

    Поле | Описание
Найти | Это поле позволяет выполнить поиск слов по наиболее типичным критериям, выбираемым в списке: слово, шаблон, замена, описание.
Активен | Признак активности.
Тип создания шаблона | На основе какого типа был создан шаблон слова.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления нового слова в словарь.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список нецензурных слов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора слов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, которые можно применить к элементу списка:
    • Изменить - переход на форму редактирования слова;
    • Удалить - удаление записи в словаре.
    ID | Идентификатор слова.
    Активен | Признак активности.
    Тип создания шаблона | Тип создания шаблона нецензурного слова.
    Слово | Нецензурное слово или его часть (обычно используется корень слова).
    Шаблон | Шаблон слова.
    Замена Замена для нецензурного слова.

    Замена слова происходит в том случае, если в настройках модуля включен фильтр нецензурных слов и в качестве действий с найденными словами выбрано "Заменить". Причем сначала проверяется, имеется ли собственная замена, если она есть, то будет использована. Если же собственной замены нет, то будет использоваться замена из настроек.
    Описание | Описание слова, которое отображается только в административной части.

    Панель Действия

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

    Кроме быстрого редактирования и удаления отмеченных элементов, предусмотрено ещё одно действие:

    • Сгенерировать шаблон - позволяет сгенерировать шаблон на основе указанного словаря.


Добавление и редактирование слов

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Добавление и редактирование нецензурных слов

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список | Переход на страницу словаря слов.
Добавить | Переход к форме создания нового слова. Кнопка отображается при редактировании существующего слова.
Удалить | Удаление слова. Кнопка отображается при редактировании существующего слова.

    Форма редактирования

    Поле | Описание
    Поиск* Нецензурное слово или его часть с использованием символов:
    ^ - приставка;
    % - суффиксы и окончания;
    ? - один символ;
    * - любое количество словообразующих символов.
    Активен | Признак активности.
    Тип создания шаблона | Указывается тип, на основе которого создаётся шаблон нецензурного слова.
    Замена Замена для нецензурного слова.

    Замена слова происходит в том случае, если в настройках модуля включен фильтр нецензурных слов и в качестве действий с найденными словами выбрано "Заменить". Причем сначала проверяется, имеется ли собственная замена, если она есть, то будет использована. Если же собственной замены нет, то будет использоваться замена из настроек.
    Описание | Произвольное описание для нецензурного слова, которое будет отображаться только в административном разделе.

    * - Поле, обязательное для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу словаря нецензурных слов.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров нецензурного слова.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Словарь транслита

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Таблица элементов
  • Панель Действия
    •

    На странице [язык] Словарь транслита (Сервисы -> Форумы -> Фильтр нецензурных слов -> Словарь транслита -> [язык] Словарь транслита) представлена информация об аналоговом написании букв.

    Форма поиска

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

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления новой записи.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Таблица элементов

    Поле | Описание
Колонка флажков | Поле предназначено для выбора записей, к которым предполагается применить какое-либо правило или действие.
ID | Идентификатор буквы.
Буква | Буква алфавита.
Аналог | Аналог буквы.

    Панель Действия

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

    Предусмотрены следующие действия.

    • Редактировать отмеченные записи - позволяет быстро отредактировать записи, не открывая форму редактирования. Доступные для изменения значения записей будут представлены в виде полей для ввода.
    • Удалить записи - удаляет отмеченные записи.


Добавление записи в словарь транслита

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список | Переход на страницу Словарь транслита.

    Форма редактирования

    Поле | Описание
*Словарь | Словарь транслита, в который добавить новую запись.
*Буква | Написание новой буквы.
Замена | Содержимое этого поля будет заменять вышеуказанную букву.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу Словарь транслита.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров новой записи словаря.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Часто задаваемые вопросы

Вопросы

  • Как мне создать тему в форуме?
  • Могу ли я использовать HTML?
  • Как мне отформатировать текст сообщения, если HTML не разрешен?
  • Могу ли я вставлять картинки?
  • Что такое смайлики?
  • Зачем мне нужно регистрироваться?
  • Как мне изменить мои настройки?
  • Я хочу получать новые сообщения по почте!
    •

    Как мне создать тему в форуме?

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

    Могу ли я использовать HTML?

    Зависит от того разрешено ли это администратором. Если разрешено его использовать, то, скорее всего, работать будут лишь несколько тегов. Это сделано для безопасности, чтобы запретить использование тегов, которые могут вызвать проблемы в работе сайта.

    Как мне отформатировать текст сообщения, если HTML не разрешен?

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

    Тег | Описание | Синонимы | Примечание
    <a href="ссылка"> Ссылка [URL]ссылка[/URL]
    [URL=ссылка]         		Должен всегда присутствовать соответствующий закрывающий тег </a>.
    <b>, <u>, <i> | Жирный, подчёркнутый текст или курсив соответственно | [b], [u], [i] | Должен всегда присутствовать соответствующий закрывающий тег </b>, </u>, </i>.
    <img src="адрес"> | Рисунок | [img]адрес[/img] | Адрес - полный путь к рисунку на любом публичном сайте.
    <ul>, <li> | Ненумерованные списки | [ul], [li] | Должен всегда присутствовать соответствующий закрывающий тег </ul>, </li>.
    <quote> | Специальный тег для выделения цитирования | [quote] | Должен всегда присутствовать соответствующий закрывающий тег </quote>.
    <code> | Специальный тег для выделения кода | [code] | Должен всегда присутствовать соответствующий закрывающий тег </code>.
    <font color=>, <font size=> | Изменение цвета и размера шрифта | [color=цвет], [size=размер] | Должен всегда присутствовать соответствующий закрывающий тег </font>.

    Могу ли я вставлять картинки?

    Вы можете вставлять картинки в сообщения, если это разрешено администратором. Вы должны указать ссылку на картинку, которая находится на общедоступном сервере, например: [img]http://www.1c-bitrix.ru/images/logo_bitrix.gif[/img] или <img src="http://www.1c-bitrix.ru/images/logo_bitrix.gif">.

    Что такое смайлики?

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

    Зачем мне нужно регистрироваться?

    Вы можете этого и не делать. Всё зависит от того, как администратор настроил форум: должны ли вы зарегистрироваться, чтобы размещать сообщения или нет.

    Как мне изменить мои настройки?

    Все ваши настройки хранятся в базе данных (если вы зарегистрированы). Чтобы изменить их, перейдите в раздел "Профиль" (ссылка на него находится вверху форума). Там вы можете изменить все свои настройки. Доступ в раздел "Профиль" возможен только после регистрации.

    Страница изменения профиля посетителя состоит из трех частей: изменение регистрационной информации, изменение личных данных и изменение профиля на форуме.

    • Раздел изменения регистрационной информации служит для изменения имени, фамилии, логина и пароля пользователя
    • Раздел изменения личных данных служит для указания профессии, номера ICQ, даты рождения, фотографии, места жительства и других личных данных
    • Раздел изменения профиля на форуме служит для изменения представления на форуме:
      • Показывать имя. В качестве имени автора сообщения используется его имя и фамилия, если они не пусты. В противном случае используется логин автора. Этот флаг запрещает использование имени и фамилии вне зависимости от их заполненности;
      • Пояснение - пояснение автора, оно будет выводиться под именем автора сообщения. В качестве пояснений запрещено использовать слова и выражения, содержащие слова админ, модератор, support и т.п. Нарушители будут удаляться с форума без предупреждения;
      • Подпись - автоматическая подпись под каждым сообщением этого пользователя. В подписи допустимо использовать любые разрешенные на данном форуме теги;
      • Аватар - изображение, показываемое под именем автора сообщения. Изображение должно быть размером не более 10 кб и разрешением не более 90x90 пикселов.

    Я хочу получать новые сообщения по почте!

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

    Существует третий вид подписки - только на новые темы (т.е. на первое сообщение каждой темы). Все три типа подписки доступны в меню форума. Управление подпиской также доступно из меню форума.

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


Форум

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Форум: настройки модуля

В этом разделе

  • Настройки
  • Доступ
  • Фильтр нецензурных слов

    • Форма настроек модуля Форум (Настройки -> Настройки продукта -> Модули) предназначена для управления глобальными параметрами модуля.

    Закладка "Настройки"

    Наименование параметра | Описание
E-Mail для поля From писем с форума | Адрес отправителя, подставляемый по-умолчанию в поле FROM писем, отправляемых с форума.
Число форумов на страницу | Количество форумов, выводимых на одной странице в публичном разделе сайта.
Число тем на страницу | Количество тем форума, выводимых на одной странице в публичном разделе сайта.
Число сообщений на страницу | Количество сообщений форума, выводимых на одной странице в публичном разделе сайта.
Включить голосования | Данная опция позволяет разрешить посетителям форума участвовать в голосовании для присвоения баллов авторам сообщений. Количество баллов, присвоенное посетителю форума, влияет на звание данного посетителя.
Иконки на панель | Данная опция позволяет разрешить показ кнопок для управления форумом на административной панели. Примечание: Работают только при наличии константы FORUM_MODULE_PAGE.
Показывать ICQ в контактах пользователя | При отмеченной опции в контактах пользователя будет показан номер ICQ.
Показывать имя хоста вместо IP-адреса | При отмеченной опции вместо IP-адреса пользователя будет показано имя хоста.
Хранить в БД код HTML | Для того чтобы HTML-код хранился в базе данных, отметьте эту опцию.
Пользовательские настройки
Максимальный размер аватара (байт) | Максимальный размер файла аватара в байтах.
Максимальная ширина/высота аватара (пикселей) | Максимально допустимые ширина и высота аватара в пикселях.
Максимальный размер загружаемых файлов (байт) | Максимально допустимый размер файлов, разрешенных для загрузки на форум.
Настройки персональных сообщений
Версия | Указывается версия персональных сообщений.
Размер ящика (сообщений) | Количество сообщений, помещающихся в ящике.
Поиск
Количество документов, переиндексируемых за шаг | Количество документов, переиндексируемых за шаг поиска.

    Закладка "Доступ"

    Эта форма позволяет настроить права групп пользователей на доступ к модулю форумов.

    Поле | Описание
    По умолчанию | Управление правами доступа всех групп пользователей, для которых установлен уровень доступа "по умолчанию".
    [Группа пользователей] Уровень доступа для конкретной группы пользователей:
    • Закрыт– доступ к меню и административным файлам модуля закрыт;
    • Просмотр всех данных модуля– доступ к меню открыт, разрешен просмотр файлов модуля без права изменения;
    • Запись – полный доступ.

    Закладка "Фильтр нецензурных слов"

    Поле | Описание
    Включить фильтр нецензурных слов | Для использования на форуме фильтра нецензурных слов отметьте данную опцию. При ее включении становятся активными следующие два поля.
    Действия с найденными словами Выбирается одно из действий, совершаемое с найденными нецензурными словами:
    • ничего;
    • удалить;
    • заменить.
    Замена | Если в качестве действия с найденными словами выбрано "заменить", то необходимо указать словосочетание или слово, на которое будет заменено данное нецензурное слово.
    Языкозависимые параметры
    [Язык] | Задаются словари слов и транслита для каждого из языков.


Создание нового форума

  1. Откройте страницу управления форумами (Сервисы -> Форумы -> Список форумов).
  2. Выберите кнопку Новый форум на административной панели.
  3. Установите флаг в поле Активен.
  4. Укажите относительный "вес" форума. Чем больше значение сортировки, тем ниже в списке форумов будет расположен новый форум.
  5. В поле Имя форума введите название форума.
  6. Составьте краткое описание форума. Описание будет показано в публичной части в списке форумов.
  7. Выберите сайты, на которых должен быть доступен этот форум, и укажите шаблоны пути к сообщениям форума для каждого из этих сайтов (для формирования ссылок в письмах с форума и для индексации сообщений форума в модуле поиска).

  8. Откройте закладку Настройки и укажите необходимые параметры форума:
    • Позволить HTML – использование HTML-кода в тексте сообщения;
    • Позволить ссылки (<a href=...>) – использование гиперссылок в сообщении;
    • Позволить теги B, U, I (<b> <u> <i>) – выделение текста полужирным, подчеркиванием или курсивом;
    • Позволить изображения (<img src=...>) – использование изображений в тексте сообщения;
    • Позволить списки (<ul><li>) – создание списков;
    • Позволить цитирование (<quote>) – возможность цитировать сообщение другого пользователя;
    • Позволить коды (<code>) – использование кодов в сообщении;
    • Позволить шрифты (<font color=...>) – возможность изменить цвет текста и шрифт;
    • Позволить смайлики – использование смайликов в сообщении.
  9. Если вы установите флаг в поле Премодерируемый, то сообщения пользователей будут публиковаться на форуме только после проверки модератором (администратором сайта или другим пользователем с соответствующими правами).
  10. Выберите вариант сортировки сообщений, а также направление сортировки. Если выбрана сортировка по дате последнего сообщения и направление по убыванию, то последние по дате сообщения будут показаны выше, чем более ранние.
  11. Перейдите на закладку Доступ и установите права для разных групп пользователей на доступ к форуму.
  12. Нажмите кнопку "Сохранить".

Пользователи с правами модератора и выше могут просмотреть IP и ID автора сообщения на форуме (ID посетителя доступен для просмотра при условии, что модуль статистики установлен и пользователю предоставлены права на использование этого модуля). Информация об авторе расположена слева от текста сообщения на форуме. По этим данным можно получить подробную информацию о посетителе и отслеживать его путь по сайту с помощью модуля статистики.


Форум (комплексный компонент)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Форум"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum","",Array(
     "TMPLT_SHOW_MENU" => "TOP",
     "TMPLT_SHOW_AUTH_FORM" => "LINK",
     "TMPLT_SHOW_ADDITIONAL_MARKER" => "(new)",
     "TMPLT_SHOW_TOP" => "",
     "TMPLT_SHOW_BOTTOM" => "SET_BE_READ",
     "WORD_WRAP_CUT" => "23",
     "SEF_MODE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "SET_TITLE" => "Y",
     "PATH_TO_AUTH_FORM" => "/auth/",
     "USE_DESC_PAGE_TOPIC" => "Y",
     "FORUMS_PER_PAGE" => "15",
     "TOPICS_PER_PAGE" => "10",
     "MESSAGES_PER_PAGE" => "3",
     "FID" => Array("12","1","6","9","7","8"),
     "USE_RSS" => "Y",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "SET_NAVIGATION" => "Y",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "PATH_TO_ICON" => "/bitrix/images/forum/icon/",
     "HELP_CONTENT" => "",
     "RULES_CONTENT" => "",
     "SHOW_FORUMS_LIST" => "N",
     "SHOW_FORUM_ANOTHER_SITE" => "N",
     "WORD_LENGTH" => "50",
     "TIME_INTERVAL_FOR_USER_STAT" => "600",
     "SEND_MAIL" => "E",
     "SEND_ICQ" => "A",
     "SHOW_USER_STATUS" => "N",
     "USER_PROPERTY" => Array(),
     "RSS_TYPE_RANGE" => Array("RSS1","RSS2","ATOM"),
     "RSS_FID_RANGE" => Array("12","1"),
     "RSS_CACHE" => "1800",
     "RSS_COUNT" => "30",
     "RSS_TN_TITLE" => "",
     "RSS_TN_DESCRIPTION" => "",
     "SEF_FOLDER" => "/Test_comp/forum/",
     "SEF_URL_TEMPLATES" => Array(
          "index" => "index.php",
          "list" => "forum#FID#/",
          "read" => "forum#FID#/topic#TID#/message#MID#/",
          "help" => "help/",
          "rules" => "rules/",
          "message_appr" => "message/approve/forum#FID#/topic#TID#/",
          "message_move" => "message/move/forum#FID#/topic#TID#/message#MID#/",
          "pm_list" => "pm/forlder#FID#/",
          "pm_edit" => "pm/folder#FID#/message#MID#/user#UID#/#mode#/",
          "pm_read" => "pm/folder#FID#/message#MID#/",
          "pm_search" => "pm/search/",
          "pm_folder" => "pm/folders/",
          "rss" => "rss/#TYPE#/#MODE#/#IID#/",
          "search" => "search/",
          "subscr_list" => "subscribe/",
          "active" => "topic/new/",
          "topic_move" => "topic/move/forum#FID#/topic#TID#/",
          "topic_new" => "topic/add/forum#FID#/",
          "topic_search" => "topic/search/",
          "user_list" => "users/",
          "profile" => "user/#UID#/edit/",
          "profile_view" => "user/#UID#/",
          "user_post" => "user/#UID#/post/#mode#/",
          "message_send" => "user/#UID#/send/#TYPE#/"
          ),
     "VARIABLE_ALIASES" => Array(
          "index" => Array(),
          "list" => Array(),
          "read" => Array(),
          "help" => Array(),
          "rules" => Array(),
          "message_appr" => Array(),
          "message_move" => Array(),
          "pm_list" => Array(),
          "pm_edit" => Array(),
          "pm_read" => Array(),
          "pm_search" => Array(),
          "pm_folder" => Array(),
          "rss" => Array(),
          "search" => Array(),
          "subscr_list" => Array(),
          "active" => Array(),
          "topic_move" => Array(),
          "topic_new" => Array(),
          "topic_search" => Array(),
          "user_list" => Array(),
          "profile" => Array(),
          "profile_view" => Array(),
          "user_post" => Array(),
          "message_send" => Array(),
          )
      )
);?>

Описание параметров

Дополнительно
TMPLT_SHOW_MENU
Способ отображения меню форума:
  • BOTH - сверху и снизу;
  • TOP - только сверху;
  • BOTTOM - только снизу;
  • NONE - не показывать.
TMPLT_SHOW_AUTH_FORM
Авторизация может быть показана в виде:
  • LINK - ссылок;
  • INPUT - полей ввода.
TMPLT_SHOW_ADDITIONAL_MARKER
Надпись, которая пишется рядом с темой, в которой есть непрочитанные вами сообщения.
TMPLT_SHOW_TOP

Надпись сверху списка форумов.

TMPLT_SHOW_BOTTOM
Надпись снизу списка форумов (тем).
WORD_WRAP_CUT
Действие со словом, длина которого превышает заявленную. Например:
  • 0 - разорвать: в слово будут вставлены разделительные символы, но при просмотре они не отображаются;
  • 23 - обрезать: слово будет обрезано до 23 символов.
Основные параметры
PATH_TO_AUTH_FORM
Путь к форме авторизации.
USE_DESC_PAGE_TOPIC
[Y/N] Отмеченная опция позволяет использовать обратную постраничную навигацию для списка тем.
FORUMS_PER_PAGE
Количество форумов на одной странице.
TOPICS_PER_PAGE
Количество тем на одной странице.
MESSAGES_PER_PAGE
Количество сообщений на одной странице.
SEND_MAIL
Пользователи, которые могут отправлять письмо (e-mail) из профиля:
  • A - никто;
  • E - авторизованные пользователи;
  • U - все пользователи, для незарегистрированных пользователей выводить поле CAPTCHA;
  • Y - все пользователи.
SEND_ICQ
Пользователи, которые могут отправлять сообщение (icq) из профиля.
SHOW_USER_STATUS
[Y/N] При отмеченной опции будет отображаться статус пользователя в списке пользователей.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Указываются адреса следующих страниц:
  • index - страница списка форумов;
  • list - страница списка тем форума;
  • read - страница чтения темы форума;
  • help - страница помощи по форумам;
  • rules - страница правил форумов;
  • message_appr - страница неодобренных сообщений;
  • message_move - страница переноса сообщений;
  • pm_list - страница списка персональных сообщений;
  • pm_edit - страница создания (редактирования) персональных сообщений;
  • pm_read - страница чтения персонального сообщения;
  • pm_search - страница поиска пользователей;
  • pm_folder - страница управления папками персональных сообщений;
  • rss - страница экспорта данных в RSS;
  • search - страница поиска по форумам;
  • subscr_list - страница подписки;
  • active - страница новых тем форумов;
  • topic_move - страница переноса тем в форум;
  • topic_new - страница создания новой темы форума;
  • topic_search - страница поиска по форуму;
  • user_list - страница списка зарегистрированных пользователей форума;
  • profile - страница изменения профиля пользователя;
  • profile_view - страница просмотра профиля пользователя;
  • user_post - страница сообщений пользователей форума;
  • message_send - страница отправки письма.
VARIABLE_ALIASES
Имена переменных для управления адресами страниц форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции будет установлен заголовок каждой страницы в соответствии с ее содержимым.
FID
Идентификаторы форумов, которые необходимо отобразить в публичном разделе. Если не выбран ни один форум, то будут показаны все форумы.
DATE_FORMAT
Формат показа даты.
DATE_TIME_FORMAT
Формат показа даты и времени.
SET_NAVIGATION
[Y/N] При отмеченной опции в навигационной цепочке будут отражаться переходы по страницам форума.
PATH_TO_SMILE
Путь относительно корня сайта к папке со смайлами.
PATH_TO_ICON
Путь относительно корня сайта к папке с иконками к темам.
HELP_CONTENT
Путь к файлу, содержащему "Помощь по форуму" (при пустом поле ввода будет использовано значение по умолчанию).
RULES_CONTENT
Путь к файлу, содержащему "Правила форума" (при пустом поле ввода будет использовано значение по умолчанию).
WORD_LENGTH

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

TIME_INTERVAL_FOR_USER_STAT
Период времени (в секундах), за который отображается информация о посетителях на форуме.
USER_PROPERTY
Указываются свойства пользователя, которые необходимо дополнительно отобразить при просмотре его профиля. Если не выбрано ни одно из свойств, то будут показаны все имеющиеся свойства.
Настройки RSS
USE_RSS
[Y/N] При отмеченной опции становится возможным экспорт данных в формате RSS и появляются дополнительные поля настройки RSS.
RSS_TYPE_RANGE
Указываются необходимы форматы экспорта данных форума: RSS 0.92, RSS 2.0 и Atom 0.3.
RSS_FID_RANGE
Указываются идентификаторы тех форумов, на которых разрешить RSS.
RSS_CACHE
Время кеширования ленты, указанное в секундах.
RSS_COUNT
Количество элементов форума для экспорта.
RSS_TN_TITLE
Название ленты (при пустом поле ввода будет использовано значение по умолчанию).
RSS_TN_DESCRIPTION
Описание ленты (при пустом поле ввода будет использовано значение по умолчанию).
Настройки администратора
SHOW_FORUMS_LIST
[Y/N] При отмеченной опции администратору будут показаны только те форумы, которые указаны в параметре FID.
SHOW_FORUM_ANOTHER_SITE
[Y/N] При отмеченной опции администратору будут показаны форумы других сайтов.


PM (изменение)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "PM (изменение)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.pm.edit","",Array(
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "URL_TEMPLATES_PM_LIST" => "pm_list.php?FID=#FID#",
     "URL_TEMPLATES_PM_READ" => "pm_read.php?MID=#MID#",
     "URL_TEMPLATES_PM_EDIT" => "pm_edit.php?MID=#MID#",
     "URL_TEMPLATES_PM_SEARCH" => "pm_search.php?MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "MID" => $_REQUEST["MID"],
     "FID" => $_REQUEST["FID"],
     "UID" => $_REQUEST["UID"],
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/"
    )
);?>

Описание параметров

Основные параметры
MID
Параметр содержит код, в котором передается идентификатор сообщения. Значение по умолчанию: $_REQUEST["MID"].
FID
Параметр содержит код, в котором передается идентификатор папки пользователя с личными сообщениями. Значение по умолчанию: $_REQUEST["FID"].
UID
Параметр содержит код, в котором передается идентификатор пользователя. Значение по умолчанию: $_REQUEST["UID"].
Шаблоны ссылок
URL_TEMPLATES_PM_LIST
Путь к странице со списком персональных сообщений.
URL_TEMPLATES_PM_READ
Путь к странице чтения персонального сообщения.
URL_TEMPLATES_PM_EDIT
Путь к странице создания/редактирования персонального сообщения.
URL_TEMPLATES_PM_SEARCH
Путь к странице поиска пользователя.
URL_TEMPLATES_PROFILE_VIEW
Путь к странице просмотра профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено Новое при создании нового сообщения или <тема_сообщения> (редактирование) при изменении сообщения.
SET_NAVIGATION
[Y|N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.


PM (папки)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "PM (папки)"

Данный компонент служит для вывода списка личных папок пользователя. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.pm.folder","",Array(
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "SET_NAVIGATION" => "Y",
     "URL_TEMPLATES_PM_LIST" => "pm_list.php?FID=#FID#",
     "URL_TEMPLATES_PM_FOLDER" => "pm_folder.php"
     )
);?>

Описание параметров

Шаблоны ссылок
URL_TEMPLATES_PM_LIST
Путь к странице со списком персональных сообщений.
URL_TEMPLATES_PM_FOLDER
Путь к странице управления папками пользователя с личными сообщениями.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено Список папок.
SET_NAVIGATION
[Y|N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.


PM (поиск)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "PM (поиск)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.pm.search","",Array(
     "PM_USER_PAGE" => "20"
     )
);?>

Описание параметров

Дополнительные настройки
PM_USER_PAGE
Количество найденных пользователей на странице.


PM (список)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "PM (список)"

Данный компонент служит вывода списка личных сообщений пользователя из указанной папки. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.pm.list","",Array(
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "SET_NAVIGATION" => "Y",
     "PM_PER_PAGE" => "20",
     "URL_TEMPLATES_PM_LIST" => "pm_list.php?FID=#FID#",
     "URL_TEMPLATES_PM_READ" => "pm_read.php?MID=#MID#",
     "URL_TEMPLATES_PM_EDIT" => "pm_edit.php?MID=#MID#&mode=#mode#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "FID" => "1"
     )
);?>

Описание параметров

Основные параметры
FID
Идентификатор папки пользователя с личными сообщениями.
Шаблоны ссылок
URL_TEMPLATES_PM_LIST
Путь к странице со списком персональных сообщений.
URL_TEMPLATES_PM_READ
Путь к странице чтения персонального сообщения.
URL_TEMPLATES_PM_EDIT
Путь к странице создания/редактирования персонального сообщения.
URL_TEMPLATES_PROFILE_VIEW
Путь к странице просмотра профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено название папки.
DATE_FORMAT
Указывается формат вывода даты.
DATE_TIME_FORMAT
Указывается формат вывода даты и времени.
SET_NAVIGATION
[Y|N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.
PM_PER_PAGE
Количество сообщений, выводимых на странице. Остальные будут выведены с помощью постраничной навигации.


PM (чтение)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "PM (чтение)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.pm.read","",Array(
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "SET_NAVIGATION" => "Y",
     "URL_TEMPLATES_PM_LIST" => "pm_list.php?FID=#FID#",
     "URL_TEMPLATES_PM_READ" => "pm_read.php?MID=#MID#",
     "URL_TEMPLATES_PM_EDIT" => "pm_edit.php?MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "FID" => $_REQUEST["FID"],
     "MID" => $_REQUEST["MID"],
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/"
     )
);?>

Описание параметров

Основные параметры
FID
Параметр содержит код, в котором передается идентификатор папки пользователя с личными сообщениями. Значение по умолчанию: $_REQUEST["FID"].
MID
Параметр содержит код, в котором передается идентификатор сообщения. Значение по умолчанию: $_REQUEST["MID"].
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.
Шаблоны ссылок
URL_TEMPLATES_PM_LIST
Путь к странице со списком персональных сообщений.
URL_TEMPLATES_PM_READ
Путь к странице чтения персонального сообщения.
URL_TEMPLATES_PM_EDIT
Путь к странице создания/редактирования персонального сообщения.
URL_TEMPLATES_PROFILE_VIEW
Путь к странице просмотра профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено <тема_сообщения> (чтение).
SET_NAVIGATION
[Y|N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.


Меню форума

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Меню"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.menu","",Array(
     "TMPLT_SHOW_AUTH_FORM" => "LINK",
     "SHOW_ADD_MENU" => "N",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_SUBSCR_LIST" => "subscr_list.php",
     "URL_TEMPLATES_ACTIVE" => "active.php",
     "URL_TEMPLATES_SEARCH" => "search.php",
     "URL_TEMPLATES_HELP" => "help.php",
     "URL_TEMPLATES_USER_LIST" => "user_list.php",
     "URL_TEMPLATES_PM_LIST" => "pm_list.php",
     "URL_TEMPLATES_PM_EDIT" => "pm_edit.php?FID=#FID#&MID=#MID#&UID=#UID#&mode=#mode#",
     "URL_TEMPLATES_PM_FOLDER" => "pm_folder.php",
     "URL_TEMPLATES_RULES" => "rules.php",
     "FID" => $_REQUEST["FID"],
     "TID" => $_REQUEST["FID"],
     "PAGE_NAME" => "",
     "PATH_TO_AUTH_FORM" => "/auth.php"
     )
);?>

Описание параметров

Дополнительно
TMPLT_SHOW_AUTH_FORM
Авторизация может быть показана в виде:
LINK - ссылок;
INPUT - полей ввода.
SHOW_ADD_MENU
[Y/N] При отмеченной опции будут показаны дополнительные пункты меню. Например, пункт "Отметить форумы прочитанными".
Основные параметры
FID
Идентификатор форума.
TID
Идентификатор темы.
PAGE_NAME
Имя страницы вызывающего компонента.
PATH_TO_AUTH_FORM
Путь к форме авторизации. Если не задан, то будет использовано значение по умолчанию.
Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
URL_TEMPLATES_SUBSCR_LIST
Адрес страницы подписки на форумы.
URL_TEMPLATES_ACTIVE
Адрес страницы списка новых тем форумов.
URL_TEMPLATES_SEARCH
Адрес страницы поиска по форумам.
URL_TEMPLATES_HELP
Адрес страницы помощи по форумам.
URL_TEMPLATES_USER_LIST
Адрес страницы со списком зарегистрированных пользователей форума.
URL_TEMPLATES_PM_LIST
Адрес страницы личных сообщений пользователя.
URL_TEMPLATES_PM_EDIT
Адрес страницы создания (редактирования) личных сообщений.
URL_TEMPLATES_PM_FOLDER
Адрес страницы управления директориями личных сообщений.
URL_TEMPLATES_RULES
Адрес страницы, содержащей правила форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.


Письмо

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Письмо"

С помощью данного компонента происходит отправка письма (сообщения) пользователю. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.message.send","",Array(
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "UID" => $_REQUEST["UID"],
     "SEND_MAIL" => "E",
     "SEND_ICQ" => "A"
     )
);?>

Описание параметров

Основные параметры
UID
Параметр содержит код, в котором передается идентификатор пользователя. Значение по умолчанию: $_REQUEST["UID"].
SEND_MAIL
Указывается группа, пользователи которой могут отправлять письмо (e-mail) из профиля:
  • A - никто;
  • E - авторизованные пользователи;
  • U - все пользователи, но с учётом того, что неавторизованные должны заполнить поле CAPTCHA;
  • Y - все пользователи.
SEND_ICQ
Указывается группа, пользователи которой могут отправлять сообщение (iсq) из профиля.
Шаблоны ссылок
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
Дополнительные настройки
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено Новое при создании нового сообщения или <тема_сообщения> (редактирование) при изменении сообщения.
SET_NAVIGATION
При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.


Подписка на форум

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Подписка (список)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.subscribe.list","",Array(
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "SET_NAVIGATION" => "Y",
     "TOPICS_PER_PAGE" => "20",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_SUBSCR_LIST" => "subscr_list.php",
     "FID" => $_REQUEST["FID"]
     )
);?>

Описание параметров

Основные параметры
FID
Идентификатор форума.
Шаблоны ссылок
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
URL_TEMPLATES_SUBSCR_LIST
Адрес страницы подписки на форумы.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Список подписки на сообщения форума.
SET_NAVIGATION
[Y/N] При отмеченной опции в навигационной цепочке будут отражен переход на страницу списка подписки.
DATE_FORMAT
Формат показа даты.
DATE_TIME_FORMAT
Формат показа даты и времени.
TOPICS_PER_PAGE
Количество тем, отображаемых на одной странице. Для отображения всех тем используется постраничная навигация.


Поиск по форуму

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Поиск"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.search","",Array(
     "TOPICS_PER_PAGE" => "20",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "SET_NAVIGATION" => "Y",
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#"
     )
);?>

Описание параметров

Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
TOPICS_PER_PAGE
Количество тем, отображаемых на одной странице. Для отображения всех тем используется постраничная навигация.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Поиск.
SET_NAVIGATION
[Y/N] При отмеченной опции в навигационной цепочке будут отражен переход на страницу поиска.


Изменение профиля пользователя

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Пользователь (изменение профиля)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.user.profile.edit","",Array(
     "USER_PROPERTY_NAME" => "",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "USER_PROPERTY" => array(),
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "UID" => $_REQUEST["UID"
     )
);?>

Описание параметров

Дополнительно
USER_PROPERTY_NAME
Название закладки с дополнительными пользовательскими свойствами.
Основные параметры
UID
Идентификатор пользователя.
Шаблоны ссылок
URL_TEMPLATES_PROFILE_VIEW
Путь к странице просмотра профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено <имя_пользователя> (изменение профиля) .
SET_NAVIGATION
[Y|N] При отмеченной опции будет добавлен пункт с именем пользователя в цепочку навигации.
USER_PROPERTY
Указываются пользовательские свойства, которые необходимо дополнительно отобразить.


Пользователь (профиль)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Пользователь (профиль)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.user.profile.view","",Array(
     "USER_PROPERTY_NAME" => "",
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "USER_PROPERTY" => array(),
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_PROFILE" => "profile.php?UID=#UID#",
     "URL_TEMPLATES_USER_LIST" => "user_list.php",
     "URL_TEMPLATES_PM_LIST" => "pm_list.php",
     "URL_TEMPLATES_MESSAGE_SEND" => "message_send.php?TYPE=#TYPE#&UID=#UID#",
     "URL_TEMPLATES_USER_POST" => "user_post.php?UID=#UID#&mode=#mode#",
     "UID" => $_REQUEST["UID"]
     )
);?>

Описание параметров

Дополнительно
USER_PROPERTY_NAME
Название закладки с дополнительными свойствами пользователя.
Основные параметры
UID
Идентификатор пользователя.
Шаблоны ссылок
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
URL_TEMPLATES_PROFILE
Адрес страницы редактирования профиля пользователя.
URL_TEMPLATES_USER_LIST
Адрес страницы со списком зарегистрированных пользователей форума.
URL_TEMPLATES_PM_LIST
Адрес страницы личных сообщений пользователя.
URL_TEMPLATES_MESSAGE_SEND
Адрес страницы отправки сообщений.
URL_TEMPLATES_USER_POST
Адрес страницы со списком всех сообщений пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено имя пользователя.
SET_NAVIGATION
[Y/N] При отмеченной опции в навигационной цепочке будут отражен переход на страницу профиля пользователя.
USER_PROPERTY
Указываются свойства пользователя, которые будут показаны на закладке с названием, заданным в параметре USER_PROPERTY_NAME.
DATE_FORMAT
Формат показа даты.
DATE_TIME_FORMAT
Формат показа даты и времени.


Пользователь (сообщения)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Пользователь (сообщения)"

Данный компонент служит для вывода списка сообщений, тем пользователя форума. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.user.post","",Array(
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "SHOW_USER_STATUS" => "Y",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y",
     "MESSAGES_PER_PAGE" => "25",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_USER_LIST" => "user_list.php",
     "MODE" => "all",
     "UID" => $_REQUEST["UID"]
     )
);?>

Описание параметров

Основные параметры
MODE
Указывается режим отображения сообщений пользователя:
  • all - все сообщения автора;
  • lt - участвовал в темах;
  • lta - автор тем.
UID
Параметр содержит код, в котором передается идентификатор пользователя. Значение по умолчанию: $_REQUEST["UID"].
Шаблоны ссылок
URL_TEMPLATES_LIST
Путь к странице со списком тем форума.
URL_TEMPLATES_READ
Путь к странице чтения темы форума.
URL_TEMPLATES_PROFILE_VIEW
Путь к странице просмотра профиля пользователя.
URL_TEMPLATES_USER_LIST
Путь к странице списка пользователей форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено <логин_пользователя> (<режим_отображения>).
SET_NAVIGATION
[Y|N] При отмеченной опции будет добавлен пункт с логином пользователя в цепочку навигации.
SHOW_USER_STATUS
[Y|N] При отмеченной опции будет показан статус (звание) пользователя.
DATE_FORMAT
Задается формат показа даты.
DATE_TIME_FORMAT
Задается формат показа даты и времени.
MESSAGES_PER_PAGE
Количество сообщений отображаемых на одной странице. Все сообщения выводятся с помощью постраничной навигации.
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.


Список пользователей

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Пользователь (список пользователей)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.user.list","",Array(
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "SHOW_USER_STATUS" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "USERS_PER_PAGE" => "20",
     "URL_TEMPLATES_MESSAGE_SEND" => "message_send.php?TYPE=#TYPE#&UID=#UID#",
     "URL_TEMPLATES_PM_EDIT" => "pm_edit.php?FID=#FID#&MID=#MID#&UID=#UID#&mode=#mode#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_USER_POST" => "user_post.php?UID=#UID#&mode=#mode#"
     )
);?>

Описание параметров

Основные параметры
SHOW_USER_STATUS
[Y|N] При отмеченной опции будет показан статус (звание) пользователя.
Шаблоны ссылок
URL_TEMPLATES_MESSAGE_SEND
Путь к странице отправки сообщений.
URL_TEMPLATES_PM_EDIT
Путь к странице создания/редактирования персонального сообщения.
URL_TEMPLATES_PROFILE_VIEW
Путь к странице просмотра профиля пользователя.
URL_TEMPLATES_USER_POST
Путь к странице просмотра сообщений пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Пользователи.
SET_NAVIGATION
[Y|N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.
DATE_FORMAT
Указывается формат показа даты.
DATE_TIME_FORMAT
Указывается формат показа даты и времени.
USERS_PER_PAGE
Количество пользователей, отображаемых на одной странице. Весь список пользователей выводится с помощью постраничной навигации.


Помощь

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Помощь"

Данный компонент выводит помощь по форуму. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.help","",Array(
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "CONTENT" => "",
     "URL_TEMPLATES_INDEX" => "index.php"
     )
);?>

Описание параметров

Шаблоны ссылок
URL_TEMPLATES_INDEX
Путь к странице со списком форумов.
Дополнительные настройки
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено Помощь.
SET_NAVIGATION
[Y|N] При отмеченной опции в навигационной цепочке будет отражен переход на страницу помощи по форуму.
CONTENT
Путь к файлу, содержащему текст раздела. Если значение параметра не указано, то будет использовано значение по умолчанию.


Правила

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Правила"

Данный компонент служит для создания страницы с правилами форума. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.rules","",Array(
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "CONTENT" => "",
     "URL_TEMPLATES_INDEX" => "index.php"
     )
);?>

Описание параметров

Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
Дополнительные настройки
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено Правила форума.
SET_NAVIGATION
[Y|N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.
CONTENT
Путь к файлу, содержащему текст раздела. Если значение параметра не указано, то будет использовано значение по умолчанию.


Сообщения (перемещение)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Сообщения (перемещение)"

Данный компонент служит для перемещения сообщений форума. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.message.move","",Array(
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_TOPIC_SEARCH" => "topic_search.php",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "PATH_TO_ICON" => "/bitrix/images/forum/icon/",
     "WORD_LENGTH" => "50"
     )
);?>

Описание параметров

Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_READ
Адрес страницы чтения темы.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
URL_TEMPLATES_TOPIC_SEARCH
Адрес страницы поиска темы форума.
Дополнительные настройки
SET_TITLE
[Y|N] Данный параметр определяет будет установлен заголовок или нет.
SET_NAVIGATION
[Y|N] При отмеченной опции в навигационной цепочке будет отражен переход на страницу переноса сообщения.
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.
PATH_TO_ICON
Путь к папке с иконками к темам относительно корня сайта.
WORD_LENGTH
Максимально допустимая длина словообразующих символов, следующих друг за другом.
Если длина слова превысит указанное число, то символы слова будут разбавлены разрывами (при просмотре сообщений разрывы не отображаются).


Сообщения (проверка)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Сообщения (проверка)"

Данный компонент выводит неодобренные сообщения форума. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.message.approve","",Array(
     "FID" => $_REQUEST["FID"],
     "TID" => $_REQUEST["TID"],
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "MESSAGES_PER_PAGE" => "25",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "WORD_LENGTH" => "50"
     )
);?>

Описание параметров

Основные параметры
FID
Идентификатор форума.
TID
Идентификатор темы.
Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_READ
Адрес страницы чтения темы.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции будет установлен заголовок страницы.
SET_NAVIGATION
[Y|N] При отмеченной опции в навигационной цепочке будет отражен переход на страницу с неодобренными сообщениями.
MESSAGES_PER_PAGE
Количество сообщений на одной странице. Остальные будут выведены с помощью постраничной навигации.
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.
WORD_LENGTH
Максимально допустимая длина словообразующих символов, следующих друг за другом.
Если длина слова превысит указанное число, то символы слова будут разбавлены разрывами (при просмотре сообщений разрывы не отображаются).


Тема (отзывы)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Тема (отзывы)"

Данный компонент выводит форму для создания отзыва к инфоблоку, а также и весь список отзывов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.topic.reviews","",Array(
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "CACHE_RANGE" => "OPTIMAL",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "MESSAGES_PER_PAGE" => "25",
     "USE_CAPTCHA" => "Y",
     "PREORDER" => "Y",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "FORUM_ID" => "2",
     "ELEMENT_ID" => $_REQUEST["ELEMENT_ID"],
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#"
     )
);?>

Описание параметров

Основные параметры
FORUM_ID
Идентификатор форума для отзывов.
ELEMENT_ID
Идентификатор элемента инфоблока.
Шаблоны ссылок
URL_TEMPLATES_READ
Адрес страницы чтения темы.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
CACHE_RANGE
Степень кеширования:
  • MAX - максимально;
  • OPTIMAL - оптимально.
Дополнительные настройки
DATE_TIME_FORMAT
Формат показа даты и времени.
MESSAGES_PER_PAGE
Количество сообщений на одной странице. Остальные будут выведены с помощью постраничной навигации.
USE_CAPTCHA
[Y|N] При отмеченной опции будет использоваться защита от автоматического заполнения.
PREORDER
[Y|N] При отмеченной опции сообщения будут выведены в прямом порядке.
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.


Создание темы форума

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Тема (создание)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.topic.new","",Array(
     "FID" => $_REQUEST["FID"],
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "PATH_TO_ICON" => "/bitrix/images/forum/icon/",
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#"
     )
);?>

Описание параметров

Основные параметры
FID
Идентификатор форума.
Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Новая тема.
SET_NAVIGATION
[Y/N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.
PATH_TO_ICON
Путь к папке с иконками к темам относительно корня сайта.


Чтение темы форума

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Тема (чтение)"

Данный компонент выводит список сообщений темы форума. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.topic.read","",Array(
     "FID" => $_REQUEST["FID"],
     "TID" => $_REQUEST["TID"],
     "MID" => $_REQUEST["MID"],
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "MESSAGES_PER_PAGE" => "25",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_MESSAGE_MOVE" => "message_move.php?FID=#FID#&TID=#TID#&MID_ARRAY=#MID_ARRAY#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_TOPIC_NEW" => "topic_new.php?FID=#FID#",
     "URL_TEMPLATES_SUBSCR_LIST" => "subscr_list.php?FID=#FID#",
     "URL_TEMPLATES_TOPIC_MOVE" => "topic_move.php?FID=#FID#&TID=#TID#",
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_PM_EDIT" => "pm_edit.php",
     "URL_TEMPLATES_MESSAGE_SEND" => "message_send.php?UID=#UID#",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "USE_DESC_PAGE" => "Y",
     "WORD_LENGTH" => "50"
     )
);?>

Описание параметров

Основные параметры
FID
Идентификатор форума.
TID
Идентификатор темы.
MID
Идентификатор сообщения.
USE_DESC_PAGE
[Y|N] При отмеченной опции для вывода списка сообщений будет использована обратная постраничная навигация.
Шаблоны ссылок
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_MESSAGE_MOVE
Адрес страницы переноса сообщений форума.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
URL_TEMPLATES_TOPIC_NEW
Адрес страницы создания новой темы форума.
URL_TEMPLATES_SUBSCR_LIST
Адрес страницы подписки на форум.
URL_TEMPLATES_TOPIC_MOVE
Адрес страницы переноса темы форума.
URL_TEMPLATES_INDEX
Адрес страницы списка форумов.
URL_TEMPLATES_PM_EDIT
Адрес страницы редактирования личных сообщений пользователя.
URL_TEMPLATES_MESSAGE_SEND
Адрес страницы отправки сообщения.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено название просматриваемой темы.
SET_NAVIGATION
[Y/N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.
DATE_FORMAT
Формат показа даты.
DATE_TIME_FORMAT
Формат показа даты и времени.
MESSAGES_PER_PAGE
Количество сообщений на одной странице. Остальные будут выведены с помощью постраничной навигации.
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.
WORD_LENGTH
Максимально допустимая длина словообразующих символов, следующих друг за другом.
Если длина слова превысит указанное число, то символы слова будут разбавлены разрывами (при просмотре сообщений разрывы не отображаются).


Новые темы форума

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Темы (новые)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.topic.active","",Array(
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "FID" => $_REQUEST["FID"],
     "SET_TITLE" => "Y",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "SET_NAVIGATION" => "Y",
     "TOPICS_PER_PAGE" => "20",
     "MESSAGES_PER_PAGE" => "25",
     "PATH_TO_ICON" => "/bitrix/images/forum/icon/",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "WORD_LENGTH" => "50"
     )
);?>

Описание параметров

Основные параметры
FID
Идентификатор форума.
Шаблоны ссылок
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Новые темы.
DATE_FORMAT
Формат показа даты.
DATE_TIME_FORMAT
Формат показа даты и времени.
SET_NAVIGATION
[Y/N] При отмеченной опции в навигационной цепочке будут отражен переход на страницу новых тем.
TOPICS_PER_PAGE
Количество тем, отображаемых на одной странице. Для отображения всех тем используется постраничная навигация.
MESSAGES_PER_PAGE
Количество сообщений, отображаемых на одной странице. Для отображения всех сообщений используется постраничная навигация.
PATH_TO_ICON
Путь относительно корня сайта к папке с иконками к темам.
WORD_LENGTH
Максимально допустимая длина словообразующих символов, следующих друг за другом.
Если длина слова превысит указанное число, то символы слова будут разбавлены разрывами (при просмотре сообщений разрывы не отображаются).


Перенос тем форума

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Темы (перемещение)"

Данный компонент служит для создания страницы перемещения тем форума. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.topic.move","",Array(
     "FID" => $_REQUEST["FID"],
     "TID" => $_REQUEST["TID"],
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "PATH_TO_ICON" => "/bitrix/images/forum/icon/",
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_TOPIC_MOVE" => "topic_move.php?FID=#FID#&TID=#TID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0"
     )
);?>

Описание параметров

Основные параметры
FID
Идентификатор форума.
TID
Идентификатор темы.
Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_TOPIC_MOVE
Адрес страницы переноса темы форума.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Перенос темы в другой форум.
SET_NAVIGATION
[Y/N] При отмеченной опции будет добавлен пункт с заголовком страницы в цепочку навигации.
PATH_TO_ICON
Путь к папке с иконками к темам относительно корня сайта.


Поиск тем форума

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Темы (поиск)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.topic.search","",Array(
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "TOPIC_PER_PAGE" => "20",
     "URL_TEMPLATES_TOPIC_SEARCH" => "topic_search.php"
     )
);?>

Описание параметров

Шаблоны ссылок
URL_TEMPLATES_TOPIC_SEARCH
Адрес страницы поиска тем форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
TOPIC_PER_PAGE
Количество найденных тем на одной странице. Остальные будут выведены с помощью постраничной навигации.


Внешний список тем форумов

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Темы (список внешний)"

Данный компонент выводит список тем (для использования вне форума). Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.topic.last","",Array(
     "FID" => "",
     "SET_TITLE" => "Y",
     "SET_NAVIGATION" => "Y",
     "TOPICS_PER_PAGE" => "20",
     "SHOW_TOPICS_PAGES" => "Y",
     "SHOW_FORUM_ANOTHER_SITE" => "Y",
     "SORT_BY" => "LAST_POST_DATE",
     "SORT_ORDER" => "DESC",
     "SHOW_SORTING" => "",
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0"
     )
);?>

Описание параметров

Основные параметры
FID
Идентификатор форума.
Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] Данный параметр определяет устанавливать заголовок страницы или нет.
SET_NAVIGATION
[Y/N] При отмеченной опции в навигационной цепочке будут отражен переход на страницу с внешним списком тем.
TOPICS_PER_PAGE
Количество тем, отображаемых на одной странице. Весь список может быть выведен с помощью постраничной навигации.
SHOW_TOPICS_PAGES
[Y/N] Данный параметр определяет показывать постраничную навигацию или нет.
SHOW_FORUM_ANOTHER_SITE
[Y/N] При отмеченной опции будут показаны форумы других сайтов.
SORT_BY
Указывается поле, по которому будет происходить сортировка сообщений.
SORT_ORDER
Выбирается направление сортировки: по возрастанию (ASC) или по убыванию (DESC).
SHOW_SORTING
Указываются поля, по которым отображать сортировку.


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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Темы (список)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.topic.list","",Array(
     "TMPLT_SHOW_ADDITIONAL_MARKER" => "",
     "TMPLT_SHOW_BOTTOM" => "SET_BE_READ",
     "WORD_WRAP_CUT" => "23",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "SET_NAVIGATION" => "Y",
     "PATH_TO_ICON" => "/bitrix/images/forum/icon/",
     "TOPICS_PER_PAGE" => "10",
     "MESSAGES_PER_PAGE" => "3",
     "URL_TEMPLATES_INDEX" => "index.php",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_MESSAGE_APPR" => "message_appr.php?FID=#FID#",
     "URL_TEMPLATES_TOPIC_NEW" => "topic_new.php?FID=#FID#",
     "URL_TEMPLATES_SUBSCR_LIST" => "subscr_list.php?FID=#FID#",
     "URL_TEMPLATES_TOPIC_MOVE" => "topic_move.php?FID=#FID#&TID=#TID#",
     "FID" => $_REQUEST["FID"],
     "USE_DESC_PAGE" => "Y",
     "WORD_LENGTH" => "50"
     )
);?>

Описание параметров

Дополнительно
TMPLT_SHOW_ADDITIONAL_MARKER
Надпись, которая пишется рядом с темой, в которой есть непрочитанные вами сообщения.
TMPLT_SHOW_BOTTOM
Надпись снизу списка тем.
WORD_WRAP_CUT
Действие со словом, длина которого превышает заявленную. Например:
  • 0 - разорвать: в слово будут вставлены разделительные символы, но при просмотре они не отображаются;
  • 23 - обрезать: слово будет обрезано до 23 символов.
Основные параметры
FID
Идентификатор форума.
USE_DESC_PAGE
[Y/N] Отмеченная опция позволяет использовать обратную постраничную навигацию для списка тем.
Шаблоны ссылок
URL_TEMPLATES_INDEX
Адрес страницы со списком форумов.
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
URL_TEMPLATES_MESSAGE_APPR
Адрес страницы с неодобренными сообщениями форума.
URL_TEMPLATES_TOPIC_NEW
Адрес страницы создания новой темы.
URL_TEMPLATES_SUBSCR_LIST
Адрес страницы подписки на форум.
URL_TEMPLATES_TOPIC_MOVE
Адрес страницы переноса темы форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено название форума, список тем которого просматривается.
DATE_FORMAT
Формат показа даты.
DATE_TIME_FORMAT
Формат показа даты и времени.
SET_NAVIGATION
[Y/N] При отмеченной опции в навигационной цепочке будут отражен переход на страницу списка тем форума.
PATH_TO_ICON
Путь к папке с иконками к темам относительно корня сайта.
TOPICS_PER_PAGE
Количество тем форума на одной странице. Остальные будут выведены с помощью постраничной навигации.
MESSAGES_PER_PAGE
Количество сообщений на одной странице. Остальные будут выведены с помощью постраничной навигации.
WORD_LENGTH
Максимально допустимая длина словообразующих символов, следующих друг за другом.
Если длина слова превысит указанное число, то символы слова будут разбавлены разрывами (при просмотре сообщений разрывы не отображаются).


Форма создания сообщения

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма создания сообщения"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.post_form","",Array(
     "MESSAGE_TYPE" => $_REQUEST["MESSAGE_TYPE"],
     "FID" => $_REQUEST["FID"],
     "TID" => $_REQUEST["TID"],
     "PAGE_NAME" => "read",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "PATH_TO_ICON" => "/bitrix/images/forum/icon/",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0"
     )
);?>

Описание параметров

Основные параметры
MESSAGE_TYPE
Тип отображения формы редактирования (ответ, редактирование, новая тема).
FID
Идентификатор форума.
TID
Идентификатор темы.
PAGE_NAME
Имя страницы вызывающего компонента.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
PATH_TO_SMILE
Путь относительно корня сайта к папке со смайлами.
PATH_TO_ICON
Путь относительно корня сайта к папке с иконками к темам.


Список форумов

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форумы (список)"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.index","",Array(
     "TMPLT_SHOW_ADDITIONAL_MARKER" => "(new)",
     "TMPLT_SHOW_TOP" => "",
     "TMPLT_SHOW_BOTTOM" => "SET_BE_READ",
     "WORD_WRAP_CUT" => "23",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "0",
     "FID" => Array("1","7","2","6"),
     "DATE_FORMAT" => "d.m.Y",
     "DATE_TIME_FORMAT" => "d.m.Y H:i:s",
     "FORUMS_PER_PAGE" => "20",
     "SHOW_FORUMS_LIST" => "Y",
     "SHOW_FORUM_ANOTHER_SITE" => "Y",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_MESSAGE_APPR" => "message_appr.php?FID=#FID#&TID=#TID#",
     "URL_TEMPLATES_MESSAGE_RSS" => "rss.php?PAGE_NAME=#PAGE_NAME#&IID=#IID#&TYPE=#TYPE#",
     "RSS_TYPE" => Array("RSS1","RSS2","ATOM"),
     "WORD_LENGTH" => "50",
     "TIME_INTERVAL_FOR_USER_STAT" => "600"
     )
);?>

Описание параметров

Дополнительно
TMPLT_SHOW_ADDITIONAL_MARKER
Надпись, которая пишется рядом с темой, в которой есть непрочитанные вами сообщения.
TMPLT_SHOW_TOP

Надпись сверху списка форумов.

TMPLT_SHOW_BOTTOM
Надпись снизу списка форумов (тем).
WORD_WRAP_CUT
Действие со словом, длина которого превышает заявленную. Например:
0 - разорвать: в слово будут вставлены разделительные символы, но при просмотре они не отображаются;
23 - обрезать: слово будет обрезано до 23 символов.
Основные параметры
RSS_TYPE
Выбираются необходимы форматы экспорта данных форума: RSS 0.92, RSS 2.0 и Atom 0.3.
Шаблоны ссылок
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
URL_TEMPLATES_MESSAGE_APPR
Адрес страницы неодобренных сообщений форума.
URL_TEMPLATES_MESSAGE_RSS
Адрес страницы экспорта данных форума в определённом формате.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Форумы.
FID
Идентификаторы форумов, которые необходимо отобразить в публичном разделе. Если не выбран ни один форум, то будут показаны все форумы.
DATE_FORMAT
Формат показа даты.
DATE_TIME_FORMAT
Формат показа даты и времени.
FORUMS_PER_PAGE
Количество форумов на одной странице.
WORD_LENGTH

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

TIME_INTERVAL_FOR_USER_STAT
Период времени (в секундах), за который отображается информация о посетителях на форуме.
Настройки администратора
SHOW_FORUMS_LIST
[Y/N] При отмеченной опции администратору будут показаны только те форумы, которые указаны в параметре FID.
SHOW_FORUM_ANOTHER_SITE
[Y/N] При отмеченной опции администратору будут показаны форумы других сайтов.


RSS форума

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "RSS форума"

Данный компонент служит для экспорта данных форума в указанном формате. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:forum.rss","",Array(
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400",
     "TYPE_RANGE" => Array("RSS2"),
     "TYPE" => $_REQUEST["TYPE"],
     "CACHE_RSS" => "1800",
     "FID_RANGE" => Array("1"),
     "COUNT" => "30",
     "TN_TITLE" => "",
     "TN_DESCRIPTION" => "",
     "PATH_TO_SMILE" => "/bitrix/images/forum/smile/",
     "URL_TEMPLATES_LIST" => "list.php?FID=#FID#",
     "URL_TEMPLATES_READ" => "read.php?FID=#FID#&TID=#TID#&MID=#MID#",
     "URL_TEMPLATES_PROFILE_VIEW" => "profile_view.php?UID=#UID#",
     "URL_TEMPLATES_RSS" => "rss.php?TYPE=#TYPE#&MODE=#MODE#&IID=#IID#"
     )
);?>

Описание параметров

Основные параметры
TYPE_RANGE
Указываются необходимы форматы экспорта данных форума: RSS 0.92, RSS 2.0 и Atom 0.3.
TYPE
Тип RSS.
CACHE_RSS
Время кеширования ленты, указанное в секундах.
FID_RANGE
Указываются идентификаторы тех форумов, на которых разрешить RSS.
COUNT
Количество элементов форума для экспорта.
TN_TITLE
Название ленты (при пустом поле ввода будет использовано значение по умолчанию).
TN_DESCRIPTION
Описание ленты (при пустом поле ввода будет использовано значение по умолчанию).
Шаблоны ссылок
URL_TEMPLATES_LIST
Адрес страницы со списком тем форума.
URL_TEMPLATES_READ
Адрес страницы чтения темы форума.
URL_TEMPLATES_PROFILE_VIEW
Адрес страницы просмотра профиля пользователя.
URL_TEMPLATES_RSS
Адрес страницы RSS форума.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
A - Авто: действует при включенном кешировании в течение заданного времени;
Y - Кешировать: для кеширования необходимо определить только время кеширования;
N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
PATH_TO_SMILE
Путь относительно корня сайта к папке со смайлами.


Форма комментариев (на базе форума)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма запроса"

<?$APPLICATION->IncludeFile("forum/forum_pieces/comment.php", Array(
     'INQUERY_FORUM_ID' => 2',
     )
);?>

Компонент выводит форму запроса.

Параметры

INQUERY_FORUM_ID
Идентификатор форума, в который сохраняются комментарии посетителей.


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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список тем форума"

<?$APPLICATION->IncludeFile("forum/forum_pieces/last_topics.php",Array(
     'FID' => '1',
     'NUM' => '10',
     'ORDER_BY' => 'TITLE',
     'ORDER_DIRECTION' => 'ASC',
     'PATH2MESSAGES' => '/forum/read.php',
     'CACHE_TIME' => '600',
     )
);?>

Компонент показывает список тем определённого форума, упорядоченных по заданному условию.

Параметры

FID
Идентификатор форума.
NUM
Количество тем, выводимых на странице.
ORDER_BY
Поле, по которому осуществляется сортировка, допустимые значения:
  • TITLE - заголовок темы,
  • POSTS - количество ответов,
  • USER_START_NAME - автор темы,
  • VIEWS - количество просмотров,
  • START_DATE - дата создания темы,
  • LAST_POST_DATE - дата последнего сообщения;
ORDER_DIRECTION
Направление сортировки, допустимые значения:
  • ASC - по возрастанию,
  • DESC - по убыванию;
PATH2MESSAGES
Путь к странице сообщений форума.
CACHE_TIME
Время кеширования данных в секундах.


Отзывы на элементы

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Отзывы на элементы "

<?$APPLICATION->IncludeFile("forum/forum_pieces/reviews.php", Array(
     'FORUM_ID' => '1',
     'PRODUCT_ID' => $arIBlockElement["ID"],
     'CACHE_TIME' => '600',
     )
);?>

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

Параметры

FORUM_ID
Идентификатор форума, в который сохраняются комментарии.
PRODUCT_ID
Идентификатор элемента инфоблока (код товара), к которому добавляются комментарии.
CACHE_TIME
Период (в секундах), на который кешируется результат. Установка этого параметра в ноль отключает кеширование.


Блоги

Модуль Блоги предоставляет следующие возможности:

  • создавать неограниченное число блогов;
  • управлять правами доступа к блогам;
  • настраивать иконки и смайлики для использования в сообщениях блога;
  • обрабатывать смайлики и теги при показе сообщений и комментариев;
  • создавать черновик сообщения;
  • использовать календарь сообщений;
  • импортировать блоги в RSS;
  • использовать механизм Trackback;
  • Tags (возможность группировки сообщений блога по произвольным темам);
  • создавать древовидные комментарии;
  • присоединять изображения к сообщениям.


Блоги

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список блогов
    •

    На странице Блоги (Сервисы -> Блоги -> Блоги) представлена таблица, содержащая список блогов. Страница служит для добавления новых блогов, а также для перехода к управлению их параметрами.

    Фильтр

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

    Параметр | Описание
Название | Название блога.
Активность | Поиск можно задать по активным, неактивным или всем блогам.
Путь | Путь к блогу для данного сайта.
Группа | Указывается группа, по которой будет проходить поиск, либо поиск будет выполнен по всем группам.
Владелец | Имя владельца блога.

    Для того чтобы отобрать блоги по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех блогов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новый блог | Переход к форме создания нового блога.
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список блогов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора блогов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над блогом:
    • Изменить параметры блога - переход к форме редактирования блога;
    • Удалить блог - удаление блога.
    ID | Идентификатор блога.
    Название | Указывается имя пользователя блога.
    Дата создания | Дата создания блога.
    Дата последнего обновления | Дата последнего обновления блога.
    Активность | Признак активности блога. Если блог неактивен, то он не может быть использован.
    Владелец | Пользователь, который является владельцем блога.
    Путь | Название блога латницей, которое используется при указании пути к блогу.
    Группа | Название группы, к которой привязан блог.


Создание и редактирование блога

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Параметры блога
  • Права на доступ
  • Доп. свойства
    •
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список блогов | Переход на страницу co списком блогов.
Новый блог | Переход к форме создания нового блога. Кнопка отображается при редактировании существующего блога.
Удалить блог | Удаление редактируемого блога. Кнопка отображается при редактировании существующего блога.

    Форма редактирования

    Закладка "Параметры блога "

    Поле | Описание
ID | Уникальный идентификатор блога.
*Название | Название блога.
Описание | Поле для ввода описания к блогу.
*Название латинскими буквами | Название блога латинскими буквами.
Активность | Признак активности блога.
*Владелец блога | Указывается идентификатор пользователя, который является владельцем блога.
*Группа блогов | Название группы, к которой относится блог.
На блоге разрешены комментарии | Установка этого флага разрешает создавать комментарии к сообщениям.
Включена защита от роботов (CAPTCHA) | При включении этого флага будет использоваться технология CAPTCHA.
Включена выгрузка в RSS .92, RSS 2.0 и Atom .03 | Данная опция определяет возможность экспорта данных блога в форматы RSS .92, RSS 2.0 и Atom .03.
Отправлять уведомления на email | Если данный флаг установлен, то извещения о создании новых сообщений или комментариев будут отправляться на e-mail владельца блога.

    * - Поля, обязательные для заполнения.

    Закладка "Право на доступ "

    На этой закладке настраиваются следующие права на доступ к блогу:

    • Права на сообщения;
    • Права на комментарии.

    Каждое из этих прав настраивается для:

    • всех посетителей;
    • авторизованных посетителей;
    • друзей.

    Закладка "Дополнительные свойства"

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком блогов.
Применить | Применение внесённых изменений. Продолжение редактирования параметров блога.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Группы блогов

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список групп блогов

    • На странице Группы блогов (Сервисы -> Блоги -> Группы блогов) представлена таблица, содержащая список групп блогов. Страница служит для добавления новых групп, а также для перехода к редактированию существующих.

    Фильтр

    Параметр | Описание
Сайт | Поиск блогов по заданному сайту или по всем сайтам.

    Для того чтобы отобрать группу по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех групп блогов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новая группа | Переход к форме создания новой группы блогов.
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список групп блогов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора группы блогов, к которой предполагается применить какое-либо правило или действие.
    Действия Действия над группой:
    • Изменить параметры группы - переход к форме редактирования группы блогов;
    • Удалить группу - удаление группы блогов.
    ID | Идентификатор группы.
    Название | Название группы .
    Сайт | Привязка группы блогов к указанному сайту.


Создание и редактирование группы блогов

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Контекстная панель

    Кнопка | Описание
Список групп | Переход на страницу со списком групп блогов.
Новая группа | Переход к форме создания новой группы. Кнопка отображается при редактировании существующей группы.
Удалить группу | Удаление редактируемой группы блогов. Кнопка отображается при редактировании существующей группы.

    Форма редактирования - "Параметры группы блогов"

    Поле | Описание
ID | Уникальный идентификатор блога (не редактируется).
*Название группы | Название группы блогов.
*Сайт группы | Сайт, на котором будут доступны блоги даннной группы.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком групп блогов.
Применить | Применение внесённых изменений. Продолжение редактирования параметров группы блогов.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Смайлики блогов

В этом разделе

  • Контекстная панель
  • Список смайлов
    •

    На странице Смайлы (Сервисы -> Блоги -> Смайлы) представлена таблица, содержащая список смайликов. Страница служит для добавления новых смайлов, а также для перехода к редактированию существующих.

    Контекстная панель

    Кнопка | Описание
Новый смайлик | Переход к форме создания нового смайлика.
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

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

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора смайлика, к которому предполагается применить какое-либо правило или действие.
    Действия Действия над смайликами:
    • Изменить параметры смайлика - переход к форме редактирования смайлика;
    • Удалить смайлик - удаление смайлика.
    Код | Уникальный код смайлика.
    Сорт. | Относительный "вес", определяющий положение смайлика в списке. Чем меньше значение, тем выше в списке показывается смайлик.
    Тип | Тип смайлика: смайлик или иконка.
    Название | Название смайлика.
    Написание | Написание смайлика.
    Изображение | Изображение смайлика.


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

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Контекстная панель

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

    Форма редактирования

    Поле | Описание
    Код | Уникальный код смайлика (не редактируется).
    Сортировка | Указывается относительный "вес", определяющий положение смайлика в списке. Чем меньше значение, тем выше в списке показывается смайлик.
    Тип смайлика Из выпадающего списка выбирается тип смайлика:
    • смайлик;
    • иконка.
    Написание смайлика | Написание смайлика (изображение смайлика символами).
    Изображение смайлика | С помощью кнопки "Обзор" указывается изображение смайлика.
    Язык интерфейса
    *Название | Для каждого языка задается название смайлика.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком смайликов.
Применить | Применение внесённых изменений. Продолжение редактирования параметров смайликов.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Настройки модуля блогов

В этом разделе

  • Настройки модуля блогов
  • Права на доступ
  • Кнопки управления

    • Форма предназначена для задания общесистемных параметров модуля блогов. Для удобства работы форма разделена на закладки, на каждой из которых выполняется настройка определённой группы параметров модуля.

    Закладка "Настройки модуля блогов"

    Поле | Описание
Максимальный размер аватара | Указывается максимально допустимый размер (в байтах) аватара пользователя.
Максимальная ширина аватара | Максимальная ширина аватара в пикселах.
Максимальная высота аватара | Максимальная высота аватара в пикселах.
Максимальная ширина загружаемого изображения | Это поле служит для указания максимальной ширины (в пикселах) изображения к сообщению.
Максимальная высота загружаемого изображения | Указывается максимальная высота (в пикселах) изображения к сообщению.
Разрешить использование псевдонимов | Если этот флаг отмечен, то пользователь имеет возможность использования псевдонима.
Запретить изменение URL блога после регистрации | При использовании этого флага будет запрещено изменение URL блога (изменение названия блога, заданного латиницей) после регистрации.
Показывать IP в комментариях для владельцев блогов | При отмеченной опции для владельцев блогов будут показаны IP-адреса посетителей, оставивших комментарии.
Пути к публичной части блогов для компонентов 1.0 (по сайтам)
Шаблоны путей для сайта <название_сайта> | Задается шаблон пути к блогам для компонентов 1.0.
Шаблоны путей к публичной части блогов (по сайтам)
Шаблоны путей для сайта <название_сайта> | Задается шаблон пути к блогам для компонентов 2.0.

    Закладка "Права на доступ"

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

    Поле | Описание
    По умолчанию | Права на доступ групп пользователей, для которых установлено право "по умолчанию".
    [Группа пользователей] Изменение настроек доступа для конкретной группы. Возможно назначение следующих прав доступа к модулю Блоги:
    • чтение блогов - разрешается просмотр блогов в публичном разделе;
    • создание блогов - создание блога в публичном разделе сайта;
    • просмотр административной части - управление блогами в публичном разделе и разрешение просмотра в административной части без права модификаций.
    • полный доступ - полный доступ к ресурсам модуля.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений.
Сбросить | Отмена внесённых изменений. Возврат первоначальных значений параметров.
По умолчанию | Установка значений свойств модуля равными значениям по умолчанию.


Блоги (комплексный компонент)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Блоги"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog","",Array(
     "USER_PROPERTY_NAME" => "",
     "SEF_MODE" => "Y",
     "PATH_TO_SMILE" => "/bitrix/images/blog/smile/",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "SET_TITLE" => "Y",
     "CACHE_TIME_LONG" => "604800",
     "SET_NAV_CHAIN" => "Y",
     "MESSAGE_COUNT" => "25",
     "MESSAGE_COUNT_MAIN" => "6",
     "BLOG_COUNT_MAIN" => "6",
     "COMMENTS_COUNT" => "25",
     "MESSAGE_LENGTH" => "100",
     "BLOG_COUNT" => "20",
     "USER_PROPERTY" => Array(),
     "BLOG_PROPERTY" => Array(),
     "BLOG_PROPERTY_LIST" => Array(),
     "POST_PROPERTY" => Array(),
     "POST_PROPERTY_LIST" => Array(),
     "SEF_FOLDER" => "/blog/",
     "SEF_URL_TEMPLATES" => Array(
         "index" => "index.php",
         "group" => "group/#group_id#.php",
         "blog" => "#blog#/",
         "user" => "user/#user_id#.php",
         "user_friends" => "friends/#user_id#.php",
         "search" => "search.php",
         "user_settings" => "#blog#/user_settings.php",
         "user_settings_edit" => "#blog#/user_settings_edit.php?id=#user_id#",
         "group_edit" => "#blog#/group_edit.php",
         "blog_edit" => "#blog#/blog_edit.php",
         "category_edit" => "#blog#/category_edit.php",
         "post_edit" => "#blog#/post_edit.php?id=#post_id#",
         "draft" => "#blog#/draft.php",
         "trackback" => POST_FORM_ACTION_URI.'&blog=#blog#&id=#post_id#&page=trackback',
         "post" => "#blog#/#post_id#.php",
         "rss" => "#blog#/rss/#type#",
         "rss_all" => "rss/#type#/#group_id#"
         ),
     "VARIABLE_ALIASES" => Array(
         "index" => Array(),
         "group" => Array(),
         "blog" => Array(),
         "user" => Array(),
         "user_friends" => Array(),
         "search" => Array(),
         "user_settings" => Array(),
         "user_settings_edit" => Array(
               "user_id" => "id"
               ),
         "group_edit" => Array(),
         "blog_edit" => Array(),
         "category_edit" => Array(),
         "post_edit" => Array(
               "post_id" => "id"
               ),
         "draft" => Array(),
         "trackback" => Array(
             "blog" => "blog",
             "post_id" => "id"
             ),
         "post" => Array(),
         "rss" => Array(),
         "rss_all" => Array(),
         )
     )
);?>

Описание параметров

Дополнительно
USER_PROPERTY_NAME
Название закладки с дополнительными свойствами.
Внешний вид
MESSAGE_COUNT
Количество сообщений на странице. Остальные сообщения будут выведены с помощью постраничной навигации.
MESSAGE_COUNT_MAIN
Количество новых сообщений, которые будут выведены на главной странице блога.
BLOG_COUNT_MAIN
Количество блогов, которые будут выведены на главной странице блогов.
COMMENTS_COUNT
Количество комментариев, выводимых к сообщению на странице. Остальные будут выведены с помощью постраничной навигации.
MESSAGE_LENGTH
Длина текста выводимых сообщений на главной странице блогов.
BLOG_COUNT
Количество блогов, выводимых на странице. Остальные будут выведены с помощью постраничной навигации.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Указываются адреса следующих страниц:
  • index - главная страница блогов;
  • group - страница блогов определённой группы;
  • blog - страница блога;
  • user - страница профиля пользователя;
  • user_friends - страница друзей пользователя;
  • search - страница поиска по блогам;
  • user_settings - страница настроек пользователей;
  • user_settings_edit - страница настроек прав доступа пользователей;
  • group_edit - страница настроек групп пользователей блога;
  • blog_edit - страница редактирования блога;
  • category_edit - страница настроек категорий блога;
  • post_edit - страница редактрования сообщений блога;
  • draft - страница недописанных сообщений блога;
  • trackback - указывается код для получения Trackback адреса сообщения;
  • post - страница детального просмотра сообщения.
  • rss - страница экспорта данных блога.
  • rss_all - страница экспорта сообщений всех блогов.
VARIABLE_ALIASES
Имена переменных для управления страницами блогов.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
CACHE_TIME_LONG
Время кеширования страниц, начиная со второй.
Дополнительные настройки
PATH_TO_SMILE
Путь к папке со смайликам относительно корня сайта.
SET_TITLE
[Y/N] При отмеченной опции на каждой странице будет установлен заголовок в соответствии с ее содержимым.
SET_NAV_CHAIN
[Y/N] При отмеченной опции в цепочке навигации будут отображены переходы по страницам блогов.
USER_PROPERTY
Указываются дополнительные свойства, которые необходимо отобразить в профиле пользователя.
BLOG_PROPERTY
Указываются пользовательские свойства блога, которые необходимо дополнительно отобразить в блоге.
BLOG_PROPERTY_LIST
Указываются пользовательские свойства блога, которые необходимо дополнительно отобразить в информации о блоге.
POST_PROPERTY
Указываются пользовательские свойства сообщения, которые необходимо дополнительно отобразить при детальном просмотре сообщения.
POST_PROPERTY_LIST
Указываются пользовательские свойства сообщения, которые необходимо дополнительно отобразить в блоге.


Меню блогов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Меню блогов"

Данный компонент выводит меню блогов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.menu","",Array(
    "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
    "PATH_TO_BLOG_INDEX" => "blog_s.php",
    "PATH_TO_DRAFT" => "blog_b_draft.php?page=draft&blog=#blog#",
    "PATH_TO_POST_EDIT" => "blog_p_edit.php?page=post_edit&blog=#blog#&post_id=#post_id#",
    "PATH_TO_USER_FRIENDS" => "blog_friends.php?page=user_friend&user_id=#user_id#",
    "PATH_TO_USER_SETTINGS" => "blog_user_set.php?page=user_settings&blog=#blog#",
    "PATH_TO_GROUP_EDIT" => "blog_user_gr.php?page=group_edit&blog=#blog#",
    "PATH_TO_BLOG_EDIT" => "blog_b_edit.php?page=blog_edit&blog=#blog#",
    "PATH_TO_CATEGORY_EDIT" => "blog_category.php?page=category_edit&blog=#blog#",
    "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
    "BLOG_VAR" => "blog",
    "POST_VAR" => "post_id",
    "PAGE_VAR" => "page",
    "USER_VAR" => "user_id",
    "BLOG_URL" => $blog,
    "SET_NAV_CHAIN" => "Y"
    )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице конкретного блога.
PATH_TO_BLOG_INDEX
Путь к главной странице.
PATH_TO_DRAFT
Путь к странице с недописанными сообщениями блога.
PATH_TO_POST_EDIT
Путь к странице редактирования сообщения блога.
PATH_TO_USER_FRIENDS
Путь к странице сообщений друзей пользователя.
PATH_TO_USER_SETTINGS
Путь к странице редактирования списка друзей пользователя.
PATH_TO_GROUP_EDIT
Путь к странице настройки групп пользователей блога.
PATH_TO_BLOG_EDIT
Путь к странице редактирования настроек блога.
PATH_TO_CATEGORY_EDIT
Путь к странице настроек категорий сообщений блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Дополнительные настройки
SET_NAV_CHAIN
[Y/N] При отмеченной опции будет добавлен пункт в цепочку навигации.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения.
PAGE_VAR
Имя переменной, которой передается страница блога.
USER_VAR
Имя переменной, которой передается ID пользователя.


Новые сообщения

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Новые сообщения"

Данный компонент выводит последние сообщения блогов текущего сайта. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.new_posts","",Array(
     "MESSAGE_COUNT" => "8",
     "MESSAGE_LENGHT" => "100",
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_POST" => "blog_post.php?page=post&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "PATH_TO_SMILE" => "/bitrix/images/blog/smile/",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400"
     )
);?>

Описание параметров

Внешний вид
MESSAGE_COUNT
Количество сообщений, которые будут выведены на странице.
MESSAGE_LENGHT
Длина выводимого текста сообщения.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице конкретного блога.
PATH_TO_POST
Путь к странице просмотра сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Новые блоги

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Новые блоги"

Данный компонент выводит новые блоги. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.new_blogs","",Array(
     "BLOG_COUNT" => "6",
     "SHOW_DESCRIPTION" => "Y",
     "SORT_BY1" => "DATE_CREATE",
     "SORT_ORDER1" => "DESC",
     "SORT_BY2" => "ID",
     "SORT_ORDER2" => "DESC",
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400"
     )
);?>

Описание параметров

Внешний вид
BLOG_COUNT
Количество блогов, выводимых на странице.
SHOW_DESCRIPTION
[Y|N] При выборе значения "Y" будет выводится описание блога.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице конкретного блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SORT_BY1
Выбирается первый параметр сортировки:
  • DATE_CREATE - дата создания блога;
  • ID - идентификатор блога;
  • NAME - название блога;
  • LAST_POST_DATE - дата последнего сообщения.
SORT_ORDER1
Направление сортировки по параметру SORT_BY1:
  • ASC - по возрастанию;
  • DESC - по убыванию.
SORT_BY2
Выбирается второй параметр сортировки.
SORT_ORDER2
Направление сортировки по параметру SORT_BY2.
BLOG_VAR
Имя переменной, которой передается ID блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Группы блогов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Группы блогов"

Данный компонент выводит непустые группы блогов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.groups","",Array(
    "GROUPS_COUNT" => "6",
    "COLS_COUNT" => "2",
    "PATH_TO_GROUP" => "blog_g_blog.php?page=group&group_id=#group_id#",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "86400",
    "SORT_BY1" => "NAME",
    "SORT_ORDER1" => "ASC",
    "SORT_BY2" => "ID",
    "SORT_ORDER2" => "ASC",
    "GROUP_VAR" => "group_id",
    "PAGE_VAR" => "page"
    )
);?>

Описание параметров

Внешний вид
GROUPS_COUNT
Количество групп, выводимых на странице. Будут выведены только непустые группы.
COLS_COUNT
Количество столбцов, в которые будут выведены группы.
Шаблоны ссылок
PATH_TO_GROUP
Путь к странице блогов некоторой группы.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SORT_BY1
Выбирается первый параметр сортировки:
  • NAME - название группы;
  • ID - идентификатор группы.
SORT_ORDER1
Направление сортировки по параметру SORT_BY1:
  • ASC - по возрастанию;
  • DESC - по убыванию.
SORT_BY2
Выбирается второй параметр сортировки.
SORT_ORDER2
Направление сортировки по параметру SORT_BY2.
GROUP_VAR
Имя переменной, которой передается ID группы блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Поиск по блогам

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Поиск по блогам"

С помощью данного компонента выводится форма поиска и результаты поиска по блогам. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.search","",Array(
     "PAGE_RESULT_COUNT" => "25",
     "SEARCH_PAGE" => "blog_search.php",
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_POST" => "blog_post.php?page=post&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Внешний вид
PAGE_RESULT_COUNT
Количество результатов поиска, выводимых на страницу.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_POST
Путь к странице детального просмотра сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Дополнительные настройки
SEARCH_PAGE
Путь к странице поиска.
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено Поиск по блогам.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Сообщения блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Сообщения блога"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.blog","",Array(
     "MESSAGE_COUNT" => "15",
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_BLOG_CATEGORY" => "blog_filter.php?page=blog&blog=#blog#&category=#category#",
     "PATH_TO_POST" => "blog_post.php?page=post&blog=#blog#&post_id=#post_id#",
     "PATH_TO_POST_EDIT" => "blog_p_edit.php?page=post_edit&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "PATH_TO_SMILE" => "/bitrix/images/blog/smile/",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "BLOG_URL" => $blog,
     "YEAR" => $year,
     "MONTH" => $month,
     "DAY" => $day,
     "CATEGORY_ID" => $category,
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "7200",
     "CACHE_TIME_LONG" => "604800",
     "SET_NAV_CHAIN" => "Y",
     "SET_TITLE" => "Y",
     "POST_PROPERTY_LIST" => Array()
     )
);?>

Описание параметров

Основные параметры
YEAR
Параметр содержит код, в котором передается год для фильтрации.
MONTH
Параметр содержит код, в котором передается месяц фильтрации.
DAY
Параметр содержит код, в котором передается день для фильтрации.
CATEGORY_ID
Параметр содержит код, в котором передается идентификатор категории для фильтрации.
Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Внешний вид
MESSAGE_COUNT
Количество сообщений на странице. Остальные будут выведены с помощью постраничной навигации.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице конкретного блога.
PATH_TO_BLOG_CATEGORY
Путь к странице блога с фильтром по категории.
PATH_TO_POST
Путь к странице детального просмотра сообщения блога.
PATH_TO_POST_EDIT
Путь к странице редактирования сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
CACHE_TIME_LONG
Поле служит для указания времени кеширования страниц, начиная со второй.
Дополнительные настройки
PATH_TO_SMILE
Путь к папке со смайлами относительно корня сайта.
SET_NAV_CHAIN
[Y|N] При отмеченной опции будет добавлен пункт с названием блога в цепочку навигации.
SET_TITLE
[Y|N] При установленной опции в качестве заголовка страницы будет установлено название блога.
POST_PROPERTY_LIST
Указываются пользовательские свойства сообщения, которые необходимо дополнительно отобразить.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Информация о блоге

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Информация о блоге"

Данный компонент выводит информацию о блоге со списком категорий. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.info","",Array(
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_BLOG_CATEGORY" => "blog_blog.php?page=blog&blog=#blog#&category=#category#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "BLOG_URL" => $blog,
     "CATEGORY_ID" => $category,
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400",
     "BLOG_PROPERTY_LIST" => array()
     )
);?>

Описание параметров

Основные параметры
CATEGORY_ID
Параметр содержит код, в котором передается идентификатор категории для фильтрации.
Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице конкретного блога.
PATH_TO_BLOG_CATEGORY
Путь к странице блога с фильтром по категории.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
BLOG_PROPERTY_LIST
Указываются пользовательские свойства блога, которые необходимо дополнительно отобразить.
BLOG_VAR
Имя переменной, которой передается ID блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Блоги, календарь

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Календарь"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.calendar","",Array(
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "BLOG_VAR" => "blog",
     "PAGE_VAR" => "page",
     "BLOG_URL" => $blog,
     "YEAR" => $year,
     "MONTH" => $month,
     "DAY" => $day,
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400"
     )
);?>

Описание параметров

Основные параметры
YEAR
Параметр содержит код, в котором передается год для фильтрации.
MONTH
Параметр содержит код, в котором передается месяц фильтрации.
DAY
Параметр содержит код, в котором передается день для фильтрации.
Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
BLOG_VAR
Имя переменной, которой передается ID блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Ссылки на RSS блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Ссылки на RSS блога"

Данный компонент выводит ссылки на RSS. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.rss.link","",Array(
     "PATH_TO_RSS" => "",
     "PATH_TO_RSS_ALL" => "blog_rss_all.php?page=rss_all&blog=#blog#&type=#type#",
     "BLOG_VAR" => "blog",
     "PAGE_VAR" => "page",
     "GROUP_VAR" => "group_id",
     "BLOG_URL" => $blog,
     "GROUP_ID" => $group_id,
     "RSS1" => "Y",
     "RSS2" => "Y",
     "ATOM" => "Y",
     "MODE" => "S"
     )
);?>

Описание параметров

Основные параметры
RSS1
[Y|N] При отмеченной опции будет показана ссылка на RSS .92.
RSS2
[Y|N] При отмеченной опции будет показана ссылка на RSS 2.0.
ATOM
[Y|N] При отмеченной опции будет показана ссылка на ATOM .3.
MODE
Ссылки на RSS показывать для:
  • B - блога;
  • S - блогов сайта;
  • G - блогов группы.
Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
GROUP_ID
Параметр содержит код, в котором передается идентификатор группы блогов.
Шаблоны ссылок
PATH_TO_RSS
Путь к странице RSS блога.
PATH_TO_RSS_ALL
Путь к странице общего RSS блогов.
Дополнительные настройки
BLOG_VAR
Имя переменной, которой передается ID блога.
PAGE_VAR
Имя переменной, которой передается страница блога.
GROUP_VAR
Имя переменной, которой передается ID группы блогов.


Сообщение детально

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Сообщение детально"

Данный компонент выводит подробно сообщение блога. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.post","",Array(
     "BLOG_URL" => $blog,
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_BLOG_CATEGORY" => "",
     "PATH_TO_POST_EDIT" => "blog_p_edit.php?page=post_edit&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "ID" => $post_id,
     "SET_NAV_CHAIN" => "Y",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400",
     "POST_PROPERTY" => array()
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
ID
Параметр содержит код, в котором передается идентификатор сообщения блога.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_BLOG_CATEGORY
Путь к странице блога с фильтром по категории.
PATH_TO_POST_EDIT
Путь к странице редактирования сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_NAV_CHAIN
[Y|N] При установленной опции в цепочку навигации будет добавлено название блога, к которому относится текущее сообщение.
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено название текущего сообщения.
POST_PROPERTY
Указываются пользовательские свойства сообщения, которые необходимо дополнительно отобразить.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Trackback'и сообщения

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Trackback'и сообщения"

Данный компонент выводит Trackback-адрес и Trackback'и к сообщению. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.post.trackback","",Array(
     "BLOG_URL" => $blog,
     "PATH_TO_TRACKBACK" => "/blog/blog_p_track_get.php?page=trackback&blog=#blog#&post_id=#post_id#",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "PAGE_VAR" => "page",
     "ID" => $post_id,
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400"
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
ID
Параметр содержит код, в котором передается идентификатор сообщения блога.
Шаблоны ссылок
PATH_TO_TRACKBACK
Указывается полный путь к странице trackback'а сообщения.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Комментарии к сообщению

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Комментарии к сообщению"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.post.comment","",Array(
     "ID" => $post_id,
     "BLOG_URL" => $blog,
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "PATH_TO_SMILE" => "/bitrix/images/blog/smile/",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "COMMENTS_COUNT" => "15",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400"
     )
);?>

Описание параметров

Источник данных
ID
Параметр содержит код, в котором передается идентификатор сообщения блога.
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Внешний вид
COMMENTS_COUNT
Количество комментариев на странице. Остальные будут выведены с помощью постраничной навигации.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
PATH_TO_SMILE
Путь к папке со смайликами относительно корня сайта.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Блоги группы

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Блоги группы"

Данный компонент выводит все блоги указанной группы. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.group.blog","",Array(
     "BLOG_COUNT" => "10",
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_POST" => "blog_post.php?page=post&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "ID" => $group_id,
     "SHOW_BLOG_WITHOUT_POSTS" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400",
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
ID
Параметр содержит код, в котором передается идентификатор группы блогов.
Внешний вид
BLOG_COUNT
Количество блогов на странице. Остальные будут выведены с помощью постраничной навигации.
SHOW_BLOG_WITHOUT_POSTS
[Y|N] При отмеченной опции будут показаны и те блоги, которые не имеют сообщений.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_POST
Путь к странице детального просмотра сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено название группы блогов.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Лента друзей

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Лента друзей"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.friends","",Array(
     "MESSAGE_COUNT" => "15",
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_BLOG_CATEGORY" => "",
     "PATH_TO_POST" => "blog_post.php?page=postt&blog=#blog#&post_id=#post_id#",
     "PATH_TO_POST_EDIT" => "blog_p_edit.php?page=post_edit&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "PATH_TO_SMILE" => "/bitrix/images/blog/smile/",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "ID" => $user_id,
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
ID
Параметр содержит код, в котором передается идентификатор пользователя.
Внешний вид
MESSAGE_COUNT
Количество сообщений, которые будут выведены на странице.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_BLOG_CATEGORY
Путь к странице блога с фильтром по категории.
PATH_TO_POST
Путь к странице детального просмотра сообщения блога.
PATH_TO_POST_EDIT
Путь к странице редактирования сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
PATH_TO_SMILE
Путь к папке со смайликами относительно корня сайта.
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Лента моих друзей.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Профиль пользователя

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Профиль пользователя"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.user","",Array(
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "PATH_TO_USER_EDIT" => "",
     "PATH_TO_SEARCH" => "blog_search.php",
     "BLOG_VAR" => "blog",
     "PAGE_VAR" => "page",
     "USER_VAR" => "user_id",
     "ID" => $user_id,
     "SET_TITLE" => "Y",
     "USER_PROPERTY" => array()
     )
);?>

Описание параметров

Источник данных
ID
Параметр содержит код, в котором передается идентификатор пользователя.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_USER
Путь к странице профиля пользователя.
PATH_TO_USER_EDIT
Путь к странице редактирования профиля пользователя.
PATH_TO_SEARCH
Путь к странице поиска.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Профиль пользователя <имя_пользователя>.
USER_PROPERTY
Указываются дополнительные свойства пользователя, которые необходимо отобразить.
BLOG_VAR
Имя переменной, которой передается ID блога.
PAGE_VAR
Имя переменной, которой передается страница блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.


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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Редактирование сообщения"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.post.edit","",Array(
     "BLOG_URL" => $blog,
     "ID" => $post_id,
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_POST" => "blog_blog.php?page=post&blog=#blog#&post_id=#post_id#",
     "PATH_TO_POST_EDIT" => "blog_p_edit.php?page=post_edit&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "SET_TITLE" => "Y",
     "POST_PROPERTY" => array()
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
ID
Параметр содержит код, в котором передается идентификатор пользователя.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_POST
Путь к странице детального просмотра сообщения блога.
PATH_TO_POST_EDIT
Путь к странице редактирования сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Редактирование сообщения в блоге <название_блога>.
POST_PROPERTY
Указываются пользовательские свойства сообщения, которые необходимо дополнительно отобразить.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Черновики сообщений блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Черновики сообщений блога"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.blog.draft","",Array(
     "PATH_TO_BLOG_CATEGORY" => "",
     "PATH_TO_POST_EDIT" => "blog_p_edit.php?page=post_edit&blog=#blog#&post_id=#post_id#",
     "PATH_TO_SMILE" => "/bitrix/images/blog/smile/",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "PAGE_VAR" => "page",
     "BLOG_URL" => $blog,
     "SET_NAV_CHAIN" => "Y",
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Шаблоны ссылок
PATH_TO_BLOG_CATEGORY
Путь к странице блога с фильтром по категории.
PATH_TO_POST_EDIT
Путь к странице редактирования сообщения блога.
Дополнительные настройки
PATH_TO_SMILE
Путь к папке со смайликами относительно корня сайта.
SET_NAV_CHAIN
[Y|N] При отмеченной опции в цепочку навигации будет добавлен пункт с названием блога.
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Недописанные сообщения блога <название_блога>.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Редактирование блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Редактирование блога"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.blog.edit","",Array(
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_BLOG_EDIT" => "blog_b_edit.php?page=blog_edit&blog=#blog#",
     "BLOG_VAR" => "blog",
     "PAGE_VAR" => "page",
     "BLOG_URL" => $blog,
     "SET_TITLE" => "Y",
     "BLOG_PROPERTY" => array()
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_BLOG_EDIT
Путь к странице редактирования блога.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Редактирование блога <название_блога>.
BLOG_PROPERTY
Указываются пользовательские свойства блога, которые необходимо дополнительно отобразить.
BLOG_VAR
Имя переменной, которой передается ID блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Группы пользователей блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Группы пользователей блога"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.user.group","",Array(
     "BLOG_URL" => $blog,
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Группы пользователей блога <название_блога>.


Теги блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Теги блога"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.category","",Array(
     "BLOG_URL" => $blog,
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Категории блога <название_блога>.


Настройка пользователей блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Настройка пользователей блога"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.user.settings","",Array(
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "PATH_TO_USER_SETTINGS_EDIT" => "blog_u_set_edit.php?page=user_settings_edit&blog=#blog#&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "BLOG_URL" => $blog,
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Шаблоны ссылок
PATH_TO_USER
Путь к странице профиля пользователя.
PATH_TO_USER_SETTINGS_EDIT
Путь к странице редактирования настроек пользователя.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Пользователи блога <название_блога>.
BLOG_VAR
Имя переменной, которой передается ID блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Настройка прав пользователя блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Настройка прав пользователя блога"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.user.settings.edit","",Array(
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "PATH_TO_USER_SETTINGS" => "blog_user_set.php?page=user_settings&blog=#blog#&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "BLOG_URL" => $blog,
     "ID" => $user_id,
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
ID
Параметр содержит код, в котором передается идентификатор пользователя.
Шаблоны ссылок
PATH_TO_USER
Путь к странице профиля пользователя.
PATH_TO_USER_SETTINGS
Путь к странице настроек пользователей.
Дополнительные настройки
SET_TITLE
[Y|N] При отмеченной опции в качестве заголовка страницы будет установлено Изменение прав пользователя блога <название_блога>.
BLOG_VAR
Имя переменной, которой передается ID блога.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


RSS блога

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "RSS блога"

Данный компонент выводит RSS блога в заданном формате. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.rss","",Array(
     "MESSAGE_COUNT" => "10",
     "PATH_TO_BLOG" => "blog_blog.php?page=blog&blog=#blog#",
     "PATH_TO_POST" => "blog_post.php?page=post&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "BLOG_URL" => $blog,
     "TYPE" => $type,
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400"
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
Внешний вид
MESSAGE_COUNT
Число сообщений блога, данные из которых будут выгружены в соответствующем формате.
Шаблоны ссылок
PATH_TO_BLOG
Путь к главной странице блога.
PATH_TO_POST
Путь к странице просмотра сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
TYPE
Указывается формат экспорта данных:
  • rss1 - формат RSS .92;
  • rss2 - формат RSS 2.0;
  • atom - формат Atom .03;
либо тип экспорта указывается с помощью кода.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


RSS блогов по группам/сайтам

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "RSS блогов по группам/сайтам"

Данный компонент выводит RSS блогов группы или сайта в заданном формате. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.rss.all","",Array(
     "MESSAGE_COUNT" => "10",
     "PATH_TO_POST" => "blog_post.php?page=post&blog=#blog#&post_id=#post_id#",
     "PATH_TO_USER" => "blog_user.php?page=user&user_id=#user_id#",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "USER_VAR" => "user_id",
     "PAGE_VAR" => "page",
     "GROUP_ID" => $group_id,
     "TYPE" => $type,
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400"
     )
);?>

Описание параметров

Источник данных
GROUP_ID
Параметр содержит код, в котором передается идентификатор группы блогов.
Внешний вид
MESSAGE_COUNT
Число сообщений блогов, данные из которых будут выгружены в соответствующем формате.
Шаблоны ссылок
PATH_TO_POST
Путь к странице просмотра сообщения блога.
PATH_TO_USER
Путь к странице профиля пользователя.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
TYPE
Указывается формат экспорта данных:
  • rss1 - формат RSS .92;
  • rss2 - формат RSS 2.0;
  • atom - формат Atom .03;
либо тип экспорта указывается с помощью кода.
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения.
USER_VAR
Имя переменной, которой передается ID пользователя блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Получение Trackback'ов к сообщению

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Получение Trackback'ов к сообщению"

Данный компонент получает Trackback к сообщению. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:blog.post.trackback.get","",Array(
     "BLOG_URL" => $blog,
     "PATH_TO_POST" => "blog_post.php?page=post&blog=#blog#&post_id=#post_id#",
     "BLOG_VAR" => "blog",
     "POST_VAR" => "post_id",
     "PAGE_VAR" => "page",
     "ID" => $post_id
     )
);?>

Описание параметров

Источник данных
BLOG_URL
Путь блога. Параметр содержит код, в котором передается идентификатор блога.
ID
Параметр содержит код, в котором передается идентификатор сообщения блога.
Шаблоны ссылок
PATH_TO_POST
Путь к странице просмотра сообщения блога.
Дополнительные настройки
BLOG_VAR
Имя переменной, которой передается ID блога.
POST_VAR
Имя переменной, которой передается ID сообщения блога.
PAGE_VAR
Имя переменной, которой передается страница блога.


Список обущающих курсов

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Список обучающих курсов

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список курсов

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

    Фильтр

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

    Поле | Описание
Название | Отбор учебных курсов с определённым названием. Данное поле отображается всегда, его невозможно скрыть.
ID | Идентификатор искомого курса.
Сайт | Сайт, к которому принадлежит курс.
Активен | Отображение всех курсов или только активных, или только неактивных.

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

    Контекстная панель

    Кнопка | Описание
Добавить курс | Служит для создания нового учебного курса.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список курсов

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора курсов, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного курса отображается меню, позволяющее:
    • Добавить главу - переход к форме создания новой главы в курсе;
    • Добавить урок - переход к форме создания нового урока в курсе;
    • Изменить - переход к редактированию курса;
    • Удалить - удалить учебный курс.
    ID | Идентификатор курса.
    Дата изм. | Дата и время последней модификации курса.
    Название | Название курса.
    Сорт. | Вес сортировки курса; применяется при выводе курса в списке всех курсов.
    Акт. | Признак активности курса.
    Сайт | Сайт, к которому принадлежит курс.
    Главы Количество глав в курсе. При нажатии на число будет осуществлен переход к странице со списком всех глав курса.
    Символ "+" служит для перехода к созданию новой главы.
    Уроки Количество уроков во всем курсе. При нажатии на число будет осуществлен переход к странице со списком всех уроков курса.
    Символ "+" служит для перехода к созданию нового урока.
    Тесты Количество тестов в курсе. При нажатии на число будет осуществлен переход к странице со списком всех тестов курса.
    Символ "+" служит для перехода к созданию нового теста.
    Символическое имя | Символическое имя курса.


Создание и редактирование курса

В этом разделе

  • Контекстная панель
  • Поля формы
  • Вкладка "Курс"
  • Вкладка "Анонс"
  • Вкладка "Подробно"
  • Вкладка "Доступ"
    •
  • Кнопки управления

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

    Контекстная панель

    Кнопка | Описание
Список | Ссылка для перехода на страницу со списком учебных курсов.
Создать | Ссылка для перехода на страницу создания нового курса. Отображается только на странице редактирования уже существующего курса.
Удалить | Удаление курса, просматриваемого на данной странице. Команда доступна только на странице редактирования уже существующего курса.

    Поля формы

    Вкладка "Курс"

    Поле | Описание
ID | Идентификатор курса. Данное поле отображается только в режиме редактирования существующего курса.
Изменена | Дата и время создания или изменения курса. Данное поле отображается только в режиме редактирования существующего курса.
Запись активна | Признак активности курса. Если это поле отмечено, то курс и его содержимое доступно для показа в публичной части.
Период активности (DD.MM.YYYY) | Указывается период активности курса. Если какое-то из полей оставлено пустым, то граница периода считается неограниченной.
Символическое имя | Произвольное символическое имя курса.
*Сайты | Указываются сайты, на которых данный курс будет активным.
*Название | Название курса.
Индекс сортировки | Вес сортировки курса; применяется при выводе курса в списке.
    * - Поля, обязательные для заполнения.

    Вкладка "Анонс"

    Поле | Описание
Text / HTML | Выбор формата создания краткого описания курса.
Использовать визуальный редактор | Если эта опция включена, то при условии использования формата HTML, для создания анонса курса будет использоваться визуальный редактор.
Изображение | Данное поле позволяет в краткое описание курса добавить изображение с помощью кнопки Обзор...

    Вкладка "Подробно"

    Поле | Описание
Text / HTML | Выбор формата создания детального описания курса.
Использовать визуальный редактор | Если эта опция включена, то при условии использования формата HTML, для создания детального описания курса будет использоваться визуальный редактор.
Изображение | Данное поле позволяет в детальное описание курса добавить изображение с помощью кнопки Обзор...

    Вкладка "Доступ"

    Поле Описание
    Доступы групп пользователей Предназначено для назначения различных прав доступа к курсам для разных групп пользователей:
    • нет доступа - доступ к курсам закрыт;
    • чтение - курсы доступны на чтение;
    • изменение - право на редактирование курсов;
    • полный доступ - разрешено редактировать курсы и управлять уровнем доступа к курсам пользователей других групп.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Возврат к списку курсов.
Применить | Сохранение внесённых изменений. Продолжение редактирования курса.
Отменить | Отмена внесённых изменений. Возврат к списку курсов.


Список глав курса

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Главы

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список глав

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

    Фильтр

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

    Поле | Описание
Название | Отбор глав с определённым названием. Данное поле отображается всегда, его невозможно скрыть.
Активен | Отображение всех глав или только активных, или только неактивных.
Глава | Выбирается уровень, к которому относится искомая глава, либо значение любой, т.е. будут отображены все главы.

    Для того чтобы отфильтровать главы курса по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех глав нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Добавить главу | Переход к форме создания новой главы.
Добавить урок | Служит для перехода к форме создания нового урока в курсе.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список глав

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора глав, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретной главы отображается меню, позволяющее:
    • Добавить главу - создать новую главу;
    • Добавить урок - создать новый урок;
    • Изменить - отредактировать главу;
    • Удалить - удалить главу.
    ID | Идентификатор главы.
    Дата изм. | Дата и время последней модификации главы.
    Название | Название главы.
    Сорт. | Вес сортировки главы; применяется при выводе главы в списке.
    Акт. | Признак активности главы.
    Главы Количество подглав в данной главе. При нажатии на число будет осуществлен переход к странице со списком подглав этой главы.
    Символ "+" служит для перехода к созданию новой главы.
    Уроки Количество уроков в данной главе. При нажатии на число будет осуществлен переход к странице со списком уроков этой главы.
    Символ "+" служит для перехода к созданию нового урока.
    Символическое имя | Мнемоническое имя главы.


Создание и редактирование главы

В этом разделе

  • Контекстная панель
  • Поля формы
  • Вкладка "Глава"
  • Вкладка "Анонс"
  • Вкладка "Содержание"
    •
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список | Ссылка для перехода на страницу со списком глав учебного курса.
Создать | Ссылка для перехода на страницу создания новой главы. Отображается только на странице редактирования уже существующей главы.
Удалить | Удаление главы, просматриваемой на данной странице. Команда доступна только на странице редактирования уже существующей главы.

    Поля формы

    Вкладка "Глава"

    Поле | Описание
ID | Идентификатор главы. Данное поле отображается только в режиме редактирования существующей главы.
Изменена | Дата и время создания или изменения главы. Данное поле отображается только в режиме редактирования существующей главы.
Родительский раздел | Указывается уровень, в котором находится глава.
*Название | Название главы.
Индекс сортировки | Вес сортировки главы; применяется при выводе главы в списке.
Символическое имя | Мнемоническое имя главы.
    * - Поля, обязательные для заполнения.

    Вкладка "Анонс"

    Поле | Описание
Text / HTML | Выбор формата создания краткого описания главы.
Использовать визуальный редактор | Если эта опция включена, то при условии использования формата HTML, для создания анонса главы будет использоваться визуальный редактор.
Изображение | Данное поле позволяет в краткое описание главы добавить изображение с помощью кнопки Обзор...

    Вкладка "Содержание"

    Поле | Описание
Text / HTML | Выбор формата создания детального описания главы.
Использовать визуальный редактор | Если эта опция включена, то при условии использования формата HTML, для создания детального описания главы будет использоваться визуальный редактор.
Изображение | Данное поле позволяет в детальное описание главы добавить изображение с помощью кнопки Обзор...

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Возврат к списку глав курса.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров главы.
Отменить | Отмена внесённых изменений. Возврат к списку глав курса.


Список уроков

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Уроки

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список уроков

    • На данной странице представлена информация в виде таблицы об уроках курса. Кроме того, для каждого урока указано количество вопросов и к какой главе этот урок относится.

    Фильтр

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

    Поле | Описание
Название | Отбор уроков с определённым названием. Данное поле отображается всегда, его невозможно скрыть.
ID | Идентификатор урока.
Кто создал | Указывается автор урока, либо значение любой, т.е. будут отображены уроки всех авторов.
Глава | Выбирается глава, к которому относится урок, либо значение любая, т.е. будут отображены уроки всех глав.
Активен | Отображение всех уроков или только активных, или только неактивных.

    Для того чтобы отфильтровать уроки по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех уроков нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Добавить урок | Служит для перехода к форме создания нового урока.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список уроков

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора уроков, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного урока отображается меню, позволяющее:
    • Добавить вопрос - создать новый вопрос;
    • Изменить - отредактировать урок;
    • Удалить - удалить урок.
    ID | Идентификатор урока.
    Дата изм. | Дата и время последней модификации урока.
    Название | Название урока.
    Сорт. | Вес сортировки урока; применяется при выводе урока в списке.
    Акт. | Признак активности урока.
    Глава | Название главы, к которой относится урок.
    Вопросы Количество вопросов в данном уроке. При нажатии на число будет осуществлен переход к странице со списком вопросов этого урока.
    Символ "+" служит для перехода к созданию нового вопроса.


Создание и редактирование урока

В этом разделе

  • Контекстная панель
  • Поля формы
  • Вкладка "Урок"
  • Вкладка "Анонс"
  • Вкладка "Содержание"
    •
  • Кнопки управления

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

    Контекстная панель

    Кнопка | Описание
Список | Ссылка для перехода на страницу со списком уроков.
Создать | Ссылка для перехода на страницу создания нового урока. Отображается только на странице редактирования уже существующего урока.
Удалить | Удаление урока, просматриваемого на данной странице. Команда доступна только на странице редактирования уже существующего урока.

    Поля формы

    Вкладка "Урок"

    Поле | Описание
ID | Идентификатор урока. Данное поле отображается только в режиме редактирования существующего урока.
Изменена | Дата и время создания или изменения урока. Данное поле отображается только в режиме редактирования существующего урока.
Запись активна | Признак активности урока. Если это поле отмечено, то урок и его содержимое доступно для показа в публичной части.
Родительский раздел | Указывается глава, в которой будет находиться урок.
*Название | Название урока.
Индекс сортировки | Вес сортировки урока; применяется при выводе урока в списке.
    * - Поля, обязательные для заполнения.

    Вкладка "Анонс"

    Поле | Описание
Text / HTML | Выбор формата создания краткого описания урока.
Использовать визуальный редактор | Если эта опция включена, то при условии использования формата HTML, для создания анонса урока будет использоваться визуальный редактор.
Изображение | Данное поле позволяет в краткое описание урока добавить изображение с помощью кнопки Обзор...

    Вкладка "Содержание"

    Поле | Описание
Text / HTML | Выбор формата создания содержимого урока.
Использовать визуальный редактор | Если эта опция включена, то при условии использования формата HTML, для создания содержимого урока будет использоваться визуальный редактор.
Изображение | Данное поле позволяет в детальное описание урока добавить изображение с помощью кнопки Обзор...

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Возврат к списку уроков.
Применить | Сохранение внесённых изменений. Продолжение редактирования урока.
Отменить | Отмена внесённых изменений. Возврат к списку уроков.


Список вопросов курса

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Вопросы

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список вопросов

    • На данной странице отображается список вопросов для выбранного учебного курса.

    Фильтр

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

    Поле | Описание
Название | Отбор вопросов с определённым названием. Данное поле отображается всегда, его невозможно скрыть.
Урок | Указывается урок, к которому относится вопрос, либо выбирается значение любой для отображения вопросов всех уроков.
Для самопроверки | Отображение всех вопросов или только вопросов для самопроверки, или только вопросов не для самопроверки.
Активен | Отображение всех вопросов или только активных, или только неактивных.

    Для того чтобы отфильтровать вопросы по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех вопросов нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Добавить вопрос | Служит для перехода к форме создания нового вопроса.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список вопросов

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора вопросов, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного вопроса отображается меню, позволяющее:
    • Изменить - отредактировать вопрос;
    • Удалить - удалить вопрос.
    ID | Идентификатор вопроса.
    Акт. | Признак активности вопроса.
    Дата изм. | Дата и время последней модификации вопроса.
    Название | Текст самого вопроса.
    Сорт. | Вес сортировки вопроса; применяется при выводе вопроса.
    Самопров. | Признак принадлежности вопроса: для самопроверки или не для самопроверки.
    Тип | Указывается тип вопроса: одиночный или множественный выбор выриантов ответа.


Создание и редактирование вопроса

В этом разделе

  • Контекстная панель
  • Поля формы
  • Вкладка "Вопрос"
  • Вкладка "Ответы"
  • Вкладка "Описание"
    •
  • Кнопки управления

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

    Контекстная панель

    Кнопка | Описание
Список | Ссылка для перехода на страницу со списком вопросов.
Создать | Ссылка для перехода на страницу создания нового вопроса. Отображается только на странице редактирования уже существующего вопроса.
Удалить | Удаление вопроса, просматриваемого на данной странице. Команда доступна только на странице редактирования уже существующего вопроса.

    Поля формы

    Вкладка "Вопрос"

    Поле | Описание
ID | Идентификатор вопроса. Данное поле отображается только в режиме редактирования существующего вопроса.
Изменена | Дата и время создания или изменения вопроса. Данное поле отображается только в режиме редактирования существующего вопроса.
Запись активна | Признак активности вопроса. Если это поле отмечено, то вопрос доступен для показа в публичной части.
*Вопрос | Текст самого вопроса.
Индекс сортировки | Вес сортировки вопроса; применяется при выводе вопроса.
Балл | Количество баллов, которые зачисляются пользователю в случае верного ответа на данный вопрос.
Для самопроверки | Признак принадлежности вопроса: для самопроверки или нет.
Изображение | К тексту вопроса можно добавить изображение с помощью кнопки Обзор...
    * - Поля, обязательные для заполнения.

    Вкладка "Ответы"

    На этой вкладке задаются варианты ответов на вопрос.

    Поле | Описание
ID | Идентификатор вопроса. Это поле заполнено только в режиме редактирования вопроса.
Прав. | С помощью данного поля необходимо отметить один или несколько верных вариантов ответа в зависимости от типа вопроса.
Ответ | Текст ответа на вопрос.
Сорт. | Вес сортировки вопроса.
Удал. | Удаление вариантов ответа возможно только в режиме редактирования. Для этого необходимо отметить флаг тот вариант ответа, который вы хотите удалить.

    Вкладка "Описание"

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

    Поле | Описание
Text / HTML | Выбор формата создания описания вопроса.
Использовать визуальный редактор | Если эта опция включена, то при условии использования формата HTML, для создания описания вопроса будет использоваться визуальный редактор.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Возврат к списку вопросов.
Применить | Сохранение внесённых изменений. Продолжение редактирования вопроса.
Отменить | Отмена внесённых изменений. Возврат к списку вопросов.


Список тестов курса

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Тесты

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список тестов

    • На данной странице представлена информация в виде таблицы о тестах курса.

    Фильтр

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

    Поле | Описание
Название | Отбор тестов с определённым названием. Данное поле отображается всегда, его невозможно скрыть.
Активен | Отображение всех тестов или только активных, или только неактивных.

    Для того чтобы отфильтровать тесты по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех тестов нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Добавить тест | Служит для перехода к форме создания нового теста.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

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

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора тестов, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного теста отображается меню, позволяющее:
    • Изменить - отредактировать тест;
    • Удалить - удалить тест.
    ID | Идентификатор теста.
    Дата изм. | Дата и время последней модификации теста.
    Название | Название теста.
    Сорт. | Вес сортировки теста; применяется при выводе теста в списке.
    Акт. | Признак активности теста.


Создание и редактирование теста

В этом разделе

  • Контекстная панель
  • Поля формы
  • Вкладка "Тест"
  • Вкладка "Описание"
    •
  • Кнопки управления

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

    Контекстная панель

    Кнопка | Описание
Список | Ссылка для перехода на страницу со списком тестов.
Создать | Ссылка для перехода на страницу создания нового теста. Отображается только на странице редактирования уже существующего теста.
Удалить | Удаление теста, просматриваемого на данной странице. Команда доступна только на странице редактирования уже существующего теста.

    Поля формы

    Вкладка "Тест"

    Поле | Описание
    ID Идентификатор теста.

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

    Данное поле отображается только в режиме редактирования существующего теста.
    Запись активна | Признак активности теста. Если это поле отмечено, то тест и его содержимое доступно для показа в публичной части.
    *Название | Название теста.
    Индекс сортировки | Вес сортировки теста; применяется при выводе теста в списке.
    В тесте участвуют С помощью данного поля определяется количество вопросов, участвующих в тесте:
    • все вопросы курса;
    • либо указанное количество вопросов со всего курса;
    • либо указанное количество вопросов из каждой главы;
    • или же указанное количество вопросов из каждого урока.
    Включать вопросы для самопроверки | При отмеченной опции в тест будут включены вопросы для самопроверки.
    Случайный порядок вопросов | Если данная опция отмечена, то в тесте вопросы будут выводиться в случайном порядке.
    Случайный порядок ответов | При отмеченной опции предлагаемые варианты ответов на вопрос будут выводиться в случайном порядке.
    Количество попыток | Указанное число определяет количество попыток прохождения теста. Если указано "0" или строка пуста, то количество попыток неограничено.
    Ограничение времени | Задается количество минут для прохождения теста. Если указано "0" или строка пуста, то прохождение теста во времени не ограничено.
    Автоматическая проверка результатов | Если данная опция отмечена, то результаты тестирования будут проверены автоматически.
    Для прохождения теста необходимо правильно ответить на | Задается процент вопросов, на которые необходимо правильно ответить для прохождения теста.
    Тип прохождения теста Выбирается один из трех возможных типов прохождения теста:
    • Запретить переход к следующему вопросу без ответа на текущий вопрос, пользователь не может изменять свои ответы.
    • Разрешить переход к следующему вопросу без ответа на текущий вопрос, пользователь не может изменять свои ответы.
    • Разрешить переход к следующему вопросу без ответа на текущий вопрос, пользователь может изменять свои ответы.
    * - Поля, обязательные для заполнения.

    Вкладка "Описание"

    Поле | Описание
Text / HTML | Выбор формата создания описания теста.
Использовать визуальный редактор | Если эта опция включена, то при условии использования формата HTML, для создания описания теста будет использоваться визуальный редактор.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Возврат к списку тестов.
Применить | Сохранение внесённых изменений. Продолжение редактирования теста.
Отменить | Отмена внесённых изменений. Возврат к списку тестов.


Результаты теста

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список результатов

    • На данной странице представлено подробное описание результатов прохождения определённого теста некоторым учащимся.

    Фильтр

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

    Поле | Описание
Вопрос | Отбор результатов с определённым текстом вопроса. Данное поле отображается всегда, его невозможно скрыть.
ID | Идентификатор результата ответа на вопрос.
Отвечен | Отображение всех результатов ответов на вопросы или только тех результатов, для которых был дан ответ на вопрос, либо только тех результатов, для которых не был дан ответ на вопрос.
Верно отвечен | Отображение всех результатов ответов на вопросы или только положительных результатов (ответ верен), или только отрицательных (ответ неверен).

    Для того чтобы отфильтровать результаты ответов по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех результатов нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список результатов

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора результатов, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного результата отображается меню, позволяющее:
    • Изменить - осуществляется переход на страницу редактирования результата;
    • Удалить - удалить результат.
    ID | Идентификатор результата.
    Вопрос | Текст вопроса.
    Отвечен | Отметка о том, был ли дан ответ на вопрос.
    Верно отвечен | Признак правильности ответа на вопрос.
    Баллов | Количество баллов, заработанных при ответе на вопрос.


Редактирование результата

В этом разделе

  • Вкладка "Ответ"
  • Кнопки управления

    • Вкладка "Ответ"

    Поле | Описание
Учащийся | Логин, имя и фамилия пользователя.
Отвечен | Опция определяет дан ответ на вопрос или нет.
Правильно отвечен | Опция определяет верный дан ответ на вопрос или нет.
Баллов | Количество баллов за ответ на вопрос.
Вопрос | Текст вопроса.
Ответ | Ответ, предложенный учащимся на вопрос теста.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Возврат к списку результатов ответа на вопросы теста.
Применить | Сохранение внесённых изменений. Продолжение редактирования результата.
Отменить | Отмена внесённых изменений. Возврат к списку результатов ответа на вопросы теста.


Сертификация

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список сертификатов

    • На странице Сертификация представлена информация о пользователях, получивших сертификаты. Сертификат выдается пользователю только после того, как он успешно пройдет тестирование.

    Фильтр

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

    Поле | Описание
Учащийся | Отбор сертификатов, выданных указанному учащемуся. Данное поле отображается всегда, его невозможно скрыть.
ID | Идентификатор сертификата.
Курс | Выбирается курс, по которому выданы сертификаты. Если указано значение любой, то отображаются сертификаты по всем курсам.
Активен | Отображение всех сертификатов или только активных, или только неактивных.
Баллов | Указывается интервал количества баллов, которые заработали учащиеся. Если какое-то из полей оставлено пустым (или оба), то граница считается неограниченной.
Сертифицировался Online | Отображение всех сертификатов или только тех, которые получили пользователи Onine, либо только тех, которые получили пользователи Offline.

    Для того чтобы отфильтровать сертификаты по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех сертификатов нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список сертификатов

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора сертификатов, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного сертификата отображается меню, позволяющее:
    • Удалить - удалить сертификат.
    ID | Идентификатор сертификата.
    Дата изм. | Дата и время получения сертификата.
    Курс | Название курса, по которому получен данный сертификат.
    Учащийся | Указывается идентификатор, логин, имя и фамилия пользователя.
    Баллов | Количество баллов, которые заработал учащийся во время прохождения тестирования.
    Макс. баллов | Максимальное количество баллов, которое можно заработать во время прохождения теста.
    Акт. | Признак активности сертификата.
    Сорт. Вес сортировки сертификата, он равен весу сортировка курса, за который получен данный сертификат.
    Вес определяет положение сертификата в списке, чем меньше вес, тем выше в списке располагается сертификат.
    Online | Отметка о том, что учащийся сертифицировался Online или нет.


Журнал

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список результатов обучения

    • На данной странице представлена информация о результатах обучения пользователей.

    Фильтр

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

    Поле | Описание
Учащийся | Отбор результатов прохождения тестов указанного учащегося. Данное поле отображается всегда, его невозможно скрыть.
ID | Идентификатор результата.
Тест | Выбирается тест, по которому имеются результаты о его прохождении. Если указано значение любой, то отображаются результаты по всем тестам.
Пройден | Отображение всех результатов или только результатов по успешному прохождению тестов, или только результатов по неудачно пройденным тестам.
Баллов | Указывается интервал количества баллов, которые заработали учащиеся в ходе прохождения тестирования. Если какое-то из полей оставлено пустым (или оба), то граница считается неограниченной.

    Для того чтобы отфильтровать результаты по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех результатов нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список результатов обучения

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора результатов, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного результата отображается меню, позволяющее:
    • Удалить - удалить результат.
    ID | Идентификатор результата.
    Тест | Название теста, по которому получен данный результат.
    Учащийся | Указывается идентификатор, логин, имя и фамилия пользователя.
    Баллов | Количество баллов, которые заработал учащийся во время прохождения тестирования.
    Макс. баллов | Максимальное количество баллов, которое можно заработать во время прохождения теста.
    Попыток | Количество попыток прохождения теста.
    Пройден | Указывается удачно пройден тест или нет.


Список попыток

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список попыток

    • На данной странице представлена информация о попытках прохождения учащимися тестирования.

    Фильтр

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

    Поле | Описание
Учащийся | Отбор попыток прохождения тестов указанного учащегося. Данное поле отображается всегда, его невозможно скрыть.
ID | Идентификатор попытки.
Тест | Выбирается тест, по которому необходимо отобразить попытки о его прохождении. Если указано значение любой, то отображаются попытки по всем тестам.
Дата начала | Указывается период начала тестирования. Если какое-то из полей оставлено пустым (или оба), то временная граница считается неограниченной.
Дата конца | Указывается период окончания тестирования. Если какое-то из полей оставлено пустым (или оба), то временная граница считается неограниченной.
Тест пройден | Отображение всех попыток или только успешных попыток, или только неудачных попыток.
Статус | Выбирается один или несколько статусов попытки прохождения тестирования.
Баллов | Указывается интервал количества баллов, которые заработали учащиеся в ходе прохождения тестирования. Если какое-то из полей оставлено пустым (или оба), то граница считается неограниченной.

    Для того чтобы отфильтровать попытки по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех попыток нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список попыток

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора попыток, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретной попытки отображается меню, состоящее из пунктов:
    • Результаты - переход к форме с подробным описанием результатов прохождения теста этой попытки;
    • Удалить - удалить попытку.
    ID | Идентификатор попытки.
    Учащийся | Указывается идентификатор, логин, имя и фамилия пользователя.
    Тест | Название теста, который учащийся пытается пройти или уже прошел.
    Дата начала | Дата и время начала тестирования.
    Дата конца | Дата и время окончания тестирования. Если тестирование ещё не закончено, то данное поле пусто.
    Статус | Статус, в котором находится процесс тестирования.
    Вопросов | Количество вопросов в тесте.
    Тест пройден | Указывается удачно пройден тест или нет.
    Баллов | Количество баллов, которые заработал учащийся во время прохождения тестирования.
    Макс. баллов | Максимальное количество баллов, которое можно заработать во время прохождения теста.


Экспорт курса

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

Вкладка "Курс" - 1 шаг

Эта вкладка служит для выбора курса на экспорт.

Поле | Описание
Курсы | Из списка выбирается курс, который необходимо выгрузить.

Для перехода к следующему шагу нажмите кнопку Далее >>.

Вкладка "Параметры экспорта" - 2 шаг

Поле | Описание
Имя файла данных | Указывается имя файла данных относительно корня сайта. Сохраняемый файл должен быть следующего формата: <имя_файла>.tar.gz Если такой файл существует, то он будет перезаписан.
Для перехода к следующему шагу нажмите Начать выгрузку>>, а для возврата на первый шаг - кнопку <<Назад.

Вкладка "Результат" - 3 шаг

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

Если вам необходимо выгрузить ещё один курс, то для этого воспользуйтесь кнопкой <<Вернуться на первый шаг, при нажатии на которую будет открыта вкладка "Курс".


Импорт курса

Форма, размещённая на данной странице, служит для загрузки учебного курса к вам на сайт.

Вкладка "Файл данных " - 1 шаг

Поле | Описание
*Файл данных | С помощью кнопки Открыть в данном поле указывается имя и путь к загружаемому файлу данных.
*Сайт | Указываются сайты, на которые необходимо загрузить учебный курс.
* - Поля, обязательные для заполнения.

Для загрузки курса нажмите кнопку Загрузить данные >>, после чего будет осуществлен переход на вкладку "Результат".

Вкладка "Результат" - 2 шаг

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

Если вам необходимо загрузить ещё один курс, то для этого воспользуйтесь кнопкой <<Назад, при нажатии на которую будет открыта вкладка "Файл данных".


Настройки модуля обучение

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Обучение: настройки модуля

Данная форма (Настройки -> Настройки продукта -> Настройки модулей -> Обучение) предназначена для задания общесистемных параметров модуля обучения.

Вкладка "Настройки"

Наименование параметра | Описание
Использовать визуальный редактор | При установленном флаге для создания/редактирования параметров курсов, глав, уроков, вопросов и тестов возможно использование визуального редактора.
Количество курсов выводимых в меню | Количество курсов, выводимых в дереве-меню. Если количество курсов на сайте больше, чем указанное число, то для просмотра всего списка нужно воспользоваться пунктом меню Прочие.


Учебный курс (комплексный компонент)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Комплексный компонент "Учебный курс"

С помощью данного комплексного компонента осуществляется полноценный вывод учебного курса. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.course","",Array(
     "SEF_MODE" => "Y",
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "CHECK_PERMISSIONS" => "Y",
     "PAGE_WINDOW" => "10",
     "SHOW_TIME_LIMIT" => "Y",
     "PAGE_NUMBER_VARIABLE" => "PAGE",
     "TESTS_PER_PAGE" => "20",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600",
     "SEF_FOLDER" => "/examples/",
     "SEF_URL_TEMPLATES" => Array(
         "course.detail" => "course#COURSE_ID#/index",
         "lesson.detail" => "course#COURSE_ID#/lesson#LESSON_ID#/",
         "chapter.detail" => "course#COURSE_ID#/chapter#CHAPTER_ID#/",
         "test.self" => "course#COURSE_ID#/selftest#SELF_TEST_ID#/",
         "test" => "course#COURSE_ID#/test#TEST_ID#/",
         "test.list" => "course#COURSE_ID#/examination/",
         "course.contents" => "course#COURSE_ID#/contents/",
         "gradebook" => "course#COURSE_ID#/gradebook/"
         ),
     "VARIABLE_ALIASES" => Array(
         "course.detail" => Array(),
         "lesson.detail" => Array(),
         "chapter.detail" => Array(),
         "test.self" => Array(),
         "test" => Array(),
         "test.list" => Array(),
         "course.contents" => Array(),
         "gradebook" => Array(),
         )
     )
);?>

Описание параметров

Основные параметры
COURSE_ID
Идентификатор курса.
Управление адресами страниц
SEF_MODE
[Y/N] При установленном флаге включается поддержка ЧПУ и становятся доступными поля настройки адресов ЧПУ.
SEF_FOLDER
Каталог ЧПУ: путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Указываются адреса следующих страниц:
  • course.detail - главная страница курса;
  • lesson.detail - страница урока курса;
  • chapter.detail - страница главы курса;
  • test.self - страница теста для самопроверки;
  • test - страница с тестом;
  • test.list - страница списка тестов;
  • course.contents - страница со всеми материалами курса;
  • gradebook - страница журнала курса.
VARIABLE_ALIASES
Имена переменных для управления страницами курса.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ к курсу.
SET_TITLE
[Y/N] При отмеченной опции на каждой странице будет установлен заголовок в соответствии с ее содержимым.
Настройки списка тестов
TESTS_PER_PAGE
Количество тестов, отображаемых на странице. Остальные будут выведены с помощью постраничной навигации.
Настройки теста
PAGE_WINDOW
Количество вопросов, отображаемых в навигационной цепочке.
SHOW_TIME_LIMIT
[Y/N] При отмеченной опции будет отображаться счетчик времени.

Примечание: если в настройках теста ограничение по времени не установлено, то счетчик не будет отображаться в любом случае.
PAGE_NUMBER_VARIABLE
Имя переменной для идентификатора вопроса теста.


Все материалы курса

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Все материалы курса"

Данный компонент выводит все материалы курса на одной странице. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.course.contents","",Array(
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "CHECK_PERMISSIONS" => "Y",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
COURSE_ID
Идентификатор курса.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ к курсу.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено название курса.


Дерево курса

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Дерево курса"

Данный компонент выводит иерархию глав и уроков. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.course.tree","",Array(
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "COURSE_DETAIL_TEMPLATE" => "course/index.php?COURSE_ID=#COURSE_ID#",
     "CHAPTER_DETAIL_TEMPLATE" => "chapter.php?CHAPTER_ID=#CHAPTER_ID#",
     "LESSON_DETAIL_TEMPLATE" => "lesson.php?LESSON_ID=#LESSON_ID#",
     "SELF_TEST_TEMPLATE" => "self.php?LESSON_ID=#LESSON_ID#",
     "TESTS_LIST_TEMPLATE" => "course/test_list.php?COURSE_ID=#COURSE_ID#",
     "TEST_DETAIL_TEMPLATE" => "course/test.php?COURSE_ID=#COURSE_ID#&TEST_ID=#TEST_ID",
     "CHECK_PERMISSIONS" => "Y",
     "SET_TITLE" => "Y"
     )
);?>
Основные параметры
COURSE_ID
Идентификатор курса.
Шаблоны ссылок
COURSE_DETAIL_TEMPLATE
Путь к странице с детальным просмотром курса.
CHAPTER_DETAIL_TEMPLATE
Путь к странице главы курса.
LESSON_DETAIL_TEMPLATE
Путь к странице урока курса.
SELF_TEST_TEMPLATE
Путь к странице с тестом для самопроверки.
TESTS_LIST_TEMPLATE
Путь к странице списка тестов курса.
TEST_DETAIL_TEMPLATE
Путь к странице прохождения теста.
Дополнительные настройки
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ к курсу.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено название главы курса.


Детальный вывод курса

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Детальный вывод курса"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.course.contents","",Array(
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "CHECK_PERMISSIONS" => "Y",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
COURSE_ID
Идентификатор курса.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ к курсу.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено название курса.


Список курсов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список курсов"

Данный компонент выводит список курсов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.course.list","",Array(
     "SORBY" => "SORT",
     "SORORDER" => "ASC",
     "COURSE_DETAIL_TEMPLATE" => "course/index.php?COURSE_ID=#COURSE_ID#&INDEX=Y",
     "CHECK_PERMISSIONS" => "Y",
     "COURSES_PER_PAGE" => "20",
     "SET_TITLE" => "Y"
     )
);?>
Шаблоны ссылок
COURSE_DETAIL_TEMPLATE
Путь к странице с детальным просмотром курса.
Дополнительные настройки
SORBY
Поле, по которому будет происходить сортировка курсов на странице:
  • ID - идентификатор курса;
  • NAME - название;
  • ACTIVE_FROM - дата начала активности;
  • SORT - индекс сортировки;
  • TIMESTAMP_X - дата последнего изменения.
SORORDER
Направление сортировки курсов:
  • ASC - сортировка по возрастанию;
  • DESC - сортировка по убыванию.
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ к курсу.
COURSES_PER_PAGE
Количество курсов, выводимых на странице. Остальные будут выведены с помощью постраничной навигации.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Список курсов.


Журнал студента

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Журнал студента"

С помощью данного компонента отображаются результаты прохождения тестов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.student.gradebook","",	Array(
     "TEST_DETAIL_TEMPLATE" => "course/index.php?COURSE_ID=#COURSE_ID#&TEST_ID=#TEST_ID#",
     "COURSE_DETAIL_TEMPLATE" => "course/index.php?COURSE_ID=#COURSE_ID#&INDEX=Y",
     "TEST_ID_VARIABLE" => "TEST_ID",
     "SET_TITLE" => "Y"
     )
);?>
Шаблоны ссылок
TEST_DETAIL_TEMPLATE
Путь к странице прохождения теста.
COURSE_DETAIL_TEMPLATE
Путь к странице с детальным просмотром курса.
Дополнительные настройки
TEST_ID_VARIABLE
Имя переменной, которой передается ID теста.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Результаты тестирования.


Отчет по курсам

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Отчет по курсам"

С помощью данного компонента выводится список пройденных и неудачно пройденных курсов текущего пользователя. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.student.certificates","",Array(
     "COURSE_DETAIL_TEMPLATE" => "course/index.php?COURSE_ID=#COURSE_ID#&INDEX=Y",
     "TESTS_LIST_TEMPLATE" => "course/index.php?COURSE_ID=#COURSE_ID#&TEST_LIST=Y",
     "SET_TITLE" => "Y"
     )
);?>
Шаблоны ссылок
COURSE_DETAIL_TEMPLATE
Путь к странице с детальным просмотром курса.
TESTS_LIST_TEMPLATE
Путь к странице списка тестов курса.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Отчет по курсам.


Профиль студента

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Профиль студента"

С помощью данного компонента отображаются результаты прохождения тестов. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.student.profile","",Array(
     "TRANSCRIPT_DETAIL_TEMPLATE" => "certification/?TRANSCRIPT_ID=#TRANSCRIPT_ID#",
     "SET_TITLE" => "Y"
     )
);?>
Шаблоны ссылок
TRANSCRIPT_DETAIL_TEMPLATE
Путь к странице с результатами сертификации.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Анкета специалиста.


Резюме студента

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Резюме студента"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.student.transcript","",Array(
     "TRANSCRIPT_ID" => $_REQUEST["TRANSCRIPT_ID"],
     "SET_TITLE" => "Y"
     )
);?>
Основные параметры
TRANSCRIPT_ID
Идентификатор резюме.
Дополнительные настройки
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено имя пользователя.


Контрольный тест

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Контрольный тест"

С помощью данного компонента отображается контрольный тест курса. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.test","",Array(
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "TEST_ID" => $_REQUEST["TEST_ID"],
     "PAGE_NUMBER_VARIABLE" => "PAGE",
     "GRADEBOOK_TEMPLATE" => "../gradebook.php?TEST_ID=#TEST_ID#",
     "PAGE_WINDOW" => "10",
     "SHOW_TIME_LIMIT" => "Y",
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Основные параметры
COURSE_ID
Идентификатор курса.
TEST_ID
Идентификатор теста.
Шаблоны ссылок
GRADEBOOK_TEMPLATE
Путь к странице с результатами тестирования (путь к журналу).
Дополнительные настройки
PAGE_NUMBER_VARIABLE
Имя переменной для идентификатора вопроса теста.
PAGE_WINDOW
Количество вопросов, отображаемых в навигационной цепочке.
SHOW_TIME_LIMIT
[Y/N] При отмеченной опции будет отображаться счетчик времени.

Примечание: если в настройках теста ограничение по времени не установлено, то счетчик не будет отображаться в любом случае.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено имя пользователя.


Самопроверка

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Самопроверка"

С помощью данного компонента отображается тест для самопроверки. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.test.self","",Array(
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "LESSON_ID" => $_REQUEST["LESSON_ID"],
     "CHECK_PERMISSIONS" => "Y",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
COURSE_ID
Идентификатор курса.
LESSON_ID
Идентификатор урока.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено название урока.


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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список тестов"

Данный компонент выводит список активных тестов курса. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.test.list","",Array(
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "TEST_DETAIL_TEMPLATE" => "test.php?COURSE_ID=#COURSE_ID#&TEST_ID=#TEST_ID#",
     "CHECK_PERMISSIONS" => "Y",
     "TESTS_PER_PAGE" => "20",
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Основные параметры
COURSE_ID
Идентификатор курса.
Шаблоны ссылок
TEST_DETAIL_TEMPLATE
Путь к странице прохождения теста.
Дополнительные настройки
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ к курсу.
TESTS_PER_PAGE
Количество тестов, выводимых на странице. Остальные будут выведены с помощью постраничной навигации.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено Список тестов.


Детальный вывод главы

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Детальный вывод главы"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.chapter.detail","",Array(
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "CHAPTER_ID" => $_REQUEST["CHAPTER_ID"],
     "CHAPTER_DETAIL_TEMPLATE" => "chapter.php?CHAPTER_ID=#CHAPTER_ID#",
     "LESSON_DETAIL_TEMPLATE" => "lesson.php?LESSON_ID=#LESSON_ID#",
     "CHECK_PERMISSIONS" => "Y",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
COURSE_ID
Идентификатор курса.
CHAPTER_ID
Идентификатор главы.
Шаблоны ссылок
CHAPTER_DETAIL_TEMPLATE
Путь к странице с главой курса.
LESSON_DETAIL_TEMPLATE
Путь к странице с уроком курса.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено название главы.


Детальный вывод урока

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Детальный вывод урока"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:learning.lesson.detail","",Array(
     "COURSE_ID" => $_REQUEST["COURSE_ID"],
     "LESSON_ID" => $_REQUEST["LESSON_ID"],
     "SELF_TEST_TEMPLATE" => "self.php?COURSE_ID=#COURSE_ID#&LESSON_ID=#LESSON_ID#",
     "CHECK_PERMISSIONS" => "Y",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Основные параметры
COURSE_ID
Идентификатор курса.
LESSON_ID
Идентификатор урока.
Шаблоны ссылок
SELF_TEST_TEMPLATE
Путь к странице с тестом для самопроверки.
Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
CHECK_PERMISSIONS
[Y/N] При выборе значения "Y" будет проверяться право на доступ.
SET_TITLE
[Y/N] При отмеченной опции в качестве заголовка страницы будет установлено название урока.


Почтовый модуль

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

  • посетители, клиенты;
  • контрагенты, поставщики товаров;
  • сотрудники компании, ответственные за информационное наполнение сайта;
  • другие группы респондентов.

Вы можете, как и прежде, использовать ваше программное обеспечение для чтения электронной почты (E-mail клиент), например, The Bat, Outlook, Eudora или любой другой. Однако, система 1С-Битрикс: Управление сайтом предлагает альтернативный подход к управлению вашими почтовыми сообщениями, причем предлагаемое решение не исключает возможности чтения почтовых сообщений привычными вам средствами. Применение почтового модуля дает вам такие преимущества в управлении почтовыми сообщениями, как:

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


Письма

В этом разделе

  • Фильтр
  • Список сообщений
  • Как проверить наличие новых сообщений
  • Как удалить сообщения или применить другие правила и действия к сообщениям

    • Форма Письма отображает сообщения, полученные с существующих (добавленных вами) почтовых ящиков. Пользуясь этой формой, вы можете:

    • в форме наглядной таблицы просматривать информацию о полученных сообщениях;
    • полученные сообщения;
    • применять правила и действия к сообщениям (например, удалять сообщения, помечать сообщения как спам и пр.)

    Форма Письма содержит две основные области: фильтр и список сообщений, а также вспомогательные области Получить почту и Обработка писем.

    Фильтр

    Фильтр используется для задания параметров отбора сообщений, отображаемых в списке. Для этого фильтр предоставляет набор параметров поиска сообщений, таких как:

    • почтовый ящик;
    • отправитель и получатель;
    • другие критерии.

    Нижеследующая таблица описывает поля фильтра.

    Поле | Описание
Везде | Слова и фразы, которые могут встречаться в любом поле искомого сообщения. Данное поле отображается всегда, его невозможно скрыть.
ID | Идентификатор искомого сообщения.
Почтовый ящик | Название почтового ящика, с которого были получены искомые сообщения.
Помеченные как спам | Означает отбор всех сообщений, или только помеченных или не помеченных как спам.
Прочитанные сообщения | Означает отбор всех сообщений, или только прочитанных или не прочитанных.
От кого | Отправитель искомого сообщения.
Кому | Получатель искомого сообщения.
Тема | Тема искомого сообщения.
Текст | Слова и фразы, которые могут содержаться в тексте (т.н. "теле") сообщения.

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

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Поле Получить почту позволяет проверить наличие новых сообщений.

    Список сообщений

    Колонка | Описание
Колонка флажков | Поле предназначено для выбора сообщений, к которым предполагается применить какое-либо правило или действие. Возможные правила и действия содержатся в области Обработка писем.
Тема | Тема полученного сообщения.
От кого | Отправитель сообщения. В качестве отправителя отображается имя отправителя, которое назначил себе сам отправитель.
Дата | Дата получения сообщения.
Ящик | Название почтового ящика, с которого получено данное сообщение.
Размер | Размер сообщения в байтах.
СПАМ коэф. | Относительный показатель принадлежности сообщения к спаму (сообщения массовой несанкционированной рассылки).
Влож. | Количество вложений в данном сообщении. Примечание Сообщения, отправленные в формате HTML, всегда имеют хотя бы одно вложение - само сообщение в формате HTML.
Выбрано | Количество сообщений, выбранных из базы данных.
Отмечено | Количество сообщений, помеченных флажками в соответствующей колонке.

    Примечание
    Таблица может быть отсортирована по любому полю путём нажатия на заголовок требуемой колонки.

    Как проверить наличие новых сообщений

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

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

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

    Как удалить сообщения или применить другие правила и действия к сообщениям

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

    1. Отметьте требуемые сообщения, обозначив их в Колонке флажков. Для того чтобы выделить все сообщения, поставьте флажок в заголовке таблицы.
    2. В мини-форме Обработка писем укажите, следует ли применять правило ко всем ли сообщениям или только к выделенным.
    3. Там же выберите требуемое действие, например, Удалить или Пометить как спам.
    4. Нажмите кнопку ОК.


Просмотр сообщения

Форма просмотра сообщения служит для отображения текста и свойств выбранного сообщения. Ниже описываются поля формы.

Форма просмотра сообщения (вкладка "Сообщение")

Поле | Описание
Дата | Дата получения сообщения.
От кого | Отправитель сообщения.
Кому | Получатель сообщения.
Тема | Тема сообщения.
Прикрепленные файлы | Файлы, прикрепленные к сообщению (вложения).
Статус сообщения Мнемонический статус сообщения и индекс вероятности спама данного сообщения.

- у сообщения нет статуса;
- сообщение прочитано и не является спамом;
- сообщение прочитано и является спамом;
- сообщение не было прочитано, нет статуса;
- сообщение не было прочитано, не является спамом;
- сообщение не было прочитано, спам.

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

Журнал обработки письма

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


Журнал обработки почты

В этом разделе

  • Фильтр
  • Журнал

    • Форма Журнал обработки почты отображает все события, связанные с функционированием модуля почты и получением сообщений:

    • запросы системы к почтовому серверу;
    • ответы почтового сервера;
    • применение правил и действий.

    Форма Журнал обработки почты содержит две основные области: фильтр и журнал.

    Фильтр

    Фильтр используется для задания параметров отбора событий, отображаемых в журнале.

    Нижеследующая таблица описывает поля фильтра.

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

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

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Журнал

    Поле | Описание
Время | Время, в которое произошло описываемое событие.
Текст | Описание события. Запросы к серверу выделены зеленым цветом. Ответы от сервера выделены синим цветом. Описание ошибок отображается текстом красного цвета.
Ящик | Почтовый ящик, по отношению к которому произошло описываемое событие.
Правило (зависит от настроек фильтра) | Правило, примененное к сообщению.
Письмо (зависит от настроек фильтра) | Краткое содержание письма.


Правила обработки почты

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список правил
    Как добавить правило
  • Как изменить параметры правила

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

    Фильтр

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

    Поле | Описание
Название | Отбор правил с определённым названием.
ID | Идентификатор искомого правила.
Почтовый ящик | Название почтового ящика, правила исключительно для которого следует отобразить.
Активность | Отображает все правила, или только активные или не активные.

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

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления нового правила обработки почты. В открывшемся меню выберите, какой тип правила следует добавить.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

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

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора правил, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретного правила, отображает меню, позволяющее:
    • Изменить - отредактировать правило;
    • Журнал - просмотреть журнал работы почтовой системы по этому правилу;
    • Удалить - удалить правило.
    ID | Идентификатор правила.
    Дата изм. | Дата и время последней модификации правила.
    Название | Название правила и список действие, осуществляемых правилом.
    Акт. | Признак активности правила.
    Сорт. | Вес сортировки правила; применяется при выводе правила в списках.
    Ящик. | Название почтового ящика, к которому применяется это правило.

    Как добавить правило

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

    • ручная настройка - все параметры правила изменяемы и доступны для изменения и настройки;
    • добавление сообщения в техподдержку - специализированный шаблон для облегчения создания правила для фильтрации сообщений, адресованных в службу технической поддержки.

    В открывшейся форме Новое правило установите параметры правила и сохраните его.

    Как изменить параметры правила

    Для изменения параметров правила дважды кликните строку требуемого правила в списке правил.


Новое правило

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Новое правило (изменение параметров правила)

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

Форма параметров правила

Вкладка "Параметры"

Поле | Описание
Код Код правила, под которым оно было сохранено.

Отображается при редактировании существующего правила.
Последнее изменение Дата и время последнего изменения правила.

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

См. тж. поле Применять при событиях.
* Название | Любое осмысленное название данного правила.
Описание | Произвольное описание правила.
Сортировка | Вес сортировки правила; применяется при отображении правила в списке.
Применять при событиях Типы событий, при которых следует применять это правило:
  • При получении почты - если флаг установлен, правило будет применяться к каждому сообщению при получении почты с почтового ящика, для которого создано это правило. Если флаг сброшен, правило не будет автоматически применяться при получении почты;
  • При принудительном вызове правила - если флаг установлен, правило можно будет применить в ручном режиме.
* - Поля, обязательные для заполнения.

Вкладка "Условия"

Поле | Описание
Группы полей для задания условий | Эти группы полей позволяют создавать условия, которые определяют, может ли правило быть применено к сообщениям или нет, т.е. эти поля задают условия предварительной фильтрации сообщений перед тем как к ним будет применено данное правило. Для получения подробной информации по полям группы см. примечания ниже.
Вероятность, что сообщение спам | Указывает, что правило будет применяться только к сообщениям, параметр которых СПАМ коэф. удовлетворяет этому условию; т.е. больше или меньше уровня, задаваемого в процентах. Например, если выставить данное условие в "больше 90%", то правило будет применяться только к тем сообщениям, вероятность спама которых превышает 90%.
Размер сообщения | Указывает, что правило будет применяться только к сообщениям, размер которых удовлетворяет этому условию.
Условие на PHP скрипте | Опциональный PHP скрипт, который исполняется во время определения возможности применения правила к сообщению. PHP скрипт должен определить допустимость применения правила к сообщению и вернуть значение true или false. Для получения подробной информации об этом поле см. примечания ниже.
Настройки добавления сообщения в техподдержку Эта группа настроек отображается только при создании правила с шаблоном "Добавление сообщения в техподдержку"
Определять по E-Mail ранее зарегистрированного пользователя | Если это условие установлено в да..., то при получении нового сообщения правило будет предпринимать попытки найти зарегистрированного пользователя с таким адресом в базе данных и привязать сообщение к нему. В противном случае, при получении писем с любых адресов сообщения в модуле техподдержки будут создаваться как анонимные.
Добавлять новое сообщение в уже открытое обращение | Это условие определяет, сообщения с какого адреса могут быть добавлены в открытое обращение в техподдержку. При установке флага как скрытое... сообщение будет доступно только сотрудникам техподдержки.
Шаблоны темы для определения ответа на обращение | Регулярные выражения, применяемые для сортировки входящих сообщений. Данное поле предназначено для разработчиков; не рекомендуется изменять его значение без надобности.
Привязывать новое обращение к сайту | Позволяет указать сайт, к которому будет привязано вновь создаваемое обращение.
Привязывать новое обращение к категории | Позволяет указать категорию обращения, к которой будет привязано вновь создаваемое обращение.
Назначить новому обращению критичность | Позволяет указать критичность вновь создаваемого обращения.

Вкладка "Действия"

Поле | Описание
Установить статус прочтенности | Позволяет отметить все сообщения, к которым будет применяться это правило, как прочитанные.
Установить пометку спам | Позволяет отметить все сообщения, к которым будет применяться это правило, как сообщения массовой рассылки.
Действие на PHP скрипте | Опциональный PHP скрипту, который исполняется во время применения правила к сообщению.
Удалить сообщение | Удаляет сообщения, к которым применяется правило.
Не обрабатывать другими правилами | Указывает, что после применения этого правила к конкретному сообщению, остальные правила не будут применены к нему, даже если сообщение удовлетворяет условиям правила.

Примечания

Группы полей для задания условий

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

Второй ниспадающий список содержит перечень компаративных операторов, определяющих тип операции сравнения, применяемой к тексту свойства, выбранного в первом списке при фильтрации. В качестве функционального оператора может быть выбран пункт Регулярное выражение. Синтаксис используемых регулярных выражений соответствует спецификации PCRE. Описание синтаксиса можно найти здесь: http://ru2.php.net/manual/en/reference.pcre.pattern.syntax.php.

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

Пример

Для того чтобы правило применялось ко всем входящим сообщениям, в поле Тема которых присутствует слово Заказ, установите следующие значения полей:

  • Операнд - Тема;
  • Оператор - Содержит;
  • Образец - Заказ.

Условие на PHP скрипте

Поставляемые возможности в большинстве случаев достаточны для задания условий отбора сообщений. Однако, если стандартные механизмы не позволяют реализовать требуемые условия отбора сообщений, предусмотрена возможность создания пользовательских программных условий отбора. Скрипт для отбора сообщений должен быть написан на языке PHP. Во время выполнения условного скрипта гарантируется валидность массива полей сообщения $arMessageFields.

Условный PHP-скрипт должен вернуть true, если условие выполняется и к сообщению может быть применено правило, или false в противном случае.

Пример

if ($arMessageFields["FIELD_PRIORITY"] > 3 || strpos($arMessageFields["FIELD_FROM"], "@bitrix") > 0)
   return true;
return false;


Почтовые ящики

В этом разделе

  • Фильтр
  • Список ящиков
  • Как добавить ящик
  • Как изменить параметры почтового ящика

    • Форма Почтовые ящики отображает созданные вами учетные записи электронной почты, используемые для доставки корреспонденции. Форма содержит две основные области: фильтр и список ящиков.

    Фильтр

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

    Поле | Описание
Название | Означает отбор учетных записей с определённым названием.
ID | Идентификатор искомого почтового ящика.
Активность | Отображает все ящики, или только активные или не активные.
Сайт | Сайт, в котором искомый ящик активен.

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

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для создания и установки параметров нового почтового ящика.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список ящиков

    Колонка | Описание
    Колонка флажков | Поле предназначено для выбора правил, к которым предполагается применить какое-либо действие.
    Меню
    действий
             При нажатии на кнопку действий конкретной учетной записи, отображает меню, позволяющее:
    • Правила - отображает правила, которые назначены этому ящику;
    • Добавить новое правило - добавляет новое правило для этого ящика;
    • Журнал - позволяет посмотреть журнал событий по данному ящику;
    • Письма - отображает все сообщения, пришедшие на этот ящик;
    • Изменить - редактирование параметров учетной записи;
    • Удалить - удаление учетной записи.
    ID | Идентификатор ящика в базе данных.
    Дата изм. | Дата последнего изменения ящика.
    Название | Название ящика и ссылка на изменение его параметров.
    Акт. | Признак активности почтового ящика.
    Сайт | Сайт, в котором данный ящик активен.

    Как добавить ящик

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

    Как изменить параметры почтового ящика

    Для изменения параметров правила дважды кликните строку требуемой учетной записи в списке почтовых ящиков.


Создание и редактирование почтового ящика

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

Контекстная панель

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

Форма создания/редактирования почтового ящика (вкладка "Почтовый ящик")

Поле | Описание
Код | Код ящика, создаётся автоматически при создании. Поле отображается при редактировании почтового ящика.
Последнее изменение | Дата и время последнего изменения ящика. Поле отображается при редактировании почтового ящика.
Сайт | Сайт, в котором данный ящик активен.
Активен | Признак активности почтового ящика. Если ящик не активен, он не будет применяться для чтения постовых сообщений.
*Название | Произвольное название учетной записи.
Описание | Произвольное описание почтового ящика.
*Почтовый сервер (POP3) / порт | Имя сервера, соединение с которым будет использоваться для получения сообщений. Порт, к которому должно осуществляться подключение (обычно 110).
*Имя входа | Имя учетной записи на вышеуказанном почтовом сервере, которому соответствует данный почтовый ящик.
*Пароль | Пароль входа на почтовый сервер для данного ящика.
Использовать безопасную (MD5) авторизацию | Вход на сервер с использованием средства шифрования паролей.
Кодировка, в которую конвертировать входящую почту | Название кодировки, в которую будет конвертироваться входящая почта.
Проверять с периодом | Интервал времени, в минутах, для автоматической проверки новых сообщений на сервере.
Максимальное количество сообщений принимаемых за одно соединение | Это поле позволяет установить лимит на количество сообщений, принимаемых с сервера за один сеанс соединения. Если на сервере находится больше сообщений, чем предусмотрено данным параметром, оставшиеся сообщения будут приняты в ходе следующего подключения.
Удалять сообщения с сервера после получения | Если эта опция включена, сообщения после получения и сохранения в системе будут удалены с почтового сервера. Так работает большинство почтовых программ. Если вы хотите принимать сообщения ещё и при помощи вашей почтовой программы (напр., для архивации), не включайте эту опцию.
* - Поля, обязательные для заполнения.

Переход к созданию правила

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

Кнопки управления

Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком почтовых ящиков.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров почтового ящика.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Настройки (почта)

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Почта: настройки модуля

Данная форма (Настройки -> Настройки продукта -> Настройки модулей -> Почта) предназначена для задания общесистемных параметров почтового модуля.

Вкладка "Настройки"

Наименование параметра | Описание
Сохранять исходный текст письма | Если флажок установлен, система сохраняет письма в базе данных, что позволяет прочитать их в любой момент времени после сеанса получения почты. Если флажок снят, сообщения могут быть просмотрены только сразу после их получения и не сохраняются в базе.
Сохранять вложенные файлы | Если флажок установлен, все файлы, вложенные в письма, также сохраняются в базе данных. Активация этого параметра может привести к существенному увеличению размера базы данных сайта!
Таймаут соединения | Максимальное количество времени (в минутах), в течение которого почтовая система ожидает ответа от почтового сервера.
Проверять сообщения на спам при получении почты | Указывает, что все входящие сообщения будут проверяться на предмет нежелательных рассылок уже во время получения почты.
Хранить журнал работы | Количество дней, в течение которых следует сохранять записи почтового лога.

Вкладка "Доступ"

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

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

Все вышеперечисленные права являются наследуемыми.


Интернет-магазин

К размышлению

Современный бизнес давно перешагнул порог офисов и магазинов. Можно даже утверждать, что он вышел в окно, и это не будет преувеличением или досужей метафорой - миллионы пользователей, а по сути - ваших потенциальных клиентов, проводят время в поисках товаров и услуг в Интернете, изучая предложения в окнах своих браузеров. Расширьте свой бизнес, предложите им свои товары и услуги - тем более, что с помощью системы 1C-Битрикс: Управление сайтом это сделать так легко!

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

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

Управление параметрами интернет-магазина выполняется в разделе Магазин -> Настройки магазина, а также на странице настроек модуля Интернет-магазин. Также в настройках продукта на странице Список мастеров присутствуют мастера, позволяющие настроить Интернет-магазин, загрузить базу местоположений и индексов.

Отличительные особенности интернет-магазина

Локализуемость
Все элементы интернет-магазина зависят от сайта. Так, список доступных для данного посетителя служб доставки зависит от сайта, на котором находится посетитель.
Отсутствие межмодульных зависимостей
Интернет-магазин не зависит от других модулей и может принимать в корзину товары из любого модуля или статических страниц. Модуль торгового каталога имеет набор функций, которые облегчают работу с интернет-магазином.
Полнофункциональная корзина товаров и услуг
Каждый товар при помещении его в корзину может быть дополнительно описан любым количеством произвольных параметров (свойств). Если при занесении в корзину товара была указана функция обратного вызова, то при совершении действий с корзиной для каждого товара проверяется его доступность для покупки в требуемом количестве. При помещении товара в корзину из модуля торгового каталога функция обратного вызова задается автоматически.
Многовалютность
Система позволяет гибко управлять валютами цены. Список валют определяется администратором. Для каждой валюты устанавливаются курсы (с возможностью загрузки с сайта Центрального Банка РФ), формат вывода для сайта.

Для каждого сайта назначается единая валюта пересчета цен. Таким образом, независимо от того, в какой валюте будут заноситься цены на товары, стоимость доставки, скидки и прочее, при показе в корзине и оформлении заказа эти цены будут сконвертированы в единую валюту, установленную для данного сайта. Так, для русского языка можно установить валюту RUR - рубли, при этом в русском интерфейсе все цены, которые были указаны в иностранной валюте (например, USD), будут показаны в рублях по установленному курсу.

Настройка валют для использования на сайте и, в частности, в интернет-магазине, производится при помощи модуля валют.

Важно!
Для корректной работы модуля Интернет-магазин необходимо наличие установленного в системе модуля Валюты.

Система скидок
Система управления скидками позволяет заводить несколько планов скидок, зависящих от общей стоимости заказа. Скидки могут быть заданы как в процентном, так и в фиксированном выражении. Скидка рассчитывается от общей стоимости заказа без учета стоимости доставки.
Доставка
Система доставки позволяет указывать информацию, необходимую для определения стоимости доставки. Выбор стоимости доставки осуществляется с учётом различных зон, настраиваемых индивидуально администратором магазина. Так, например, зоны доставки могут определяться по городу, по области, по стране и т.д. Количество зон доставки не ограничено. Кроме того, стоимость доставки может зависеть от общей стоимости и веса заказа. Системы доставки делятся на Настраиваемые и Автоматизированные. Для добавления настраиваемой системы доставки достаточно заполнить стандартную форму. При добавлении автоматизированной системы необходимо создать специальный обработчик системы доставки, в котором можно организовать программный рассчет стоимости доставки, также необходимо определить список профилей доставки, применимость профилей доставки к заказу и т.д.
Автоматический подсчет стоимости заказа
Стоимость заказа формируется из следующих составляющих: общая стоимость товаров в заказе (т.е. сумма произведений стоимостей на момент заказа товаров в корзине на заказанное количество данных товаров), стоимость доставки заказа (деньги, которые платятся за почтовую или курьерскую доставку). От стоимости заказа отнимается скидка на стоимость заказа (если она есть). Если в системе определены значения налогов, то они учитываются при определении стоимости заказа.
Платежные системы
Платежная система позволяет построить интерфейс для инициализации процедуры оплаты заказа электронными средствами платежа или распечатки необходимых документов для оплаты другими (не электронными) средствами платежа. Количество шаблонов платежных систем не ограничено. С дистрибутивом интернет-магазина идет набор предустановленных шаблонов платежных систем, включающий в себя поддержку платежной системы Assist (пластиковые карты, Яндекс-деньги, WebMoney), распечатку квитанций Сбербанка и некоторые другие. Все шаблоны платежных систем требуют настройки перед использованием.
Свойства заказа
При оформлении заказа система спрашивает у покупателя определённый набор параметров (свойств заказа), которые необходимы для оформления, регистрации или доставки заказа. Этот набор свойств полностью настраиваемый, неограниченный и зависит от типа покупателя, который выбирается на первом шаге оформления заказа.

Например, для покупателя типа Физическое лицо свойствами заказа могут быть:
  • фамилия и имя;
  • адрес доставки;
  • E-Mail адрес;
  • прочие свойства.
В то же время, для покупателя типа Юридическое лицо свойствами заказа могут быть:
  • название организации;
  • юридический адрес;
  • ИНН;
  • E-Mail адрес;
  • прочие свойства.
Часть свойств заказа может сохраняться в виде профиля покупателя и использоваться для облегчения заполнения формы заказа при повторных заказах.
Персональный раздел покупателя
В этом разделе покупатель имеет возможность просмотреть все свои заказы, отменить новый заказ, копировать заказы для повторного оформления, повторно распечатать необходимые документы или повторить процедуру оплаты электронными средствами платежа, просмотреть статусы заказов, просмотреть и отредактировать сохраненные профили покупателя.
Административный раздел по обработке заказов
Заказы обрабатываются по флагам Оплачен, Отменён, Разрешена доставка и статусу (Принят, В обработке, Отгружен, Доставлен и т.п.). Список статусов может быть настроен произвольно для данного сайта.

Флаги и статусы могут быть выставлены независимо друг от друга. Так, заказ может быть ещё не оплачен, но уже разрешена его доставка (наложенный платеж), или заказ оплачен, но доставка его по тем или иным причинам ещё не разрешена. Статус заказа служит для информирования покупателя и сотрудников магазина о текущем состоянии заказа.

Для заказов, оплачиваемых электронными средствами платежа, имеется возможность автоматически запросить статус платежной системы для данного заказа. Если платежная система ответит, что данный заказ оплачен и сумма оплаты совпадет с суммой заказа, то флаг Оплачен заказа автоматически поменяет своё значение на Да.
Почтовые сообщения
Оформление нового, изменение статуса существующего и отмена заказа сопровождаются почтовыми сообщениями покупателю и в отдел продаж сайта, E-Mail адрес которого задается в настройках интернет-магазина.
Интеграция с 1С
Начиная с версии продуктов «1С:Предприятие 8» редакция «Управление торговлей» версии 10.3.2 и 1С-Битрикс: Управление сайтом 6.5, редакции «Малый бизнес» и «Бизнес» поставляются со встроенными в системы штатными процедурами взаимодействия. Начиная с версии 6.5, 1С-Битрикс: Управление сайтом поддерживает двунаправленный обмен данными с «1С:Предприятием»: публикация информации из «1С», выгрузка заказов с сайта и статусов в «1С» и обратно.


Заказы

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список заказов
  • Операции над заказами
  • Печать документов по заказу
  • Просмотр подробной информации по заказу
  • Оплата заказ
    •

    Форма Заказы (Магазин -> Заказы) служит для управления заказами клиентов магазина. С помощью этой формы вы можете:

    • просматривать заказы на товары и услуги магазина;
    • удалять и отменять заказы;
    • изменять состояния заказов и их статусы.

    Форма поиска

    Поля формы служат для задания параметров поиска интересующих вас заказов.

    Поле | Описание
    Дата заказа | Поиск по дате оформления заказа.
    Код заказа | Поиск по коду заказа.
    Сайт / Валюта | Указывается, заказы из какого сайта и оплаченные какой валютой следует отображать.
    Статус заказа Позволяет установить фильтр на отображение всех заказов или заказов только в определённом статусе. Например:
    • Принят
    • В обработке
    • Отгружен
    • Доставлен
    Дата изменения статуса | Позволяет выбрать заказы, статус которых изменился в течение определённого периода времени. Для задания временного диапазона можно использовать либо список с количеством дней, либо поля-календари.
    Оплачен | Позволяет отобразить оплаченные, неоплаченные или все заказы.
    Доставка разрешена | Позволяет отобразить заказы, доставка которых разрешена, не разрешена или все заказы.
    Дата разрешения доставки | Позволяет выбрать заказы, доставка которых была разрешена в течение определённого периода времени. Для задания временного диапазона можно использовать либо список с количеством дней, либо поля-календари.
    Платёж авторизован в ПС | Позволяет отобразить либо все заказы, либо имеющие определённый статус авторизации в платёжной системе.
    Платёжная система | Позволяет отобразить либо все заказы, либо оплаченные с использованием определённой платёжной системы.
    Отменён | Позволяет отобразить отменённые, неотменённые или все заказы.
    Покупатель | Данное поле позволяет установить фильтр по имени, фамилии и E-Mail адресу покупателя. Если вы не знаете точные данные, то воспользуйтесь групповыми символами % и ? (например, если вы знаете только, что E-Mail покупателя начинается с символов "buyer", то введите в этом поле "buyer%").
    Код товара в заказе | Позволяет осуществить поиск заказа по коду товара, включённого в заказ.
    Внешний код товара | Позволяет осуществить поиск заказа по внешнему коду проданного товара.
    Аффилиат | Позволяет отобразить заказы, сделанные от определённого аффилиата.

    Для того чтобы отобрать заказы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех заказов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчётной формы.

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

    Данная форма содержит список заказов, а также значения основных полей этих заказов.

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора заказов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над заказом:
    • Просмотреть подробную информацию о заказе - просмотр подробной информации о заказе с возможностью редактирования отдельных параметров;
    • Печать документов- печать документов по заказу;
    • Изменить параметры заказа - переход к редактированию заказа;
    • Удалить заказ - удаление заказа.
    ID | Номер и дата оформления заказа.
    Оплачен Текущий статус оплаты заказа:
    • да - заказ оплачен;
    • нет - заказ не оплачен.
    Отменён Текущий статус отменены заказа:
    • да - заказ отменён;
    • нет - заказ не отменён.
    Статус | Текущий статус заказа (например, Принят, В обработке, Доставлен).
    Сумма | Общая сумма заказа с учётом применяемых скидок, налогов, а также стоимости доставки.
    Покупатель | Имя и фамилия покупателя, указанные им при регистрации в системе, а также присвоенный данному покупателю код. Код представлен в виде ссылки на форму редактирования пользователя.
    Платёжная система | Платёжная система, выбранная покупателем для оплаты заказа.
    Оплата ПС | Статус оплаты, произведённой через выбранную платёжную систему (если предусмотрено получение статуса оплаты от данной платёжной системы). Например, успешна, не успешна, не проводилась.
    Блокировка Значение поля информирует о доступности элемента для редактирования:
  • - заказ доступен для редактирования;
  • - заказ заблокирован вами. Для того чтобы освободить заказ, выберите пункт Разблокировать в меню столбца Действие;
  • - заказ заблокирован другим пользователем (т.е. редактирование элемента выполняется другим пользователем).
    •
    Позиции | Содержимое заказа.

    Операции над заказами

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

    Выберите необходимое действие в списке и нажмите кнопку "Применить".

    Действие | Описание
Обновить статусы платёжных систем | Данное действие позволяет обновить информацию о статусах заказов, для оплаты которых были выбраны платёжные системы, позволяющие запросить статус оплаты заказа.
Экспортировать в Excel | Экспорт информации о заказах в XLS файл.
Экспортировать в CSV | Экспорт информации о заказах в CSV файл.
Экспортировать в CommerceML | Экспорт информации о заказах в XML файл.
Экспортировать в CommerceML 2.0 | Экспорт информации о заказах в XML файл.

    Как отпечатать документы по заказу

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

    Как просмотреть подробную информацию по заказу

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

    Как оплатить заказ

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


Детальный просмотр заказа

В этом разделе

  • Контекстная панель
  • Форма просмотра заказа
  • Заказ
  • Состав заказа
  • Транзакции по заказу

    • Контекстная панель

    Кнопка | Описание
Список заказов | Переход на страницу со списком заказов.
Изменить заказ | Переход на страницу с формой для редактирования заказа.
Печать заказа | Переход на страницу для печати документов по данному заказу.
Удалить заказ | Удаление просматриваемого заказа.

    Форма просмотра заказа

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

    Закладка "Заказ"

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

    Поле | Описание
    Заказ № <...> от <...>
    Дата последнего изменения | Дата последнего изменения заказа.
    Сайт заказа | Сайт, на котором был оформлен заказ.
    Текущий статус заказа Статус заказа. Например, возможны следующие значения:
    • Принят
    • В обработке
    • Отгружен
    • Доставлен
    Для изменения текущего статуса заказа нажмите ссылку Сменить статус заказа.
    Сумма заказа | Общая сумма заказа к оплате (включает налоги, доставку и т.п.)
    Аффилиат | Выводится код и имя аффилиата, если товар приобретен через аффилиата.
    Отменён Статус отмены заказа:
    • да- заказ отменён;
    • нет - заказ принят.
    Для изменения текущего статуса отмены заказа нажмите ссылку Сменить флаг отмены заказа.
    Бюджет покупателя
    Покупатель | Код покупателя, присвоенный ему при регистрации в системе.
    Имя входа покупателя (логин) | Регистрационное имя покупателя (login).
    E-Mail покупателя | Адрес электронной почты покупателя.
    Параметры заказа
    Тип плательщика | Тип плательщика, выбранный покупателем при оформлении заказа (физическое лицо, юридическое лицо и т.п.).
    Комплектация
    Комплектация | Комплектация, выбранная покупателем при заказе товара.
    Адрес доставки
    E-Mail | Адрес электронной почты получателя товара.
    Местоположение | Название местоположения, выбранного для доставки товара.
    Город | Название города получателя заказа.
    Индекс | Почтовый индекс для адреса доставки товара.
    Адрес (без города) | Адрес получателя товара без указания названия города.
    Контактное лицо | Получатель товара.
    Оплата
    Платежная система | Платежная система, выбранная для оплаты товара.
    Оплачен Статус оплаты заказа:
    • да- заказ оплачен;
    • нет - заказ не оплачен.
    Для изменения текущего статуса оплаты заказа нажмите ссылку Сменить флаг оплаты.
    Служба доставки
    Служба доставки | Название выбранной службы доставки заказа.
    Доставка разрешена | Статус разрешения доставки. Для изменения статуса воспользуйтесь ссылкой Сменить флаг.
    Комментарий
    Произвольный комментарий персонала интернет-магазина по заказу (не виден покупателю).

    Закладка "Состав заказа"

    Данная форма содержит информацию о составе заказа.

    Поле | Описание
Название | Название товара.
Внешний код | Внешний код товара.
Свойства | Свойства товара, передаваемые в заказ (например, ID, цвет, размер и т.д.)
Тип цены | Тип цены, по которой покупатель приобретает товар.
Количество | Количество товара, приобретаемое покупателем.
Цена | Общая стоимость данной позиции заказа.
Скидка | Общая сумма применяемых скидок
Налоги | Сумма налогов, применяемых при расчёте стоимости заказа.
Доставка | Стоимость доставки по данному заказу.
Итого | Общая сумма заказа.

    Закладка "Транзакции по заказу"

    Данная форма содержит список записей о движении денежных средств на счете клиента в рамках данного заказа.

    Поле | Описание
    Дата | Дата и время совершения операции по счету.
    Пользователь | Код, имя и фамилия пользователя, выполнившего операцию.
    Сумма Сумма операции.
    • Отрицательная сумма (со знаком "-") означает операцию списания денежных средств со счета покупателя.
    • Положительная сумма (со знаком "+") означает операцию занесения денежных средств на счет клиента.
    Описание | Описание содержания операции.
    Комментарии | Произвольный комментарий.


Печать документов по заказу

В этом разделе

  • Контекстная панель
  • Форма Печать документов
  • Кнопки управления
  • Информация для администраторов

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

    Контекстная панель

    Кнопка | Описание
Список заказов | Переход на страницу со списком заказов.
Изменить заказ | Переход на страницу с формой для редактирования заказа.
Подробности заказа | Переход на страницу с подробной информацией о заказе.

    Форма Печать документов

    Таблица Заказ содержит обзорную информацию о заказе.

    Заказ
    Номер заказа | Номер заказа в системе.
    Дата заказа | Дата оформления или последнего изменения заказа.
    Сайт заказа | Сайт, на котором был оформлен данный заказ.
    Статус | Текущий статус заказа.
    Отменён/Оплачен/ Доставка разрешена | Текущее состояние заказа.
    В данном разделе формы представлен список позиций заказа.
    Включен | Название | Количество | Цена | Сумма
[1] | [2] | [3] | [4] | [5]
    Поле | Описание
    [1] Включен Указывается, будет ли данная позиция (товар) включена в печатный документ.
    Некоторые шаблоны документов позволяют печатать данные не по всем, а по произвольной части товаров заказа. В данном поле вы можете указать, что в печатном документе должны присутствовать не все товарные позиции, а так же изменить их количество. Если шаблон не предусматривает печать только части заказа, то он отобразит все товарные позиции вне зависимости от установок на форме.
    [2] Название | Название товара.
    [3] Количество | Количество приобретаемого товара.
    [4] Цена | Стоимость единицы товара с учётом скидки.
    [5] Сумма | Общая стоимость данной позиции заказа.
    [Налог] | Перечень налогов, применяемых к данному заказу, с указанием их сумм.
    Доставка | Стоимость доставки товара.
    Итого | Общая сумма заказа (включая сумму налога и стоимость доставки).
    Шаблон документа Поле для выбора шаблонов, на основе которых будет выводиться печатная форма документов.
    Для того, чтобы выбрать более одного шаблона, используйте клавишу Ctrl.

    Кнопки управления

    Кнопка Описание
    Печать Для того чтобы приступить к печати документов, нажмите кнопку Печать.
    Все выбранные документы открываются в новых окнах. В некоторых документах перед печатью можно изменять какой-либо текст (например, в предустановленном документе Счет-фактура). Находясь в окне документа, нажимайте на клавишу Tab и фрагменты текста, доступные для изменения, будет подсвечиваться по очереди.

    Техническая информация для администраторов

    Файлы, содержащие Пользовательские шаблоны документов, должны быть расположены в каталоге /bitrix/admin/reports/.

    Файлы, содержащие Предустановленные шаблоны, находятся в каталоге /bitrix/modules/sale/reports/.

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

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

    В окне документа текст, который можно изменить, представляет собой обычные строки редактирования (input type="text"), их границы не отображаются на экране.

    Шаблон документа

    Шаблон документа представляет собой обычный php-скрипт. В этом скрипте доступны следующие переменные.

    Переменная | Описание
    $ORDER_ID | ID (код) текущего заказа.
    $arOrder | Массив атрибутов заказа (ID, доставка, стоимость, дата создания и т.д.). Вы можете узнать полное содержимое этого массива для вашей версии модуля, если выполните в шаблоне документа следующий PHP код: print_r($arOrder)
    $arOrderProps Массив свойств заказа. Свойства заказа настраиваются на странице управления свойствами заказа модуля продаж. Значения свойств заказа вводятся покупателями при оформлении заказа. Массив свойств заказа имеет следующую структуру:
    array(
"мнемонический код
 (или ID, если мнем. код пуст) свойства"
=>
"значение свойства"
)
    $arBasketIDs | Массив кодов товарных позиций в заказе (кодов соответствующих записей в корзине), которые выбраны для печати. Шаблон может не учитывать этот массив.
    $arQuantities | Массив количеств товарных позиций в заказе, которые выбраны для печати. Элементы этого массива соответствуют элементам массива $arBasketIDs (т.е. товарная позиция с кодом $arBasketIDs[$i] появится в печатном документе в количестве $arQuantities[$i]). Шаблон может не учитывать этот массив.

    Названием шаблона документа является содержимое тега <title> этого документа. Если у тега <title> установлен необязательный атрибут langs, то шаблон документа показывается только в том случае, если среди сайтов существуют перечисленные в качестве значения этого атрибута. Например, если в шаблоне присутствует строчка

<title langs="ru,en">Счет-фактура</title>

    то шаблон будет иметь имя Счет-фактура и будет показан только на сайтах ru или en.


Продление подписки

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список продлений подписки

    • Форма Продление подписки (Магазин -> Продление) содержит список записей о продлении прав пользователей на пользование платным контентом сайта.

    Форма поиска

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

    Поле | Описание
    Пользователь | Поиск записи по имени, отчеству, фамилии и/или e-mail адресу пользователя, для которого было оформлено продление подписки. Возможно использование условий сложного поиска.
    Код пользователя | Поиск записи по коду пользователя, для которого было оформлено продление подписки. Данный код автоматически присваивается пользователю при регистрации на сайте.
    Логин пользователя | Поиск записи по логину (имени входа) пользователя, для которого было оформлено продление подписки.
    Отменено Поиск записи по состоянию подписки:
    • да - в поиске участвуют отменённые записи о продлении подписки;
    • нет - в поиске участвуют действующие (активные) продления подписки;
    • все - в поиске участвуют как отменённые, так и действующие продления подписки.
    Дата последнего продления Поиск по дате оформления продления подписки.
    Значение поля может быть задано как количеством дней, прошедших со дня оформления подписки, так и в виде временного диапазона (с помощью on-line календаря).
    Дата очередного продления Поиск по дате оформления очередного продления подписки.
    Значение поля может быть задано как количеством дней, оставшихся до дня оформления очередной подписки, так и в виде временного диапазона (с помощью on-line календаря).
    Номер базового заказа | Номер заказ, запись о продлении которого присутствует в списке.
    Успешное продление Поиск записи по статусу продления подписки:
    • да - в поиске участвуют записи только об успешно продленной подписке;
    • нет- в поиске участвуют записи о подписке, продление которой прошло с какой-либо ошибкой;
    • все - в поиске участвуют записи обо всех продлениях подписки (успешных и неуспешных).

    Для того чтобы отобрать записи о продлении по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех записей нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить запись | Переход к форме создания нового продления.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список продлений подписки

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора записей, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, доступные для выполнения над записью о продлении подписки:
    • Изменить параметры продления - редактирование продления подписки;
    • Удалить продление- удаление записи о продлении подписки.
    ID | Идентификатор записи о продлении подписки.
    Пользователь | Регистрационный код, имя и e-mail адрес пользователя, для которого было оформлено продление подписки.
    Отм. Признак действительности продления подписки.
    Если значение поля "Да", то продление подписки считается недействительным (т.е. продление отменяется).
    Предыдущее продление | Дата и время последнего продления подписки.
    Очередное продление | Дата и время предстоящего продления подписки.
    Успешный платеж | Признак успешности оплаты продления подписки.


Создание и редактирование продления подписки

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма служит для оформления продления подписки или изменения параметров уже оформленного продления.

    Контекстная панель

    Кнопка | Описание
Список записей | Переход на страницу со списком записей о продлении подписки.
Добавить новую запись | Переход к форме создания нового продления. Отображается при редактировании существующего продления.
Удалить запись | Удаление редактируемого продления.

    Поля формы

    Поле | Описание
ID | Идентификатор записи о продлении подписки в системе. Отображается в режиме редактирования продления подписки.
Дата последнего изменения | Дата и время последнего изменения подписки.
*Пользователь | Регистрационный код пользователя, для которого оформляется продление подписки. Выбор кода осуществляется из списка, открываемого с помощью кнопки [...].
Отменено | Признак недействительности продления подписки. Если выбрана данная опция, то продление подписки считается недействительным (т.е. продление отменяется).
Причины отмены | Если продление подписки отменяется, то в данном поле указываются причины отмены.
Модуль | Название модуля, право на доступ к контенту которого продлевается.
*Товар | Идентификационный номер товара, подписка на использование которого продлевается.
Название товара | Полное наименование товара.
Ссылка на товар | Ссылка на страницу с информацией о товаре.
Дата последнего продления | Дата и время оформления предыдущего продления подписки.
*Дата очередного продления | Дата и время предстоящего продления подписки.
Предыдущая попытка выполнена успешно | Признак успешности предыдущего оформления продления подписки.
Осталось попыток продления | Если продление подписки осуществляется автоматически, то в данном поле указывается количество возможных попыток продления. Если значение поля равно 0, то попытка продления подписки производиться не будет.
*Код базового заказа | Код продлеваемого заказа.
Описание | Произвольное описание записи о продлении подписки.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение изменений, выполненных на данной странице. Переход на страницу со списком продлений подписок.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров продления подписки.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Внутренние счета пользователей

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список счетов

    • Форма Внутренние счета пользователей (Магазин -> Счета покупателей -> Счета) содержит список внутренних счетов клиентов и отражает остаток средств на данных счетах.

    Форма поиска

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

    Поле | Описание
    Пользователь | Поиск счета по имени, отчеству, фамилии и/или e-mail адресу пользователя-владельца счета. Возможно использование условий сложного поиска.
    ID пользователя | Идентификационный номер пользователя-владельца счета.
    Логин пользователя | Поиск счета по логину (имени входа) пользователя-владельца счета.
    Валюта | Валюта счета.
    Заблокирован Поиск счета по признаку активности:
    • да - в поиске будут участвовать только заблокированные (неактивные) счета;
    • нет - в поиске будут участвовать только активные счета;
    • все- в поиске будут участвовать все счета (активные и заблокированные).

    Для того чтобы отобрать внутренние счета пользователей по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех счетов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить счет | Переход к форме создания нового внутреннего счета.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список счетов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора счетов пользователей, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, доступные для выполнения над внутренним счетом пользователя:
    • Изменить параметры счета - редактирование внутреннего счета пользователя;
    • Удалить счет- удаление счета.
    ID | Идентификатор счета в системе.
    Пользователь | Идентификатор, имя, логин и e-mail адрес пользователя-владельца счета.
    Сумма на счете | Размер денежной суммы на счете (в валюте счета).
    Заблокирован | Признак активности счета (т.е. доступности выполнения транзакций по счету). Для того чтобы разблокировать счет, отметьте данный счет с помощью флага в крайнем левом поле, затем выберите операцию Разблокировать на панели управления внизу страницы и нажмите кнопку "Применить".
    Транзакции | Количество выполненных транзакций по данному счету. При нажатии на ссылку с количеством транзакций будет открыта страница со список транзакций по данному счету.
    Выбрано | Количество элементов в списке.
    Отмечено | Количество элементов, отмеченных в поле [1].
    Итого | Сумма средств на счетах отдельно по каждому виду валюты.


Создание и редактирование счета

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма служит для создания и настройки внутренних счетов пользователей.

    Контекстная панель

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

    Поля формы

    Поле | Описание
ID | Идентификатор счета в системе.
Дата последнего изменения | Дата и время последнего изменения параметров счета.
*Пользователь | Идентификатор пользователя-владельца счета. При создании счета идентификатор пользователя выбирается в списке, открываемом с помощью кнопки [...].
*Сумма на счете | Общая сумма на счете и валюта счета.
Разблокировать бюджет | Если внутренний счет пользователя находится в статусе Заблокирован, то установка флага в это поле позволит разблокировать счет.
Заметки | Произвольный комментарий к создаваемому счету.
Основание изменения суммы на счете | Указывается событие, в связи с которым изменяется сумма на счете.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение выполненных изменений. Переход к списку внутренних счетов пользователей.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров счета.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Транзакции

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список транзакций

    • Форма Транзакции (Магазин -> Счета покупателей -> Транзакции) содержит список всех транзакций, выполняемых по счету клиента интернет-магазина (например, зачисление или списание денежных средств).

    Форма поиска

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

    Поле | Описание
Пользователь | Поиск транзакции по имени, отчеству, фамилии и/или e-mail адресу пользователя, по счету которого была выполнена операция. Возможно использование условий сложного поиска.
ID пользователя | Идентификационный номер пользователя, по счету которого была выполнена операция.
Логин пользователя | Поиск транзакции по логину (имени входа) пользователя, по счету которого была выполнена операция.
Валюта | Поиск транзакции по валюте операции.
Дата транзакции | Поиск операции по дате проведения. Возможно указание как количества дней, прошедших со дня выполнения операции, так и периода времени, в течение которого могла быть выполнена транзакция.
Номер заказа | Поиск транзакции по номеру заказа, в рамках которого она была проведена.

    Для того чтобы отобрать транзакции по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех транзакций нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить транзакцию | Переход к форме создания новой транзакции.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список транзакций

    Поле | Описание
ID | Уникальный идентификатор транзакции в системе.
Дата транзакции | Дата проведения операции по счету.
Пользователь | Регистрационный код, имя и e-mail адрес пользователя, по счету которого осуществляется данная операция.
Сумма | Сумма операции.
Заказ | Номер заказа, в рамках которого была проведена данная операция. Номер заказа представлен в виде ссылки, позволяющей перейти к форме с подробной информацией о заказе.
Тип | Тип операции по счету.
Описание | Регистрационный код, имя и логин пользователя, выполнившего транзакцию.


Выполнение новой транзакции

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма служит для проведения новой операции (транзакции) по счету клиента.

    Контекстная панель

    Пункт | Описание
Список транзакций | Переход на страницу со списком транзакций.

    Поля формы

    Поле | Описание
*Пользователь | Идентификатор пользователя, по счету которого выполняется операция. Идентификатор пользователя выбирается в списке, открываемом с помощью кнопки [...].
*Дата транзакции | Дата и время проведения операции. Если значение поля указано для будущего периода, то операция будет выполнена при наступлении указанной даты и времени.
*Сумма | Сумма операции.
Валюта | Валюта операции.
Тип записи | Тип выполняемой операции (транзакции).
Номер заказа | Если транзакция выполняется в рамках какого-либо заказа, то в данном поле указывается номер этого заказа.
Заметки | Произвольный комментарий к выполняемой операции.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение транзакции. Переход на страницу со списком транзакций.
Отменить | Отмена транзакции.


Пластиковые карты

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список пластиковых карт

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

    Важно! Для обеспечения безопасности работы с пластиковыми картами на странице настроек модуля Интернет-магазин необходимо задать пароль для шифрования номеров карт. Если пароль не задан, то соответствующее сообщение будет выведено вверху страницы.

    Форма поиска

    С помощью данной формы вы можете выполнить поиск пластиковых карт в соответствии с указанными условиями.

    Поле | Описание
    Пользователь | Поиск карты по имени, отчеству, фамилии и/или e-mail адресу пользователя, осуществляющего платежи. Возможно использование условий сложного поиска.
    Код пользователя | Поиск карты по коду пользователя, осуществляющего платежи. Данный код автоматически присваивается пользователю при регистрации на сайте.
    Логин пользователя | Поиск карты по логину (имени входа) пользователя, осуществляющего платежи.
    Активность Поиск пластиковой карты с использованием признака активности карты:
    • да - в поиске участвуют только активные (доступные для использования при оплате) карты;
    • нет- в поиске участвуют только неактивные карты;
    • все - в поиске участвуют все пластиковые карты (активные и неактивные).

    Для того чтобы отобрать пластиковые карты по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех пластиковых карт, нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить карту | Переход к форме создания новой пластиковой карты.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список пластиковых карт

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора пластиковых карт, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, доступные для выполнения над пластиковой картой:
    • Изменить параметры пластиковой карты - редактирование пластиковой карты;
    • Удалить пластиковую карту - удаление записи с параметрами пластиковой карты.
    ID | Идентификатор пластиковой карты.
    Пользователь | Идентификатор, имя и e-mail адрес пользователя, осуществляющего платежи с помощью данной пластиковой карты.
    Акт. Признак активности пластиковой карты.
    Неактивная карта не может использоваться для оплаты товаров.
    Сорт. | Относительный "вес" пластиковой карты. Используется для определения положения пластиковой карты в общем списке.
    Валюта | Наименование валюты, в которой осуществляются платежи с помощью данной пластиковой карты.
    Тип | Наименование типа пластиковой карты.


Создание и редактирование пластиковой карты

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

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

    Важно! Для обеспечения безопасности работы с пластиковыми картами на странице настроек модуля Интернет-магазин необходимо задать пароль для шифрования номеров карт. Если пароль не задан, то соответствующее сообщение будет выведено вверху страницы.

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

    Контекстная панель

    Кнопка | Описание
Список пластиковых карт | Переход на страницу со списком пластиковых карт.
Добавить карту | Переход к форме создания новой карты. Кнопка отображается при редактировании существующей карты.
Удалить карту | Удаление редактируемой карты.

    Поля формы

    Поле | Описание
ID | Идентификатор пластиковой карты в системе.
Дата последнего изменения | Дата и время последнего изменения записи с параметрами пластиковой карты.
*Пользователь | Указывается регистрационный код пользователя, осуществляющего платежи с помощью данной карты. Код пользователя выбирается из списка, открываемого с помощью кнопки [...].
Активность | Признак активности пластиковой карты. Неактивная карта не может использоваться для оплаты товаров.
Индекс сортировки | Относительный "вес" пластиковой карты. Используется при выводе данной пластиковой карте в общем списке.
*Платежная система | Выбирается платежная система, через которую осуществляются платежи по данной пластиковой карте.
Валюта, которую можно снимать с карты | Наименование валюты, в которой осуществляются платежи с помощью данной пластиковой карты.
Тип карты | Выбирается тип пластиковой карты.
*Номер карты | Номер пластиковой карты. Отображается в закодированном виде. Для просмотра доступны только 4 последних цифры номера.
Карта оканчивает действие | Указывается дата, после наступления которой карта больше не может использоваться для осуществления платежей в системе.
CVC2 | Код карты CVC2.
Минимальная сумма, которую можно снять с карты | Указывается минимальная сумма, которая может быть снята с карты за одну транзакцию (единовременно).
Максимальная сумма, которую можно снять с карты | Указывается максимальная сумма, которая может быть снята с карты за одну транзакцию (единовременно).
Валюта сумм | Валюта, в которой были указанны значения предыдущих полей (минимальная и максимальная сумма).
Описание | Произвольное описание пластиковой карты.
Последняя активизация | Дата и время последнего использования карты.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком пластиковых карт.
Применить | Сохранение внесённых изменений. Продолжение редактирования записи.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Настройки интернет-магазина

Настройка свойств и основных операций интернет-магазина выполняется на странице Настройки интернет-магазина: Магазин -> Настройки магазина.

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

Скидки на заказ
Форма Скидки на заказ служит для настройки скидок, предоставляемых на весь заказ. Величина скидки зависит от общей суммы заказа.
Доставка
Службы доставки делятся на Настраиваемые и Автоматизированные. Для добавления настраиваемой системы доставки достаточно заполнить стандартную форму. При добавлении автоматизированной системы необходимо создать специальный обработчик системы доставки, в котором можно организовать программный рассчет стоимости доставки, также необходимо определить список профилей доставки, применимость профилей доставки к заказу и т.д.
Платежные системы
Форма Платежные системы служит для настройки платежных систем, с помощью которых клиенты магазина могут оплачивать свои заказы.
Типы плательщиков
Форма Типы плательщиков служит для настройки списка типов плательщиков, которые могут осуществлять заказы на сайте. Для каждого типа плательщика создаётся собственный набор полей (свойств) заказа, которые плательщик должен заполнить при оформлении заказа, а так же обработчики платежных систем, с помощью которых плательщик может оплатить заказ.
Статусы
Форма Статусы заказа служит для настройки информационных статусов заказов. Статусы заказа служат для оповещения клиентов и сотрудников магазина о текущем состоянии заказа.
Свойства заказа
Форма Свойства заказа служит для настройки списка полей (свойств) заказа, которые клиент магазина должен будет заполнить при оформлении заказа. Набор свойств заказа зависит от типа плательщика, выбранного клиентом при оформлении заказа.
Группы свойств
Форма Группы свойств служит для настройки групп свойств заказов. Группировка свойств применяется для улучшения зрительного восприятия формы ввода свойств заказа. Для каждого типа плательщика создаётся самостоятельный набор групп свойств.
Местоположения
Форма Местоположения служит для настройки списка местоположений, из которого клиент магазина будет выбирать место для доставки заказа. Выбранное местоположение будет затем использовано для вывода списка доступных служб доставки, расчёта стоимости доставки, а также как часть фактического адреса доставки.
Группы местоположений
Форма Группы местоположений служит для объединения местоположений в группы. Это облегчает работу с настройкой служб доставки.
Налоги
Форма Налоги служит для настройки налогов, применяемых для расчёта стоимости заказа.
Ставки налогов
Форма Ставки налогов служит для задания ставок налогов в зависимости от местоположения покупателя и его типа плательщика.
Освобождение от налогов
Форма Освобождение от налогов служит для определения покупателей, освобожденных от уплаты части налогов.


Скидки на заказ

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список скидок

    • Форма Скидки (Магазин -> Настройки магазина -> Скидки на заказ) служит для управления скидками, применяемыми при покупке товара на определённую сумму. Скидка высчитывается от суммы заказа (например, в процентах), без учета стоимости доставки.

    Форма поиска

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

    Поле | Описание
Сайт | Сайт, на котором действует скидка.

    Для того чтобы отобрать скидки по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех скидок нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить скидку | Переход к форме создания скидки.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список скидок

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора скидок, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные действия над скидкой:
    • Изменить параметры скидки - редактирование скидки;
    • Удалить скидку - удаление скидки.
    ID | Код скидки.
    Сайт | Сайт, на котором действует эта скидка. В зависимости от сайта используются разные скидки.
    Акт. | Признак активности скидки. Если скидка не активна, она не предоставляется покупателям.
    Цена Диапазон стоимости заказа (без доставки), для которой устанавливается скидка.
    Допустимо также указание только одной границы диапазона (например, если в поле "от" указано 100, а в поле "до" не указано ничего или указан ноль, то скидка применяется при любой стоимости заказа больше либо равной 100).
    Скидка | Величина скидки. Если в выпадающем списке выбрано значение "%", то скидка задается в процентах от стоимости заказа. В противном случае скидка задается в фиксированном виде в валюте диапазона цены (диапазона стоимости заказа).
    Сорт. | Относительный "вес", определяющий положение скидки в списке.
    Активна с | Дата и время начала активности скидки.
    Активна по | Дата и время завершения активности скидки.


Создание и редактирование скидки

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Контекстная панель

    Кнопка | Описание
Список скидок | Переход на страницу со списком скидок.
Создать новую скидку | Переход к форме создания скидки. Кнопка отображается при редактировании существующей скидки.
Удалить скидку | Удаление редактируемой скидки.

    Поля формы

    Поле | Описание
ID | Код скидки.
*Сайт | Сайт, на котором действует эта скидка. В зависимости от сайта используются разные скидки.
Применяется при сумме заказа | Диапазон стоимости заказа (без доставки), для которой устанавливается скидка. Допустимо также указание только одной границы диапазона (например, если в поле "от" указано 100, а в поле "до" ничего не указано, то скидка применяется при любой стоимости заказа больше либо равной 100).
Период активности | Указывается период активности скидки.
*Величина скидки | Величина скидки. Если в выпадающем списке выбрано значение "%", то скидка задается в процентах от стоимости заказа. В противном случае скидка задается в фиксированном виде в валюте диапазона цены (диапазона стоимости заказа).
Активность | Признак активности скидки. При расчёте стоимости товара могут применяться только активные скидки.
Индекс сортировки | Относительный "вес", определяющий положение скидки в списке.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение изменений, выполненных на данной странице.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров скидки.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Настраиваемые службы доставки

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список служб доставки
    •

    В продукте имеется два типа служб доставки: настраиваемые и автоматизированные. Форма Настраиваемые службы доставки служит для настройки служб доставки товаров и услуг из магазина к покупателям. С помощью этой формы можно:

    • просматривать имеющиеся службы доставки и их основные параметры;
    • переходить к изменению параметров службы доставки;
    • удалять службы доставки.

    Форма поиска

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

    Поле | Описание
    Местоположение | Поиск служб по возможному месту доставки.
    Сайт | Сайт, на котором действует служба доставки.
    Вес Позволяет производить выборку служб по допустимому весу доставляемого заказа.

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

    Стоимость заказа может быть задана как в виде диапазона значений, так и с помощью нижней или верхней границы стоимости.
    Активность Указывается, какие службы будут участвовать в поиске:
    • да - в поиске будут участвовать только активные службы доставки;
    • нет - в поиске будут участвовать только неактивные службы доставки (неактивные службы не предлагаются для доставки товаров);
    • все - в поиске будут участвовать как активные, так и неактивные службы доставки.

    Для того чтобы отобрать службы доставки по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех служб, нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новая служба доставки | Переход к форме создания новой службы доставки.
Автоматизированные службы | Переход к списку автоматизированных служб доставки.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список служб доставки

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора служб доставки, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над службой доставки:
    • Изменить параметры службы доставки - редактирование службы доставки;
    • Удалить службу доставки - удаление службы доставки.
    ID | Идентификатор службы доставки.
    Название | Название службы доставки, как оно будет показано клиентам магазина при оформлении заказа.
    Сайт | Сайт, на котором действует эта служба доставки. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор служб доставки.
    Вес | Диапазон общего веса заказа, при котором возможен выбор этой службы доставки. Вес должен быть задан в тех же единицах, что и вес товаров, помещаемых в корзину (по умолчанию - в граммах).
    Стоимость заказа | Диапазон стоимости заказа, при котором возможен выбор этой службы доставки. Если валюта диапазона отличается от валюты заказа, то происходит автоматический пересчет в валюту заказа по текущему курсу системы.
    Сорт. | Относительный "вес" службы доставки. Влияет на положение данной службы в общем списке служб доставки.
    Акт. | Признак активности службы доставки. Неактивные службы не предлагаются для доставки товаров.
    Цена | Сумма, которая добавляется к стоимости товаров в заказе для оплаты услуг службы доставки. Если валюта цены отличается от валюты заказа, то происходит автоматический пересчет в валюту заказа по текущему курсу системы.


Создание и редактирование службы доставки

1C-Битрикс: Управление сайтом Отправить отзыв

Создание и редактирование настраиваемой службы доставки

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Форма создания и редактирования служит для задания параметров настраиваемой службы доставки, применяемой для отправки товаров магазина покупателям.

    Контекстная панель

    Ссылка | Описание
Список служб доставки | Переход на страницу со списком служб доставки.
Добавить службу | Переход на страницу с формой создания новой службы доставки. Кнопка отображается при редактировании уже существующей службы.
Удалить службу | Удаление редактируемой службы доставки. Кнопка отображается при редактировании уже существующей службы.

    Поля формы

    Поле | Описание
ID | Идентификатор службы доставки. Отображается в режиме редактирования.
*Название | Название службы доставки, как оно будет показано клиентам магазина при оформлении заказа.
*Сайт | Сайт, на котором действует эта служба доставки. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор служб доставки.
Сроки доставки | Указывается период времени (в часах, днях, месяцах), в течение которого товар, после его передачи в службу доставки, будет доставлен клиенту. Допустимо задание как диапазона значений, так и нижней или верхней границы срока доставки.
Вес | Указывается вес заказа, при котором возможен выбор данной службы доставки. Вес должен быть задан в тех же единицах, что и вес товаров, помещаемых в корзину (по умолчанию в граммах). Настройки веса устанавливаются в настройках модуля Интернет-магазина. Допустимо указание как диапазона значений веса, так и только одной границы диапазона (например, если в поле "от" указано 100, а в поле "до" не указано ничего или указан ноль, то служба доставки применяется при общем весе заказа от 100 до бесконечности).
Стоимость заказа | Задается стоимость заказа, при которой возможен выбор этой службы доставки. Если значение данного поля указано в валюте, отличной от валюты заказа, то происходит автоматический пересчет в валюту заказа по текущему курсу системы. Допустимо указание как диапазона значений стоимости, так и только одной границы диапазона (например, если в поле "от" не указано ничего или указан ноль, а в поле "до" указано 100, то служба доставки применяется при сумме заказа от 0 до 100).
Активна | Признак активности службы доставки. Покупателям интернет-магазина будут доступны только активные службы доставки.
Цена | Сумма, которая добавляется к стоимости товаров в заказе для оплаты услуг службы доставки. Если валюта цены отличается от валюты заказа, то происходит автоматический пересчет в валюту заказа по текущему курсу системы.
Сортировка | Относительный "вес" данной службы доставки. Используется при отображении службы в общем списке служб доставки.
Описание | Текст длиной до 250 символов, информирующий клиента об особых условиях доставки.
*Местоположение | Места, в которые данная служба доставляет товары на указанных условиях и по заданной цене. Вы можете выбрать одно или несколько местоположений. Для выбора нескольких местоположений, используйте клавишу Ctrl. Подробнее о местоположениях см. здесь.
*Группа местоположений | Группа местоположений, в которые данная служба доставляет товары на указанных условиях по заданной цене. Вы можете выбрать одну или несколько групп местоположений. Для выбора нескольких групп местоположений, используйте клавишу Ctrl. Подробнее о группах местоположений см. здесь.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком служб доставки.
Применить | Применение внесённых изменений. Продолжение редактирования параметров службы доставки.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.

    См. также

    Доставка


Автоматизированные службы доставки

В этом разделе

  • Контекстная панель
  • Список служб доставки
    •

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

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

    Вверху страницы выведен адрес магазина с индексом (либо адреса, если для каждого сайта системы задан свой адрес). А также ссылка на изменение адреса. Далее выведена подсказка, где хранить пользовательские обработчики доставки. Путь берется из настроек модуля Интернет-магазин.

    Контекстная панель

    Кнопка | Описание
Настраиваемые службы | Переход к списку настраиваемых служб доставки.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список автоматизированных служб доставки

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора служб доставки, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над службой доставки:
    • Редактировать - редактирование службы доставки;
    • Очистить настройки - все настройки службы доставки будут удалены, обработчик будет деинсталлирован.
    Акт. | Значок активности службы доставки.
    Сорт. | Индекс сортировки службы доставки, определяющий ее положение в общем списке.
    SID | Символьный идентификатор службы доставки.
    Название | Полное название службы доставки.
    Обработчик | Относительный путь к файлу-обработчику системы доставки.


Редактирование автоматизированной службы доставки

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Форма создания и редактирования служит для задания параметров настраиваемой службы доставки, применяемой для отправки товаров магазина покупателям.

    Контекстная панель

    Ссылка | Описание
Список служб доставки | Переход на страницу со списком служб доставки.
Добавить службу | Переход на страницу с формой создания новой службы доставки. Кнопка отображается при редактировании уже существующей службы.
Удалить службу | Удаление редактируемой службы доставки. Кнопка отображается при редактировании уже существующей службы.

    Поля формы

    Поле | Описание
ID | Идентификатор службы доставки. Отображается в режиме редактирования.
*Название | Название службы доставки, как оно будет показано клиентам магазина при оформлении заказа.
*Сайт | Сайт, на котором действует эта служба доставки. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор служб доставки.
Сроки доставки | Указывается период времени (в часах, днях, месяцах), в течение которого товар, после его передачи в службу доставки, будет доставлен клиенту. Допустимо задание как диапазона значений, так и нижней или верхней границы срока доставки.
Вес | Указывается вес заказа, при котором возможен выбор данной службы доставки. Вес должен быть задан в тех же единицах, что и вес товаров, помещаемых в корзину (по умолчанию в граммах). Настройки веса устанавливаются в настройках модуля Интернет-магазина. Допустимо указание как диапазона значений веса, так и только одной границы диапазона (например, если в поле "от" указано 100, а в поле "до" не указано ничего или указан ноль, то служба доставки применяется при общем весе заказа от 100 до бесконечности).
Стоимость заказа | Задается стоимость заказа, при которой возможен выбор этой службы доставки. Если значение данного поля указано в валюте, отличной от валюты заказа, то происходит автоматический пересчет в валюту заказа по текущему курсу системы. Допустимо указание как диапазона значений стоимости, так и только одной границы диапазона (например, если в поле "от" не указано ничего или указан ноль, а в поле "до" указано 100, то служба доставки применяется при сумме заказа от 0 до 100).
Активна | Признак активности службы доставки. Покупателям интернет-магазина будут доступны только активные службы доставки.
Цена | Сумма, которая добавляется к стоимости товаров в заказе для оплаты услуг службы доставки. Если валюта цены отличается от валюты заказа, то происходит автоматический пересчет в валюту заказа по текущему курсу системы.
Сортировка | Относительный "вес" данной службы доставки. Используется при отображении службы в общем списке служб доставки.
Описание | Текст длиной до 250 символов, информирующий клиента об особых условиях доставки.
*Местоположение | Места, в которые данная служба доставляет товары на указанных условиях и по заданной цене. Вы можете выбрать одно или несколько местоположений. Для выбора нескольких местоположений, используйте клавишу Ctrl. Подробнее о местоположениях см. здесь.
*Группа местоположений | Группа местоположений, в которые данная служба доставляет товары на указанных условиях по заданной цене. Вы можете выбрать одну или несколько групп местоположений. Для выбора нескольких групп местоположений, используйте клавишу Ctrl. Подробнее о группах местоположений см. здесь.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком служб доставки.
Применить | Применение внесённых изменений. Продолжение редактирования параметров службы доставки.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.

    См. также

    Доставка


Платежные системы

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список платежных систем

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

    • просматривать список существующих платежных систем;
    • осуществлять переход к созданию новой или редактированию существующей платежной системы;
    • удалять платежные системы.

    Форма поиска

    С помощью данной формы вы можете выполнить поиск платежных систем в соответствии с указанными условиями.

    Поле | Описание
Сайт | Определяет платежные системы каких сайтов будут участвовать в поиске.
Валюта | Определяет в какой валюте платежные системы будут участвовать в поиске.
Активность | Определяет какие платежные системы будут участвовать в поиске: активные, неактивные или все (активные и неактивные).

    Для того чтобы отобрать платежные системы по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех служб нажмите кнопку "Отменить".

    Контекстная панель

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

    Список платежных систем

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора платежных систем, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над платежной системой:
    • Изменить - изменение параметров платежной системы;
    • Удалить - удаление платежной системы.
    ID | Идентификатор платежной системы.
    Название | Название платежной системы.
    Сайт | Сайт, на котором действует данная платежная система. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор платежных систем.
    Валюта | Валюта, с которой работает данная платежная система.
    Акт. | Признак активности платежной системы.
    Сорт. | Относительный "вес" платежной системы. Влияет на положение данной системы в общем списке платежных систем.


Создание и редактирование платежной системы

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Закладка Платежная система
  • Закладка <Тип плательщика>
    •
  • Кнопки управления
  • Файлы-обработчики

    • В форме создания и редактирования платежной системы вы можете задать или изменить значения параметров системы.

    Контекстная панель

    Кнопка | Описание
Список платежных систем | Переход к странице со списком платежных систем.
Добавить платежную систему | Переход к форме создания новой платежной системы. Кнопка отображается при редактировании существующей платежной системы.
Удалить систему | Удаление редактируемой платежной системы. Кнопка отображается при редактировании существующей платежной системы.

    Форма редактирования

    Закладка "Платежная система"

    Данная форма служит для управления основными параметрами платежной системы.

    Поле | Описание
ID | Идентификатор платежной системы.
Сайт | Сайт, на котором действует данная платежная система. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор платежных систем.
*Валюты | Валюта, с которой работает данная платежная система.
*Название | Название платежной системы для отображения в административном разделе сайта.
Активность | Признак активности платежной системы.
Сортировка | Относительный "вес" платежной системы. Влияет на положение данной системы в общем списке платежных систем.
Описание | Текст длиной до 250 символов, информирующий клиента об особых условиях работы платежной системы.

    * - Поля являются обязательными для заполнения.

    Закладка "<Тип плательщика>"

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

    Обработка платежной системы
    Применяется для данного типа плательщика | Определяется, будет ли создаваемая платежная система доступна для данного типа плательщика.
    *Название | Название платежной системы, отображаемое в публичном разделе сайта для данного типа плательщика.
    *Обработчик | Выбирается файл-обработчик платежей, осуществляемых с помощью данной платежной системы.
    Открывать в новом окне | Флаг в данном поле означает, что если по результатам работы обработчика платежей пользователю должен быть представлен какой-либо результат (например, платежный документ), то он будет выведен в отдельном окне веб-браузера.
    Свойства обработчика Если выбранный вами обработчик платежной системы требует задания значений дополнительных свойств, то внизу секции будет выведен список этих свойств.
    • Для того чтобы скрыть список свойств, воспользуйтесь ссылкой Свернуть свойства обработчика.
    • Для того чтобы раскрыть список свойств, воспользуйтесь ссылкой Развернуть свойства обработчика.

    * - Поля являются обязательными для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком платежных систем.
Применить | Применение внесённых изменений. Продолжение редактирования параметров платежной системы.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.

    Файлы-обработчики

    Файлы работы с платежной системой обрабатываются следующим образом.

    • Файл-обработчик вызывается непосредственно после оформления заказа, а так же при выборе клиентом функции повторения платежа в персональном разделе. Этот файл может содержать скрипт, отображающий на экране необходимый платежный документ, или форму для отправки данных электронной платежной системе. Подробности смотрите в разделе Обработка платежных систем.
    • Обработчик результатов вызывается сайтом для запроса параметров оплаты заказа у электронной платежной системы. Если платежная система не возвращает параметры заказа (успешна ли оплата, сколько реально оплачено и т.п.), то задавать обработчик результатов не нужно.


Обработка платежных систем

В этом разделе

  • Пример файла-обработчика
  • Результаты обработки
  • Предустановленные шаблоны файлов

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

    Общая методика работы с файлами-обработчиками такова:

    • скопируйте необходимые вам шаблоны файлов-обработчиков из папки /bitrix/modules/sale/payment в раздел по умолчанию /bitrix/php_interface/include/sale_payment. Путь к пользовательским файлам-обработчикам платежных систем устанавливается в настройках модуля Интернет-магазина;
    • измените файлы в папке /bitrix/php_interface/include/payment таким образом, чтобы они удовлетворяли вашим нуждам и соответствовали интерфейсу соответствующих платежных систем. Типичные изменения, которые необходимо произвести в этих файлах: изменение тестовых номеров и паролей к платежным системам на реальные номера и пароли, полученные при регистрации в соответствующей платежной системе; добавление изображения оттиска печати и подписей к счету; изменение внешнего вида формы в соответствии с дизайном сайта и т.п.;
    • добавьте файлы-обработчики с интерфейсами других платежных систем, если они нужны;
    • введите / измените пути к файлам-обработчикам соответствующих платежных систем в форме управления платежными системами.

    Пример файла-обработчика

    Типичный файл-обработчик имеет следующий вид (на примере http://www.secpay.com)

<form name="secpay"
         action="https://www.secpay.com/java-bin/ValCard"
         method=POST>

<!-- Ваш код в системе -->
Merchant Id
<input type="hidden" name="merchant" value="secpay">

<!-- Уникальный номер транзакции -->
Transaction Id
<input type="hidden" name="trans_id"
          value="Invoice_<?echo $ORDER_ID ?>">

<!-- Сумма -->
The Amount
<input type="hidden" name="amount"
          value="<?echo $arOrder["PRICE"]?>">

<!-- Адреса для перехода в случае успешной
     и неуспешной оплаты соответственно -->
The Callback
<input type="hidden" name="callback"
          value="http://www.mysite.com/successcallback.html;http://www.mysite.com/failcallback.html">

<!-- Указание, что это тестовый запрос -->
<input type=hidden name="options"
          value="test_status=true,dups=false">

<!-- Дополнительные параметры -->
<input type=hidden name="font_face" value="Arial">
<input type=hidden name="bgcolor" value="white">
<input type="submit" value="Submit Order">

</form>

    Конкретный синтаксис (интерфейс общения) платежной системы необходимо уточнить в системе помощи (тех. поддержки) данной платежной системы.

    Результаты обработки

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

    • если платежная система позволяет запросить статус обработки заказа, то возможно создание файла получения результата. Такую возможность предоставляет, например, платежная система assist.ru. В файле получения результата (обработки результата) необходимо с помощью скрипта запросить платежную систему о статусе и параметрах заданного заказа, а потом сохранить полученную информацию. Файл получения результата будет вызываться на команду "Обновить статус" формы "Заказы" административного раздела сайта. Примером файла получения результата может служить файл получения результата от платежной системы assist.ru: /bitrix/php_interface/include/payment/assist_res.php. Путь к файлу получения результата соответствующей платежной системы должен быть задан в форме управления платежными системами.
    • если платежная система возвращает результат сразу в ответ на запрос обработки заказа, то соответствующий код должен быть вставлен в файл-обработчик этой платежной системы.

    Предустановленные шаблоны файлов

    Шаблоны расположены в каталоге /bitrix/modules/sale/payment/. Для изменения шаблонов под свои нужды скопируйте их в каталог /bitrix/php_interface/include/payment.

    Файл | Описание
assist.php | Файл-обработчик оплат по кредитной карте для системы assist.ru
assist_rapida.php | Файл-обработчик оплат по кредитной карте для системы «Рапида» через assist.ru
assist_res.php | Файл получения результата для системы assist.ru
betaling.php | Файл-обработчик оплат по кредитной карте для системы http://betaling.viborgnet.dk (западная система)
paycash.php | Файл-обработчик оплат для системы «Яндекс.Деньги»
paypal.php | Файл-обработчик оплат по кредитной карте для системы paypal.com (западная система)
post.php | Файл-обработчик оплат для почтового перевода.
sberbank.php | Файл-обработчик оплат для Сбербанка (печать квитанции)
webmoney.php | Файл-обработчик оплат для системы «Webmoney»


Типы плательщиков

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список типов плательщика

    • Форма Тип плательщика служит для управления списком типов плательщика, которые могут осуществлять заказы на сайте. Для каждого типа плательщика создаётся собственный список свойств, которые плательщик должен заполнить при оформлении заказа, а также указываются обработчики платежных систем, с помощью которых плательщик может оплатить заказ.

    Форма поиска

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

    Поле | Описание
Сайт | Позволяет отобрать типы плательщика, используемые на указанном сайте.

    Для того чтобы отобрать типы плательщика по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех типов плательщика нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить тип | Переход к форме создания нового типа плательщика.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список типов плательщика

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора типов плательщиков, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над типом плательщика:
    • Изменить - редактирование выбранного типа плательщика;
    • Удалить - удаление выбранного типа плательщика.
    ID | Идентификатор типа плательщика.
    Название | Название типа плательщика, как оно будет показано клиентам магазина при оформлении заказа.
    Сайт | Сайт, на котором действует этот тип плательщика. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор типов плательщиков.
    Сорт. | Относительный "вес" данного типа плательщика. Используется для определения порядка показа типов плательщика в списке.
    Свойства | Ссылка для перехода к просмотру свойств заказа, заданных для данного типа плательщика.


Создание и редактирование типа плательщика

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Данная форма служит для создания нового или настройки параметров уже существующего типа плательщика.

    Контекстная панель

    Кнопка | Описание
Список типов плательщиков | Переход на страницу со списком типов плательщика.
Создать новый тип | Переход к форме создания нового типа плательщика. Кнопка отображается при редактировании существующего типа плательщика.
Удалить тип | Удаление типа плательщика. Кнопка отображается при редактировании существующего типа плательщика.

    Форма редактирования

    Поле | Описание
ID | Идентификатор типа плательщика.
*Сайт | Сайт, на котором используется данный тип плательщика.
*Название | Название типа плательщика.
Индекс сортировки | Относительный "вес", влияющий на положение типа плательщика в общем списке.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров типа плательщика. Переход к списку типов плательщика.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров типа плательщика.
Отменить | Отмена выполненных изменений. Возврат первоначальных значений параметров.


Статусы

В этом разделе

  • Контекстная панель
  • Список статусов заказа

    • Форма Статусы заказа служит для управления информационными статусами заказов. Статусы заказа отражают этапы, через которые проходит заказ во время обработки. Вы можете создавать любое количество статусов заказа в зависимости от организации процесса обработки заказа. Например, Отложен, В обработке, Отгружен, В пути.

    Контекстная панель

    Кнопка | Описание
Новый статус | Переход к форме создания нового статуса.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список статусов заказа

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора статусов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над статусом:
    • Изменить параметры статуса - редактирование статуса;
    • Удалить статус - удаление статуса.
    Код | Уникальный символьный код статуса.
    Сорт. | Относительный "вес" статуса. Используется для определения положения данного статуса в общем списке.
    Название | Название и описание статуса. Эти данные будут отображаться клиентам в публичном разделе сайта.

    Обратите внимание! Существует два особых статуса заказа, удаление которых невозможно:
    N - начальный статус (название по умолчанию - Принят), в который заказ устанавливается при создании;
    F - финальный статус (название по умолчанию - Доставлен), в котором заказ считается выполненным (т.е. оплаченным и доставленным).


Создание и редактирование статуса заказа

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма служит для создания новых и изменения параметров уже существующих информационных статусов заказа.

    Контекстная панель

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

    Поля формы

    Поле | Описание
    *Код | Уникальный код статуса. Задается в виде 1 буквы латинского алфавита.
    Сортировка | Относительный "вес" статуса. Используется для определения положения данного статуса в общем списке статусов.
    *Название | Укажите название статуса для всех языков, используемых в системе.
    Описание | Задайте описание статуса для всех языков, используемых в системе.
    Права на доступ
    В данной части формы устанавливаются права на доступ к заказам в данном статусе.
    Поле | Описание
Группа пользователей | Выведены те группы пользователей, которые имеют в настройках модуля Интернет-магазин уровень доступа Обработка заказов.
Просмотр | Опция возможности просмотра заказа, который находится в редактируемом статусе, пользователями данной группы.
Флаг отмены | При отмеченной опции пользователь данной группы будет иметь возможность изменять флаг отмены в форме детального просмотра заказа, т.е. сможет отменить заказ.
Флаг доставки | При отмеченной опции пользователь данной группы будет иметь возможность изменять флаг доставки в форме детального просмотра заказа, т.е. сможет разрешить доставку товара.
Флаг оплаты | При отмеченной опции пользователь данной группы будет иметь возможность изменять флаг оплаты в форме детального просмотра заказа, т.е. переводить заказ в состояние "Оплачен".
Перевод в этот статус | Опция дает возможность пользователю данной группы переводить заказ в редактируемый статус.
Изменение | При наличии данной опции пользователю данной группы будет доступно действие Изменить параметры заказа в меню действий заказа.
Удаление | При наличии данной опции пользователю данной группы будет доступно действие Удалить заказ в меню действий заказа.

    * - Поля являются обязательными для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком статусов заказа.
Применить | Применение внесённых изменений. Продолжение редактирования параметров статуса заказа.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Свойства заказа

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список свойств заказа

    • Форма Свойства заказа служит для настройки списка свойств заказа, значения которых должны быть указаны клиентом интернет-магазина при оформлении заказа. Набор свойств заказа зависит от типа плательщика, выбранного клиентом при оформлении заказа.

    Форма поиска

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

    Поле | Описание
Тип плательщика | Поиск свойств заказа, заданных для определённого типа плательщика.
Тип свойства | Поиск свойств указанного типа (флажок, строка, список и т.д.).
Входит в профиль | Указывается, будут ли участвовать в поиске свойства, входящие в профиль покупателя.
Группа свойств | Позволяет провести поиск свойств по названию группы, к которой они относятся.

    Для того чтобы отобрать свойства заказа по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех свойств нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новое свойство | Переход к форме создания нового свойства заказа.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список свойств заказа

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора свойств заказа, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над свойством заказа:
    • Изменить параметры свойства - редактирование свойства заказа;
    • Удалить свойство - удаление свойства заказа.
    ID | Идентификатор свойства заказа.
    Тип плательщика | Тип плательщика, которому это свойство будет предложено для заполнения при оформлении заказа.
    Название | Название свойства, как оно будет показано клиенту магазина при оформлении заказа.
    Тип Тип свойства, может иметь следующие значения:
    • CHECKBOX - флажок;
    • TEXT - строка;
    • SELECT - выпадающий список выбора значения из предложенных вариантов;
    • MULTISELECT - список с возможностью множественного выбора;
    • TEXTAREA - текст;
    • LOCATION - местоположение;
    • RADIO - список переключателей.
    Обяз. Обязательно ли это свойство к заполнению.

    Свойства с установленными флагами Использовать как ... обязательны к заполнению вне зависимости от значения данного поля.
    Группа | Группа свойств, к которой принадлежит данное свойство. Группировка свойств используется исключительно для удобства представления и заполнения свойств в заказе.
    Профиль Определяет, входит ли свойство в профиль пользователя.

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

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


Добавление и редактирование свойств заказа

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список свойств заказа | Переход на страницу со списком свойств заказа.
Создать новое свойство | Переход к форме создания нового свойства для выбранного типа плательщика. Кнопка отображается при редактировании существующего свойства.
Удалить свойство | Удаление редактируемого свойства. Кнопка отображается при редактировании существующего свойства.

    Поля формы

    Поле | Описание
    ID | Уникальный идентификатор. Отображается в режиме редактирования свойства.
    Тип плательщика | Тип плательщика, которому это свойство будет предложено на заполнение.
    *Название | Название свойства, как оно будет показано клиенту магазина при оформлении заказа.
    Мнемонический код Код, однозначно идентифицирующий свойство. Используется для идентификации объекта "свойство заказа" в системе.

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

    *Тип Тип свойства, может иметь следующие значения:
    • CHECKBOX - флажок;
    • TEXT - строка;
    • SELECT - выпадающий список выбора значения из предложенных вариантов;
    • MULTISELECT - список с возможностью множественного выбора;
    • TEXTAREA - текст;
    • LOCATION - местоположение;
    • RADIO - список переключателей.
    Обязательное Определяет, обязательно ли это свойство к заполнению.

    Свойства с установленными флажками Использовать как... обязательны к заполнению, независимо от значения данного поля.

    Значение по умолчанию | Значение свойства, указываемое по умолчанию. Для свойств типа SELECT, MULTISELECT или RADIO в данном поле может быть указан код значения свойства, созданного в секции Значения списка.
    Сортировка | Относительный "вес" свойства заказа. Используется при выводе данного свойства в общем списке свойств заказа.
    Входит в профиль Определяет, входит ли свойство в профиль пользователя.

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

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

    Ссылка Группы свойств позволяет открыть в новом окне страницу со списком групп свойств заказа.
    Размер 1 В зависимости от типа поля:
    • длина поля ввода для свойства типа TEXT;
    • размер выпадающего списка для свойства типа SELECT, MULTISELECT и LOCATION;
    • количество колонок в поле ввода для свойства типа TEXTAREA.
    Если значение данного поля не задано (или установлено в ноль), то устанавливаются размеры по умолчанию.
    Размер 2 | Количество строк для свойства типа TEXTAREA. Если значение данного поля не задано (или установлено в ноль), то устанавливаются размеры по умолчанию.
    Описание свойства | Текст для информирования клиента об особенностях заполнения этого свойства. Данный текст выводится рядом с полем ввода значения свойства.
    Использовать как местоположение Значение свойства будет использовано как местоположение покупателя для расчёта стоимости доставки. Этот флажок можно отметить только у свойств типа LOCATION.

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

    Использовать как местоположение для налогов Значение свойства будет использовано как местоположение покупателя для определения ставок налогов. Этот флажок можно отметить только у свойств типа LOCATION.

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

    Для покупателя поле с этим флажком может называться Местоположение, Shipping Address, Billing Address и т.п.
    Использовать как E-Mail | Опция определяет использовать ли значение свойства как E-mail покупателя.
    Использовать как название профиля Значение свойства будет использовано как название профиля пользователя.

    Если свойство с флагом Использовать как название профиля для данного типа плательщика введено не будет, то новые профили будут называться как Профиль <дата>. Названием профиля может стать, например, свойство Фамилия получателя.
    Использовать как имя плательщика | Значением свойства будет являться имя плательщика, которое будет проставляться в платежных документах.
    Свойство доступно в фильтре по заказам | При отмеченной опции редактируемое свойство будет присутствовать в фильтре формы Заказы
    Значения списка
    Если свойство имеет тип SELECT, MULTISELECT или RADIO, то необходимо заполнить список возможных значений (вариантов выбора) этого свойства.
    Поле | Описание
Код | Код значения свойства.
Название | Название (возможное значение свойства), которое будет показано клиенту.
Сорт. | Относительный "вес" значения, влияющий на положение значения в списке. Используется для упорядочивания списка значений.
Описание | Описание этого значения (имеет смысл только для свойства типа RADIO)
Удалить | Для того чтобы удалить значение свойства, установите флаг в это поле и нажмите кнопку "Применить".

    Кнопка "Ещё" позволяет добавить пустую строку для создания значения свойства.

    Например, для свойства Пол типа SELECT можно задать следующие наборы "код-название-сортировка":

    • "N-не установлен-50";
    • "M-мужской-100";
    • "F-женский-150".

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком свойств заказа.
Применить | Применение внесённых изменений. Продолжение редактирования параметров свойства заказа.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Группы свойств

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список групп свойств

    • Форма Группы свойств служит для настройки групп свойств заказов. Данная группировка применяется при построении формы для ввода значений свойств заказа, что позволяет улучшить ее зрительное восприятие.
    Показ группы свойств в форме заказа зависит от типа плательщика, выбранного покупателем, т.е. для каждого типа плательщика отображается самостоятельный набор групп свойств.

    Форма поиска

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

    Поле | Описание
Тип плательщика | Поиск групп свойств по типу плательщика.

    Для того чтобы отобрать группы свойств по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех групп свойств нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новая группа | Переход к форме создания новой группы свойств.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список групп свойств

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора групп свойств, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над группой свойств заказа:
    • Изменить группу- редактирование параметров группы свойств;
    • Удалить группу- удаление группы свойств.
    ID | Идентификатор группы свойств.
    Название | Название группы свойств, как оно будет показано клиенту магазина при оформлении заказа.
    Тип плательщика | Тип плательщика, к которому привязана данная группа свойств.
    Сорт. | Относительный "вес" группы свойств. Определяет порядок, в котором группы свойств будут выводиться при оформлении заказа.
    Свойства | Ссылка для перехода к списку свойств, относящихся к данной группе.


Создание/редактирование группы свойств

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Контекстная панель

    Кнопка | Описание
Список групп свойств | Переход на страницу со списком групп свойств.
Создать новую группу свойств | Переход к форме создания новой группы свойств. Кнопка отображается при редактировании существующей группы.
Удалить группу свойств | Удаление редактируемой группы свойств. Кнопка отображается при редактировании существующей группы.

    Форма редактирования

    Поле | Описание
ID | Идентификатор группы свойств.
Тип плательщика | Тип плательщика, к которому привязана данная группа свойств.
* Название | Название группы свойств, как оно будет показано клиенту магазина при оформлении заказа.
Индекс сортировки | Относительный "вес" группы свойств. Определяет порядок, в котором группы свойств будут выводиться при оформлении заказа.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Поле | Описание
Сохранить | Сохранение параметров группы свойств. Переход на страницу со списком групп свойств заказа.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров группы свойств заказа.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Местоположения

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список местоположений
  • Загрузка местоположений из файла
  • Форма загрузки местоположений
  • Пример файла с местоположениями

    • Форма Местоположения служит для настройки списка местоположений, из которого клиент магазина будет выбирать место для доставки заказа. Затем выбранное место будет использовано для вывода списка доступных служб доставки, расчёта стоимости доставки, а также в качестве части фактического адреса доставки.

    Форма поиска

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

    Поле | Описание
Страна | Поиск местоположений по стране. Список стран представлен в виде поля со списком.
Страна | Поле для задания условий сложного поиска местоположений по странам.
Город | Поиск местоположения по городу. Возможно использование условий сложного поиска.

    Для того чтобы отобрать местоположения по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех местоположений нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить местоположение | Переход к форме создания нового местоположения.
Импорт местоположений | Переход на страницу импорта местоположений.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список местоположений

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора местоположений, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над местоположением:
    • Изменить параметры местоположения - редактирование местоположения.
    • Удалить местоположение- удаление местоположения.
    ID | Идентификатор местоположения.
    Страна | Страна местоположения.
    Город | Город местоположения.
    Сорт. | Относительный "вес" местоположения. Влияет на размещение местоположения в общем списке.

    Импорт местоположений

    Форма Загрузка местоположений

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

    Поле | Описание
Файл | Файл с местоположениями. С помощью кнопки "Обзор" вы можете выбрать необходимый файл на локальном компьютере.
Удалить местоположения перед загрузкой | Для того чтобы перед загрузкой новых местоположений удалить ранее созданные местоположения, установите флаг в это поле. Обратите внимание! Местоположения будут удалены даже в том случае, если они фигурируют в адресах существующих заказов.

    Пример файла для загрузки местоположений

en
S,en,Russian Federation,ru,Россия
T,en,Moscow,ru,Москва
T,en,Kaliningrad,ru,Калининград
S,en,Ukraine,ru,Украина
T,en,Kiev,ru,Киев
S,en,Estonia,ru,Эстония

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

    В остальных строках файла указываются загружаемые данные. Сначала указывается страна (строка начинается с "S"), потом все города этой страны (строки начинаются с "T"), потом следующая страна и т.д.

    Каждая строка имеет следующий формат (в самом файле строка не должна разрываться):

<Указатель страна/город (S/T)>,
<сайт (язык названия)>,<название для указанного перед этим сайта>,
<сайт (язык названия)>,<название для указанного перед этим сайта>...

    Названия должны быть указаны для всех языков. Если какие-либо из языков не существуют, то они будут проигнорированы.

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


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

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма служит для создания нового и управления параметрами уже существующего местоположения.

    Контекстная панель

    Кнопка | Описание
Список местоположений | Переход на страницу со списком местоположений.
Добавить | Переход к форме создания нового местоположения. Кнопка отображается при редактировании существующего местоположения.
Удалить | Удаление редактируемого местоположения.

    Поля формы

    Поле | Описание
ID | Уникальный идентификатор местоположения.
Сортировка | Относительный "вес" местоположения. Влияет на размещение местоположения в общем списке. Если для нескольких местоположений задано одинаковое значение данного поля, то сортировка производится по алфавиту.
Страна
*Страна | Выберите в этом поле страну для данного местоположения. Если необходимой страны в списке нет, то выберите пункт <Новая страна> и заполните форму Новая страна. Если страна выбрана из списка, то заполнять форму Новая страна не нужно.
Изменить текущую страну | Если в поле Страна выбрана одна из определённых стран, то, отметив данную опцию, можно изменить ее параметры: полные и краткие наименования.
Новая страна (в данной секции осуществляется добавление новой страны для создаваемого местоположения)
*Полное наименование | Укажите полное наименование страны для каждого языка, используемого в системе (например, Российская Федерация).
*Краткое наименование | Укажите краткое наименование страны для каждого языка, используемого в системе (например, России).
Город
Без города | Отметьте данное поле, если вы хотите ввести только страну без города. Если вы вводите новую страну и не отмечаете это поле (т.е. вводите сразу страну и город), то создаются две записи местоположений: страна без города и страна с указанным городом. При заполнении списка местоположений убедитесь, что для каждой страны есть местоположение с этой страной без указания города - в этом случае клиенты при заказе смогут выбрать это местоположение и ввести город вручную, если пары страна - город не существует.
Полное наименование | Укажите полное наименование города для каждого языка, используемого в системе.
Краткое наименование | Укажите краткое наименование города для каждого языка, используемого в системе.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком местоположений.
Применить | Применение внесённых изменений. Продолжение редактирования параметров местоположения.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Группы местоположений

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список групп местоположений

    • Форма Группы местоположений служит для объединения местоположений в группы. Это облегчает работу с настройкой служб доставки. Вы можете создать группу местоположений и привязать к ней все службы доставки, которые осуществляют доставку в местоположения этой группы.

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

    Форма поиска

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

    Поле | Описание
Местоположение | Поиск групп по названию входящего в них местоположения.

    Для того чтобы отобрать группы местоположений по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех групп местоположений нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новая группа | Переход к форме создания новой группы местоположений.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список групп местоположений

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора групп местоположений, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над группой местоположений:
    • Изменить параметры группы местоположений - редактирование группы местоположений;
    • Удалить группу местоположений - удаление группы местоположений. Удаление группы не влечет за собой удаление местоположений, входящих в эту группу.
    ID | Идентификатор группы в системе.
    Название | Название группы местоположений.
    Сортировка | Относительный "вес", влияющий на положение группы в общем списке.


Создание и редактирование группы местоположений

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма служит для задания свойств новой и редактирования параметров уже существующей группы местоположений.

    Контекстная панель

    Кнопка | Описание
Список групп местоположений | Переход на страницу со списком групп местоположений.
Добавить группу | Переход на страницу со списком групп местоположений. Кнопка отображается при редактировании существующей группы.
Удалить группу | Удаление редактируемой группы местоположений. Кнопка отображается при редактировании существующей группы.

    Поля формы

    Поле | Описание
ID | Уникальный идентификатор группы местоположений.
Сортировка | Относительный "вес", влияющий на положение данной группы местоположений в общем списке.
*Местоположения, входящие в группу | Выделите те местоположения, которые будут входить в данную группу. Для множественного выбора выделяйте местоположения с нажатой кнопкой Ctrl.
*Название | Название группы местоположений, для каждого языка, используемого в системе.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком групп местоположений.
Применить | Применение внесённых изменений. Продолжение редактирования параметров группы местоположений.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Импорт местоположений

В этом разделе

  • Мастер импорта местоположений
  • Загрузка местоположений из файла
  • Форма загрузки местоположений
  • Пример файла с местоположениями

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

    Мастер импорта местоположений

    Для удобства импорта местоположений в систему создан мастер загрузки местоположений. Для запуска мастера служит кнопка Запустить мастер импорта местоположений на закладке Импорт. На каждом шаге мастер предлагает к заполнению различные параметры: какие города загружать, удалять ли прежние данные и т.д. При работе с мастером импорта файлы местоположений загружать не требуется.

    Закладка "Импорт из файла"

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

    Поле | Описание
Файл | Файл с местоположениями. С помощью кнопки "Обзор" вы можете выбрать необходимый файл на локальном компьютере.
Удалить местоположения перед загрузкой | Для того чтобы перед загрузкой новых местоположений удалить ранее созданные местоположения, установите флаг в это поле. Обратите внимание! Местоположения будут удалены даже в том случае, если они фигурируют в адресах существующих заказов.

    Пример файла для загрузки местоположений

en
S,en,Russian Federation,ru,Россия
T,en,Moscow,ru,Москва
T,en,Kaliningrad,ru,Калининград
S,en,Ukraine,ru,Украина
T,en,Kiev,ru,Киев
S,en,Estonia,ru,Эстония

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

    В остальных строках файла указываются загружаемые данные. Сначала указывается страна (строка начинается с "S"), потом все города этой страны (строки начинаются с "T"), потом следующая страна и т.д.

    Каждая строка имеет следующий формат (в самом файле строка не должна разрываться):

<Указатель страна/город (S/T)>,
<сайт (язык названия)>,<название для указанного перед этим сайта>,
<сайт (язык названия)>,<название для указанного перед этим сайта>...

    Названия должны быть указаны для всех языков. Если какие-либо из языков не существуют, то они будут проигнорированы.

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


Управление налогами

В этом разделе

  • Настройка налогов
  • Настройка ставок налогов
  • Освобождение от налогов
    •

    Если в системе установлены налоги, то они учитываются при определении стоимости заказа. Общая структура налогов в модуле продаж такова:

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

    Настройка налогов

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

    Настройка ставок налогов

    Ставки налогов настраиваются на странице настроек ставок налогов (Магазин -> Налоги -> Ставки налогов). На этой странице для налогов вводятся ставки в зависимости от местоположения покупателя и его типа плательщика (тип плательщика не обязателен).

    Для расчёта налогов для данного заказа будут выбираться все ставки налогов, удовлетворяющие следующим условиям:

    • налог, к которому относится данная ставка, принадлежит тому сайту, на котором производится заказ;
    • местоположение, указанное покупателем в свойстве, у которого стоит флажок "Использовать как местоположение для налогов", должно входить в список местоположений, на которые действует данная ставка;
    • тип плательщика, установленный для данной ставки, совпадает с типом плательщика, выбранным покупателем при оформлении заказа, либо для данной ставки тип плательщика не установлен;
    • данная ставка налога активна.

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

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

    • Ставки налогов применяются по порядку в соответствии со значениями в поле "Порядок применения" ставок налогов, начиная с наименьшего.
    • Ставка налога с данным порядком применения применяется к сумме, в которой уже учтены все налоги с меньшим порядком применения. Другими словами действуют сложные проценты (проценты на проценты).
    • Если ставки налогов имеют один и тот же порядок применения, то они складываются, т.е. они применяются к одной и той же сумме.

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

    Пусть покупается товар стоимостью 25 рублей. Скидка при покупке на сумму более 20 рублей равна 2%. Пусть данному заказу соответствуют следующие ставки налогов:

    • Налог 1 со ставкой 18.5% и порядком применения 100;
    • Налог 2 со ставкой 2.7% и порядком применения 100;
    • Налог 3 со ставкой 3% и порядком применения 200.

    Тогда стоимость товара с учётом скидки будет равна 24,5 рубля (25 - 25 * 2 / 100).

    Налог 1 будет равен 4,53 рубля (24.5 * 18.5 / 100). "Налог 2" будет равен 0,66 рубля (24.5 * 2.7 / 100). После применения Налога 1 и Налога 2 стоимость заказа будет равна 29,69 рублей (24.5 + 4.53 + 0.66).

    Налог 3 будет равен 0,89 рубля (29.69 * 3 / 100).

    После применения скидки и всех налогов стоимость заказа будет составлять 30,58 рублей (29.69 + 0.89). Далее в эту стоимость должна быть включена стоимость доставки.

    Освобождение от налогов

    Эта функциональная возможность применяется, если существуют покупатели, которые освобождены от уплаты части налогов. Создайте специальную группу пользователей, выберите ее на странице настроек освобождения от налогов (Магазин -> Налоги -> Освобождение от налогов) и укажите, какие налоги не нужно применять к членам этой группы.

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


Налоги

В этом разделе

  • Контекстная панель
  • Список налогов

    • Форма Налоги служит для настройки налогов, применяемых для расчёта стоимости заказа. На этой странице вводится список налогов, которые могут быть задействованы на сайте. Каждый налог зависит от сайта. Например, на русскоязычном сайте будут учитываться только те налоги, которые введены для этого сайта.

    Контекстная панель

    Кнопка | Описание
Новый налог | Переход к форме создания нового налога.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

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

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора налогов, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, которые могут быть применены к налогу:
    • Изменить параметры налога - редактирование налога;
    • Удалить налог- удаление налога.
    Код | Код налога в системе.
    Дата изменения | Дата последнего изменения налога.
    Сайт | Сайт, на котором действует налог.
    Название | Название налога.
    Мнемонический код | Символьный код налога. Задается символами латинского алфавита.
    Ставки | Количество заданных ставок налога. количество ставок представлено в виде ссылки на страницу со списком этих ставок.

    См. также

  • Управление налогами
    •


Создание и редактирование налогов

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма предназначена для создания нового и редактирования параметров уже существующего налога.

    Контекстная панель

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

    Поля формы

    Поле | Описание
Код | Код налога в системе.
Дата изменения | Дата и время последнего изменения налога.
Сайт | Сайт, на котором действует налог.
Название | Название налога.
Мнемонический код | Код, однозначно идентифицирующий данный налог. Используется для идентификации объекта "налог" в системе. Примечание: Поле предназначено для использования разработчиками. Значение поля указывается латинскими символами.
Описание | Произвольное описание налога.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком налогов.
Применить | Применение внесённых изменений. Продолжение редактирования параметров налога.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Ставки налогов

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список ставок налогов

    • В форме Ставки налогов представлен список всех заданных ставок налогов. С помощью данной формы вы можете:

    • добавлять новые ставки налогов;
    • переходить к форме редактирования ставок;
    • удалять ставки налогов.

    Форма поиска

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

    Поле | Описание
Налог | Название налога, ставки для которого следует отобрать.
Сайт | Сайт, на котором действует ставка.
Тип плательщика | Тип плательщика, ставки для которого следует отобрать.
Местоположение | Местоположение, ставки налогов для которых следует отобрать.

    Для того чтобы отобрать ставки налога по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех ставок нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новая ставка налога | Переход к форме создания новой ставки налога.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список ставок налогов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора ставок налога, к которым предполагается применить какое-либо правило или действие.
    Действия Действия, которые могут быть применены к ставке:
    • Изменить параметры ставки налога - редактирование ставки налога;
    • Удалить ставку налога - удаление ставки налога.
    ID | Код ставки налога.
    Дата изменения | Дата и время последнего изменения ставки налога.
    Название | Название налога, для которого задана ставка.
    Тип плательщика | Тип плательщика, к которому применима данная ставка налога.
    Ставка | Величина ставки налога.
    Входит в цену | Указывает, включен ли данный налог в цену товара.
    Порядок применения | Ставки налога с одинаковым порядком применения складываются, с разными - образуют сложные проценты (проценты на проценты).

    См. также

    Управление налогами


Создание и редактирование ставок налогов

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма предназначена для создания новых и редактирования уже существующих ставок налогов.

    Контекстная панель

    Кнопка | Описание
Список ставок налогов | Переход на страницу со списком ставок налогов.
Добавить ставку | Переход к форме создания новой ставки налога. Кнопка отображается при редактировании существующей ставки.
Удалить ставку | Удаление редактируемой ставки налога. Кнопка отображается при редактировании существующей ставки.

    Поля формы

    Поле | Описание
ID | Код ставки.
Дата изменения | Дата изменения ставки налога.
*Налог | Название налога, для которого задана данная ставка.
Активность | Признак активности ставки. Только активные ставки налога могут применяться при расчёте стоимости заказа.
Тип плательщика | Тип плательщика, к которому применима данная ставка налога.
*Ставка | Величина ставки налога.
Входит в цену | Указывает, включен ли данный налог в цену товара или нет.
*Порядок применения | Ставки налога с одинаковым порядком применения складываются, с разными - образуют сложные проценты (проценты на проценты).
**Местоположения | Указываются местоположения, в которых будет применяться данная ставка налога.
**Группы местоположений | Выбирается группа(-ы), в местоположениях которой будет применяться данная ставка налогов.

    * - Поля являются обязательными для заполнения.

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком ставок налогов.
Применить | Применение внесённых изменений. Продолжение редактирования параметров ставки налога.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Освобождение от налогов

Форма Освобождение от налогов содержит список пользователей сайта, освобождаемых от уплаты каких-либо налогов при покупке товара в интернет-магазине.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список клиентов, освобождаемых от налогов

Поле | Описание
Действия Действия над записью об осовобождении от уплаты налогов:
  • Изменить освобождение от налогов - редактирование записи об освобождении от налогов для данной группы пользователей.
Код | Код записи об освобождении от уплаты налогов.
Дата изменения | Дата последнего изменения записи.
Группа пользователей | Группы пользователей сайта, к которым применяется освобождение от налогов.
Описание группы пользователей | Описание группы пользователей, заданное при создании данной группы.
Налоги | Перечень налогов, от уплаты которых освобождена данная группа пользователей.

См. также

Управление налогами


Настройка освобождения от налогов

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

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

    Контекстная панель

    Кнопка | Описание
Список групп пользователей | Переход на страницу со списком записей об освобождении от уплаты налогов.

    Поля формы

    Поле | Описание
Код | Код записи об освобождении от уплаты налогов.
Группа пользователей | Группы пользователей сайта, к которым применяется освобождение от налогов.
Описание группы пользователей | Описание группы пользователей, заданное при создании группы.
Освобождение от налогов | Список налогов, от уплаты которых может быть освобождена данная группа пользователей. Для выбора нескольких налогов удерживайте клавишу Ctrl.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком записей об освобождении от уплаты налогов.
Применить | Применение внесённых изменений. Продолжение редактирования параметров записи.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Интеграция с "1С:Предприятие"

В этом разделе

  • Закладка "Каталог"
  • Закладка "Заказы"
  • Обмен данными с "1С-Предприятие 8"

    • Форма служит для настройки параметров импорта каталога (закладка Каталог) и для настройки параметров обмена заказами (закладка Заказы). Для перехода к форме выберите: Магазин-> Настройки магазина -> Интеграция с 1С.

    Закладка "Каталог"

    Форма служит для настройки интеграции с "1С:Предприятием" на стороне 1С-Битрикс.

    Поле | Описание
    Тип инфоблока | В выпадающем списке списке перечислены все уже созданные в системе типы инфоблоков. При выборе пункта "Создать по необходимости" в случае отсутствия необходимого типа инфоблока, будет создан новый.
    Привязывать вновь создаваемые инфоблоки к сайтам | Определяется сайт, к которому будут привязываться новые инфоблоки, создаваемые при импорте. Привязка может производиться либо к текущему сайту, либо к одному определённому сайту из имеющихся в системе.
    Интервал одного шага в секундах | Указывается интервал одного шага в секундах при импорте каталога в систему. 0 - выполнять загрузку за один шаг.
    Разрешить загрузку группам пользователей | Указывается группа(-ы) пользователей, обладающие правом загрузки каталога на сайт.
    Что делать с элементами отсутствующими в файле импорта Указывается действие с элементами, которые есть в системе, но отсутствуют в файле импорта:
    • удалить - удалить такие элементы;
    • ничего - игнорировать, т.е. никаких действий не совершать;
    • деактивировать - сделать такие элементы неактивными.
    Что делать с разделами отсутствующими в файле импорта Указывается действие с разделами, которые есть в системе, но отсутствуют в файле импорта:
    • удалить - удалить такие разделы;
    • ничего - игнорировать, т.е. никаких действий не совершать;
    • деактивировать - сделать такие разделы неактивными.
    Размер единовременно загружаемой части файла (в байтах) | Указывается размер в байтах - второе ограничение для пошаговой загрузки файла в систему.
    Использовать контрольные суммы элементов для оптимизации обновления каталога | Суть механизма заключается в том, что если на сайт выгружен полный каталог, то изменению подвергнуться только изменившиеся элементы, что значительно снизит нагрузку на сервер и позволит процедуре обновления отработать значительно быстрее.
    Использовать сжатие zip, если доступно | При отмеченной опции данные сжимаются ZIP форматом (если доступно). Это позволяет заметно уменьшить XML файлы.
    Автоматически генерировать картинку анонса | При отмеченной опции 1С-Битрикс на основании фотографий, которые поступают из 1С будет самостоятельно генерировать картинку анонса (защита от поступления из 1С больших фотографий).
    Максимально допустимая ширина картинки анонса | При отмеченной опции Автоматически генерировать картинку анонса в данном поле определяется максимальная ширина картинки анонса в пикселях.
    Максимально допустимая высота картинки анонса | При отмеченной опции Автоматически генерировать картинку анонса в данном поле определяется максимальная высота картинки анонса в пикселях.
    Изменять детальную картинку | При отмеченной опции 1С-Битрикс на основании фотографий, которые поступают из 1С будет самостоятельно изменять детальную картинку (защита от поступления из 1С больших фотографий).
    Максимально допустимая ширина детальной картинки | При отмеченной опции Изменять детальную картинку в данном поле определяется максимальная ширина детальной картинки в пикселях.
    Максимально допустимая высота детальной картинки | При отмеченной опции Изменять детальную картинку в данном поле определяется максимальная высота детальной картинки в пикселях.

    Закладка "Заказы"

    Форма служит для настройки параметров обмена заказами с 1С на стороне системы 1С-Битрикс.

    Поле | Описание
Сайт, заказы которого выгружать в "1С:Предприятие" | Укажите сайт, заказы с которого вы будет принимать в 1С. Т.е. в системе можно создать несколько Интернет-магазинов, а обрабатывать их в одной 1С. Либо заказы с разных сайтов можно выгружать в разные учетные системы.
Выгружать только оплаченные заказы | При отмеченной опции в 1С будут выгружаться только оплаченные заказы.
Выгружать только заказы c разрешенной доставкой | При отмеченной опции в 1С будут выгружаться только заказы с разрешенной доставкой.
Выгружать только заказы в статусе | Указывается, заказы в каком статусе выгружать в 1С. Если указано Не выбрано, то заказы по статусам выбираться не будут.
Статус, в который переводить заказ при получении отгрузки от "1С:Предприятие" | Укажите статус, в который будет переводиться заказ при условии, что в 1С отгрузка товара по данному заказу проведена и информация об этом поступила на сайт.
Заменять валюту при выгрузке в "1С:Предприятие" на | При выгрузке заказов в "1С: Предприятие" валюта товаров (т.е. наименование товаров) будет заменена на указанную. Конвертация при этом не происходит.
Группы, пользователям которых разрешена выгрузка | Выберите группы пользователей, которые будут иметь права на выгрузку заказов в 1С.
Использовать сжатие zip, если доступно | Установите флаг, чтобы при передаче данных использовалось сжатие zip, если оно доступно.

    Обмен данными с "1С-Предприятие 8"

    Начиная с версии продуктов "1С: Предприятие 8", редакция Управление торговлей, версия 10.3.2.4 и "1С-Битрикс: Управление сайтом" версия 6.5, редакции Малый бизнес и Бизнес поставляются со встроенными процедурами взаимодействия.

    Для реализации обмена данными между "1C-Битрикс: Управление сайтом" и "1С: Предприятие" необходимо произвести настройки с обеих сторон.

    Важно!
    Непосредственно обмен данными между 1С и 1С-Битрикс всегда инициируется со стороны 1С. Запрос на обмен данными со стороны сайта технически реализовать возможно, но исключен по соображениям безопасности.

    Для обмена данными выполняем следующие действия со стороны "1С-Предприятие 8":

    1. В 1С выбираем пункт меню Сервис -> Обмен данными с WEB-сайтом -> Настроить обмен данными с WEB-сайтом
      Тем самым запустим мастер настройки обмена данными с WEB сайтом.
      Он позволяет:
      • создавать любое количество настроек обмена данными;
      • изменять существующие настройки.
    2. Укажите на каждом шаге мастера нужные параметры обмена;
    3. В финале работы мастера будет выведено сообщение с вопросом, запустить ли мастер сейчас;
    4. Если уже создан нужный профайл обмена данными, то для выполнения отложенного обмена с сайтом выберите пункт меню Сервисы -> Обмен данными с WEB-сайтом -> Выполнить обмен данными с WEB-сайтом
    5. В выведенной форме Выполнение обмена данными выберите нужный профайл и нажмите кнопку Выполнить обмен;
    6. Если необходимо изменить существующий профайл, то можно выполнить это с помощью мастера настройки обмена данными (на первом шаге выбрать пункт Изменить существующую настройку обмена с WEB-сайтом) либо из формы Выполнение обмена данными (кнопка [image] рядом с профайлом);
    7. Настройки со стороны 1С-Битрикс производятся в форме Интеграция с 1С.


Настройка модуля

В этом разделе

  • Форма настроек
  • Настройки
  • Параметры веса
  • Адрес магазина
  • Пластиковые карты
  • Права на заказы
  • Экспорт в "1С:Предприятие"
  • Доступ
    •
  • Кнопки управления
    •

    После того, как вы установили модуль Интернет-магазина, прежде чем начать работу с ним, необходимо правильно этот модуль настроить. Для этого перейдите на страницу глобальных настроек модуля: Настройки -> Настройки продукта -> Настройки модулей -> Интернет-магазин (пункт меню).

    Форма настроек

    Закладка "Настройки"

    Данная форма служит для настройки основных параметров модуля Интернет-магазина.

    Поле | Описание
    E-Mail отдела заказов | E-Mail, на который по умолчанию будут направляться информационные сообщения модуля Интернет-магазин. Например, сообщения об оформлении, оплате или отмене заказа и т.д.
    E-Mail по умолчанию для регистрации Используется для упрощённой процедуры оформления заказа. Совершать покупки в Интернет-магазине могут только зарегистрированные пользователи сайта. Если покупатель не был прежде зарегистрирован в системе, то система автоматически создает регистрационные данные покупателя (логин и пароль), а в качестве E-mail адреса покупателя используется адрес, указанный в данном поле.

    Если для заказа создано свойство, в котором при оформлении заказа покупатель должен указать свой E-mail адрес, то вместо адреса "по умолчанию" будет использован адрес, указанный покупателем (см. раздел Свойства заказа).
    Сохранять корзину (дней) | Период времени (в днях), в течение которого корзина, сформированная покупателем, будет сохраняться в системе.
    Путь к пользовательским файлам-обработчикам платежных систем | Если для организации оплаты заказов на сайте используются собственные платежные системы, то в этом поле необходимо указать путь к папке с файлами-обработчиками для данных платежных систем.
    Файл с пользовательской формой просмотра заказа Система 1С-Битрикс: Управление сайтом позволяет создать и использовать собственную (кастомизированную) форму для просмотра заказов. В данном поле указывается путь к файлу, содержащему пользовательскую форму.

    Кастомизированная форма просмотра заказов создаётся аналогично форме создания/редактирования элементов информационных блоков.
    Фиксировать модуль Торгового каталога (catalog) в качестве каталога товаров | Если вы планируете осуществлять продажу товаров только из модуля Торгового каталога, установите флаг в данном поле. В этом случае при формировании/редактировании заказа выбор товара будет осуществляться из списка товаров модуля Торгового каталога.
    Название параметра, в котором приходит код аффилиата | Указывается название переменной, значением которой будет код аффилиата. Параметр будет входить в аффилиатскую ссылку для идентификации аффилиата, например, www.testsite.ru/index.php?partner=1
    Показывать сумму заказов в списке заказов для менеджеров магазина | При отмеченной опции для менеджеров магазина будет показана сумма заказов в списке заказов. При полном доступе к модулю Интернет-магазин эта сумма будет выведена всегда независимо от данной опции.
    Путь к файлу с таблицей мер и весов | Путь к файлу, содержащему массив мер и весов, например, /bitrix/modules/sale/measurements.php
    Путь к собственным обработчикам расширенных систем доставки | Определяется каталог, в котором будут храниться собственные обработчики автоматизированных систем доставки, например, /bitrix/php_interface/include/sale_delivery/
    Валюта "по умолчанию" | Валюта, используемая по умолчанию для представления данных о стоимости товаров, сумме продаж и т.д. в административном разделе.
    Планы аффилиатов делятся по В плане аффилиата фиксируется комиссия, которую он будет получать за привлечение клиентов и последующую продажу товаров. План может зависеть от количества проданных товаров либо от суммы продаж. Это определяется данной настройкой, ее возможные значения:
    • по количеству продаж
    • по сумме продаж

    Закладка "Параметры веса"

    Форма служит для настройки единиц веса.

    Поле | Описание
    Использовать индивидуальные настройки для каждого сайта | Опция служит для разделения настроек веса для всех сайтов системы.
    Настройки для сайта | Список всех сайтов системы. Для каждого из них могут быть введены свои настройки веса.
    Настройка | Значение
Единица | Список всех имеющихся мер весов.
Обозначение единицы веса | Можно ввести своё обозначение единицы веса, если требуется.
Коэффициент единицы веса к грамму | Вводится обозначение единицы веса к грамму.

    Закладка "Адрес магазина"

    Форма служит для ввода физического адреса магазина.

    Поле | Описание
    Использовать индивидуальные настройки для каждого сайта | Опция служит для разделения данных адреса по всем сайтам системы.
    Настройки для сайта | Список всех сайтов системы. Для каждого из них могут быть введены свои адреса магазина.
    Настройка | Значение
Индекс | Индекс магазина.
Местоположение | Из списка выбирается одно из загруженных в систему местоположений.

    Закладка "Пластиковые карты"

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

    Поле | Описание
    Абсолютный путь к файлу с ключом | Полный путь к файлу с паролем для шифрации номеров пластиковых карт. Например, d:/projects/siteman/bitrix/modules/sale/install/data.php.
    Алгоритм шифрования Алгоритм шифрования номеров пластиковых карт:
    • RC4;
    • AES (Rijndael) - для использования данного алгоритма необходимо наличие PHP модуля Mcrypt;
    • 3DES (Triple - DES) - для использования данного алгоритма необходимо наличие PHP модуля Mcrypt.

    Важно! Результаты работы алгоритмов несовместимы между собой. Вы не должны менять алгоритм, если в системе уже есть зашифрованные данные.

    Закладка "Права на заказы"

    Эта форма служит для управления правами пользователей на доступ к управлению заказами.

    Дополнительные параметры сайтов
Сайт | Название сайта.
Валюта | Валюта, используемая в публичной части сайта. При формировании заказа стоимость товаров и сумма заказа будут представлены в валюте сайта. При этом пересчет стоимости товаров (если стоимость была задана в иной валюте) будет осуществлять по установленному в модуле Валюты курсу.
Группы, имеющие доступ к заказам сайта | Группы пользователей, обладающие правом доступа к управлению заказами сайта.

    Закладка "Экспорт в "1С-Предприятие"

    На данной закладке производится настройка соответствий полей для экспорта в "1С-Предприятие". В "1C" существует два типа плательщика: физическое лицо и юридическое лицо. Для каждого из типов существует набор полей, необходимых "1C". Для этих полей производится настройка соответствий с параметрами системы.

    Поле | Значение
    Имя поля | Перечислены все поля, необходимые "1C" по данному типу плательщика.
    Тип Выбирается один из типов соответствия:
    • Параметр пользователя
    • Параметр заказа
    • Свойство заказа
    • Другое значение
    Значение | В зависимости от выбранного типа соответствия, выбирается значение поля в системе. Например, для типа Параметр пользователя в качестве значения выбирается одно из полей профиля пользователя. Если тип Парметр заказа, то в качестве значения может быть выбран Код заказа, Дата заказа, Сумма счета и т.д. Также можно ввести любое другое значение.

    Закладка "Доступ"

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

    Поле | Описание
    По умолчанию | Позволяет изменять настройки уровня доступа для всех групп пользователей, имеющих право доступа "по умолчанию".
    [Группа пользователей] Изменение настроек доступа для конкретной группы. Возможно назначение следующих прав доступа к модулю Интернет-магазин:
    • закрыт- запрет на доступ;
    • просмотр без модификации - разрешается только просмотр файлов и параметров модуля;
    • обработка заказов- пользователи с данным уровнем прав получают доступ к обработке заказов, поступающих от покупателей;
    • полный доступ - право на полный доступ к управлению модулем, в том числе на обработку заказов и управление правами доступа других групп пользователей.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.
По умолчанию | Установка значений свойств модуля равными значениям по умолчанию.


Калькулятор доставки (AJAX)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Калькулятор доставки (AJAX)"

Одностраничный компонент.
Компонент выводит динамический калькулятор доставки. Используется, например, в шаблоне компонента Процедура оформления заказа (bitrix:sale.order.full) .

Пример вызова

...
<?$APPLICATION->IncludeComponent('bitrix:sale.ajax.delivery.calculator', '', array(
    "NO_AJAX" => $arParams["SHOW_AJAX_DELIVERY_LINK"] == 'S' ? 'Y' : 'N',
    "DELIVERY" => $delivery_id,
    "PROFILE" => $profile_id,
    "ORDER_WEIGHT" => $arResult["ORDER_WEIGHT"],
    "ORDER_PRICE" => $arResult["ORDER_PRICE"],
    "LOCATION_TO" => $arResult["DELIVERY_LOCATION"],
    "CURRENCY" => $arResult["BASE_LANG_CURRENCY"],
    ));
?>
...


AJAX-местоположения

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "AJAX-местоположения"

Одностраничный компонент.
Компонент выводит динамическую форму выбора местоположений. Используется в шаблоне компонента Процедура оформления заказа (bitrix:sale.order.full) .

Примеры вызова

<?$APPLICATION->IncludeComponent(
"bitrix:sale.ajax.locations",
"",
Array(
    "CITY_OUT_LOCATION" => "Y",
    "COUNTRY_INPUT_NAME" => "COUNTRY",
    "CITY_INPUT_NAME" => "LOCATION",
    "COUNTRY" => "2",
    "ONCITYCHANGE" => ""
)
);?>

...
if ($arParams["USE_AJAX_LOCATIONS"] == "Y"):
    $GLOBALS["APPLICATION"]->IncludeComponent(
    'bitrix:sale.ajax.locations',
    '',
    array(
    "AJAX_CALL" => "N",
    "COUNTRY_INPUT_NAME" => "COUNTRY_".$arProperties["FIELD_NAME"],
    "CITY_INPUT_NAME" => $arProperties["FIELD_NAME"],
    "CITY_OUT_LOCATION" => "Y",
    "LOCATION_VALUE" => $value,
));
...

Описание параметров

Основные параметры
CITY_OUT_LOCATION
[Y|N] Возвращать ID местоположения (в противном случае - города). Если опция установлена, то обработчик будет возвращать ID местоположения.
COUNTRY_INPUT_NAME
Имя поля формы для страны. Значение по умолчанию COUNTRY.
CITY_INPUT_NAME
Имя поля формы для города (местоположения). Значение по умолчанию LOCATION.
COUNTRY
Стартовое значение страны. Из списка стран можно установить номер одной страны, которая будет отображена первой в списке.
ONCITYCHANGE
Обработчик смены значения города (местоположения). Можно указать имя клиентской функции-обработчика события "выбор города".


Компонент "Подключение обработчика результата платежной системы"

Одностраничный компонент.
Компонент осуществляет подключение скрипта для получения результата от платежной системы.

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.order.payment.receive",
        "",
        Array(
            "PAY_SYSTEM_ID" => "4"
        )
);?>

Описание параметров

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


Компонент "Подключение платежной системы"

Одностраничный компонент.
Компонент осуществляет подключение платежной системы. Компонент применяется в тех случаях, когда обработчик платежной системы должен открываться в новом окне.

Пример вызова

<?
$APPLICATION->IncludeComponent(
    "bitrix:sale.order.payment",
    "",
    Array(
    )
);?>

Описание параметров

Компонент принимает единственный параметр - ORDER_ID (ID заказа).


Компонент "Процедура оформления заказа"

Одностраничный компонент.
Компонент строит процедуру оформления заказа.

Пример вызова

<<?$APPLICATION->IncludeComponent("bitrix:sale.order.full","",Array(
     "PATH_TO_BASKET" => "basket.php",
     "PATH_TO_PERSONAL" => "index.php",
     "PATH_TO_AUTH" => "/auth.php",
     "PATH_TO_PAYMENT" => "payment.php",
     "ALLOW_PAY_FROM_ACCOUNT" => "Y",
     "SHOW_MENU" => "Y",
     "USE_AJAX_LOCATIONS" => "Y",
     "SHOW_AJAX_DELIVERY_LINK" => "Y",
     "COUNT_DELIVERY_TAX" => "N",
     "COUNT_DISCOUNT_4_ALL_QUANTITY" => "N",
     "SET_TITLE" => "Y"
     )
);?>

Описание параметров

Основные параметры
ALLOW_PAY_FROM_ACCOUNT
[Y|N] Позволять оплачивать с внутреннего счета. Если выбрано значение "Y", то при наличии достаточной суммы на внутреннем счете в базовой валюте сайта, пользователю будет предложено оплатить с этого счета.
SHOW_MENU
[Y|N] Показывать меню навигации по процедуре оформления заказа. Если выбрано значение "Y", то будут показаны шаги процедуры оформления заказа.
COUNT_DELIVERY_TAX
[Y|N] Рассчитывать налог для доставки. Если выбрано значение "Y", то будет рассчитан налог для доставки.
COUNT_DISCOUNT_4_ALL_QUANTITY
[Y|N] Рассчитывать скидку для каждой позиции (на все количество товара). Если выбрано значение "Y", то будет рассчитана скидка на каждый товар, приобретенный в N количестве.
Дополнительные настройки
PATH_TO_BASKET
Указывается путь к странице с корзиной. Такая страница может быть создана с помощью компонента Корзина.
PATH_TO_PERSONAL
Указывается путь к персональному разделу, например, к странице со списком заказов либо к пластиковым картам пользователя и т. д. Переход на страницу возможен по ссылке после оформления заказа.
PATH_TO_AUTH
Указывается путь к странице с авторизацией на сайте.
PATH_TO_PAYMENT
Указывается путь к странице подключения платежной системы. Такую страницу можно создать с помощью компонента Подключение платежной системы.
USE_AJAX_LOCATIONS
[Y|N] Если выбрано значение "Y", то будет использована расширенная форма выбора местоположений, которая будет построена компонентом AJAX-местоположения.
SHOW_AJAX_DELIVERY_LINK
Автоматический запуск расчёта стоимости доставки:
  • Y - будут выведены только ссылки;
  • N - стоимость доставки будет рассчитана сразу;
  • S - стоимость доставки рассчитывается на сервере.
SET_TITLE
[Y|N] В качестве заголовка будет установлено "Оформление заказа".


Компонент "Аффилиатские планы"

Одностраничный компонент.
Список доступных аффилиатских планов. Компонент выводит список всех планов, определённых в системе. Может использоваться на странице регистрации аффилиата для показа имеющихся планов.

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.affiliate.plans",
        "",
        Array(
            "SET_TITLE" => "Y"
        )
    );
?>

Описание параметров

Дополнительные настройки
SET_TITLE
[Y|N] В качестве заголовка страницы будет установлено «Планы комиссий аффилиатов».


Компонент "Отчет аффилиата "

Одностраничный компонент.
Если на сайте авторизован аффилиат, то ему будет показано движение денег на его счете за установленный период времени.
Если авторизован пользователь, не являющийся аффилиатом, то компонент переведет его на страницу регистрации аффилиата, указанную в настройках компонента в поле Страница регистрации.
Если пользователь не авторизован, то он будет перенаправлен на страницу регистрации (по умолчанию register.php)

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.affiliate.account",
        "",
        Array(
            "REGISTER_PAGE" => "register.php",
            "SET_TITLE" => "Y"
        )
);
?>

Описание параметров

Дополнительные настройки
REGISTER_PAGE
Путь к странице регистрации аффилиата. Она может быть создана с помощью компонента Регистрация аффилилата.
SET_TITLE
[Y|N] Если "Да", то в качестве заголовка страницы будет установлено «Счет аффилиата».


Компонент "Отчет по программе аффилиата"

Одностраничный компонент.
Отображает движение товаров аффилиата. Компонент отображает список проданных товаров от авторизованного аффилиата за установленный период времени.

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.affiliate.report",
        "",
        Array(
            "REGISTER_PAGE" => "register.php",
            "SET_TITLE" => "Y"
        )
);
?>

Описание параметров

Дополнительные настройки
REGISTER_PAGE
Путь к странице регистрации аффилиата, которая может быть создана с помощью компонента Регистрация аффилиата. Если страница находится в текущей директории, то достаточно указать ее название.
SET_TITLE
[Y|N] В качестве заголовка страницы будет установлено "Отчет по программе".


Компонент "Регистрация аффилиата"

Одностраничный компонент.
Компонент служит для создания страницы регистрации аффилиата.

Пример вызова

<?
APPLICATION->IncludeComponent(
        "bitrix:sale.affiliate.register",
        "",
    Array(
        "REDIRECT_PAGE" => $_REQUEST["REDIRECT_PAGE"],
        "AGREEMENT_TEXT_FILE" => "/bitrix/php_interface/agreement-ru.htm",
        "SET_TITLE" => "Y"
        )
);
?>

Описание параметров

Основные параметры
AGREEMENT_TEXT_FILE
Путь к файлу с пользовательским соглашением.
Дополнительные настройки
REDIRECT_PAGE
Указывается путь к странице, на которую будет переведен пользователь после регистрации. По умолчанию поле содержит ={$_REQUEST["REDIRECT_PAGE"]}.
SET_TITLE
[Y|N] В качестве заголовка страницы будет установлено "Регистрация аффилиата".


Компонент "Технические инструкции аффилиата"

Одностраничный компонент.
Компонент выводит технические инструкции для аффилиата.

Пример вызова

<?
$APPLICATION->IncludeComponent(
    "bitrix:sale.affiliate.instructions",
    "",
    Array(
        "REGISTER_PAGE" => "register.php",
        "SHOP_NAME" => "Автосалон",
        "SHOP_URL" => "www.auto.ru",
        "AFF_REG_PAGE" => "/affiliate/register.php",
        "SET_TITLE" => "Y"
        )
);?>

Описание параметров

Основные параметры
SHOP_NAME
Название сайта, которое будет подставлено в инструкцию аффилиата (если не указано, берется из настроек сайта).
SHOP_URL
Адрес сайта, на котором организуется аффилиатство (без http://; если не указан, берется из настроек сайта).
Дополнительные настройки
REGISTER_PAGE
Указывается путь к странице, которая будет предложена пользователю, если он не авторизован. По умолчанию поле содержит register.php.
AFF_REG_PAGE
Путь для формирования ссылки на регистрацию аффилиата. Этот путь будет подставлен в текст инструкции для аффилиата. Сформированной ссылкой может воспользоваться пользователь, который захочет стать аффилиатом магазина. По умолчанию /affiliate/register.php
SET_TITLE
[Y|N] В качестве заголовка страницы будет установлено "Регистрация аффилиатов".


Компонент "Корзина"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.basket.basket",
        "",
        Array(
            "PATH_TO_ORDER" => "/personal/order.php",
            "HIDE_COUPON" 	=> "N",
            "COLUMNS_LIST" 	=> Array("NAME","PRICE","TYPE"),
            "SET_TITLE" 	=> "Y"
        )
);?>

Описание параметров

Внешний вид
COLUMNS_LIST
Выбираются поля, которые будут выведены в качестве названий колонок в таблице товаров, находящихся в корзине.
Дополнительные настройки
PATH_TO_ORDER
Страница оформления заказа. Путь к странице - процедуре оформления заказа. Если страница находится в текущей директории, то достаточно указать ее название.
HIDE_COUPON
[Y|N] Если «Да», то на странице с корзиной товаров поле для ввода купона на скидку показано не будет.
SET_TITLE
[Y|N] В качестве заголовка страницы будет установлено "Моя корзина".


Компонент "Малая корзина"

Одностраничный компонент.
Компонент отображает все товары, которые находятся в корзине в различных состояниях. На странице с этим компонентом менять параметры товаров (например, количество) невозможно, необходимо переходить на страницу с полной корзиной.

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.basket.basket.small",
        "",
        Array(
            "PATH_TO_BASKET" 	=> "/personal/basket.php",
            "PATH_TO_ORDER" 	=> "/personal/order.php"
        )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_BASKET
Указывается путь к странице с корзиной. Такая страница может быть создана с помощью компонента Корзина.
PATH_TO_ORDER
Путь к странице оформления заказа. Эта страница может быть создана с помощью компонента Процедура оформления заказа.


Компонент "Ссылка на корзину"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.basket.basket.line",
        "",
        Array(
            "PATH_TO_BASKET" 		=> "/personal/basket.php",
            "PATH_TO_PERSONAL" 		=> "/personal/",
            "SHOW_PERSONAL_LINK"	=> "Y"
        )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_BASKET
Указывается путь к странице с корзиной. Такая страница может быть создана с помощью компонента Корзина.
PATH_TO_PERSONAL
Указывается путь к персональному разделу, например, к странице со списком заказов, либо к пластиковым картам, либо к профилям пользователя и т. д.
SHOW_PERSONAL_LINK
[Y|N] Если выбран вариант «Да», то будет выведена ссылка на персональный раздел.


Компонент "Заказы пользователя"

Комплексный компонент.
Управление заказами текущего пользователя. Компонент отображает список заказов текущего пользователя со ссылками для перехода к просмотру детальной информации, отмене заказа, к оформлению повторного заказа. Можно управлять адресами переходов по этим страницам с помощью настроек ЧПУ.

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.personal.order",
        "",
        Array(
            "SEF_MODE" => "Y",
            "ORDERS_PER_PAGE" => "20",
            "PATH_TO_PAYMENT" => "payment.php",
            "PATH_TO_BASKET" => "basket.php",
            "SET_TITLE" => "Y",
            "SEF_FOLDER" => "/",
            "SEF_URL_TEMPLATES" => Array(
                "list" => "index.php",
                "detail" => "order_detail.php?ID=#ID#",
                "cancel" => "order_cancel.php?ID=#ID#"
            ),
            "VARIABLE_ALIASES" => Array(
                "list"	=> Array(),
                "detail"	=> Array(
                "ID" => "ID"
                ),
                "cancel" => Array(
                    "ID" => "ID"
                ),
            )
    )
);?>

Описание параметров

Управление адресами страниц
SEF_MODE
[Y|N] Включить поддержку ЧПУ. При установленном флаге включается поддержка ЧПУ и становятся доступными для заполнения поля настройки адресов.
SEF_FOLDER
Каталог ЧПУ (относительно корня сайта). Путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Массив, в рамках которого определяются адреса страниц со списком заказов ("list"), страницы с заказом подробно ("detail"), страницы отмены заказа ("cancel").

    "SEF_URL_TEMPLATES" => Array(
            "list"	=> "index.php",
            "detail" => "order_detail.php?ID=#ID#",
            "cancel" => "order_cancel.php?ID=#ID#"
        ),
Дополнительные настройки
ORDERS_PER_PAGE
Количество заказов на одной странице. Указанное число определяет количество заказов на странице, остальные заказы будут выведены с помощью постраничной навигации.
PATH_TO_PAYMENT
Страница подключения платежной системы. Указывается путь к странице подключения платежной системы. Такую страницу можно создать с помощью компонента Подключение платежной системы. Переход на эту страницу происходит по ссылке Повторить оплату на странице с детальной информацией по заказу.
PATH_TO_BASKET
Страница с корзиной. Указывается путь к странице с корзиной товаров. Такая страница может быть создана с помощью компонента Корзина.
SET_TITLE
В качестве заголовка будет установлено «Мои заказы».


Компонент "Отмена заказа"

Одностраничный компонент.
Компонент отменяет заказ.

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.personal.order.cancel",
        "",
        Array(
            "PATH_TO_LIST"	=> "order_list.php",
            "PATH_TO_DETAIL" 	=> "order_detail.php",
            "SET_TITLE" 	=> "Y",
            "ID" 		=> $ID
        )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_LIST
Страница со списком заказов. Указывается путь к странице со списком заказов. Такая страница может быть создана с помощью компонента Список заказов.
PATH_TO_DETAIL
Страница c подробной информацией о заказе. Указывается путь к странице с детальной информацией о заказе. Такая страница может быть создана с помощью компонента Подробная информация о заказе. Необходимо передавать ID заказа в качестве параметра.
SET_TITLE
В качестве заголовка будет установлено «Отмена заказа №#ID_заказа».
Дополнительно
ID
Указывается php код, результатом которого является получение ID заказа. По умолчанию ={$ID}.


Компонент "Отмена подписки"

Одностраничный компонент.
Компонент позволяет отменить подписку.

Пример вызова

<?
$APPLICATION->IncludeComponent(
    "bitrix:sale.personal.subscribe.cancel",
    "",
    Array(
        "PATH_TO_LIST" => "subscribe_list.php",
        "ID" => $ID,
        "SET_TITLE" => "Y"
    )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_LIST
Указывается путь к странице со списком подписок. Если страница находится в той же директории, что и данная, то достаточно указать название страницы. Такая страница может быть создана с помощью компонента Список подписок текущего пользователя.
SET_TITLE
В качестве заголовка страницы выводится «Отмена подписки №…».
Дополнительно
ID
Указывается php код, результатом которого является получение ID подписки. По умолчанию ={$ID}


Подписки пользователя

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Подписки пользователя"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
    "bitrix:sale.personal.subscribe",
    "",
    Array(
        "SEF_MODE" => "Y",
        "PER_PAGE" => "20",
        "SET_TITLE" => "Y",
        "SEF_FOLDER" => "/subscription/",
        "SEF_URL_TEMPLATES" => Array(
            "list" => "",
            "cancel" => "cancel/#ID#/"
        ),
        "VARIABLE_ALIASES" => Array(
            "list" => Array(),
            "cancel" => Array(),
        )
    )
);?>

Описание параметров

Управление адресами страниц
SEF_MODE
[Y|N] Включить поддержку ЧПУ. При установленном флаге включается поддержка ЧПУ и становятся доступными для заполнения поля настройки адресов.
SEF_FOLDER
Каталог ЧПУ (относительно корня сайта). Путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Массив, в рамках которого определяются адреса страниц со списком подписок ("list"), страница отмены подписки ("cancel").
Дополнительные настройки
PER_PAGE
Количество подписок на одной странице. Указанное количество определяет число подписок на одной странице, остальные будут выведены с помощью постраничной навигации.
SET_TITLE
В качестве заголовка будет установлено «Регулярные платежи».


Компонент "Подробная информация о заказе"

Одностраничный компонент.
Выводит подробную информацию по заказу.

Пример вызова

<?
$APPLICATION->IncludeComponent(
    "bitrix:sale.personal.order.detail",
    "",
    Array(
        "PATH_TO_LIST" => "order_list.php",
        "PATH_TO_CANCEL" => "order_cancel.php",
        "PATH_TO_PAYMENT" => "payment.php",
        "ID" => $ID,
        "SET_TITLE" => "Y"
    )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_LIST
Страница со списком заказов. Такая страница может быть создана с помощью компонента Список заказов.
PATH_TO_CANCEL
Страница отмены заказа. Указывается путь к странице, где можно отменить заказ. Такая страница может быть создана с помощью компонента Отмена заказа. Необходимо передавать ID заказа в качестве параметра.
PATH_TO_PAYMENT
Страница подключения платежной системы. Указывается путь к странице подключения платежной системы. Такую страницу можно создать с помощью компонента Подключение платежной системы.
ID
Указывается параметр, в котором хранится ID заказа.
SET_TITLE
[Y|N] В качестве заголовка будет установлено «Мой заказ № #ID_заказа#».


Профили пользователя

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Профили пользователя"

Комплексный компонент.
Управление профилями текущего пользователя.

Пример вызова

<?
$APPLICATION->IncludeComponent(
    "bitrix:sale.personal.profile",
    "",
    Array(
        "SEF_MODE" => "Y",
        "PER_PAGE" => "20",
        "SET_TITLE" => "Y",
        "SEF_FOLDER" => "/",
        "SEF_URL_TEMPLATES" => Array(
            "list" => "profile_list.php",
            "detail" => "profile_detail.php?ID=#ID#"
        ),
        "VARIABLE_ALIASES" => Array(
            "list" => Array(),
            "detail" => Array(
            "ID" => "ID"
            ),
        )
    )
);?>

Описание параметров

Управление адресами страниц
SEF_MODE
[Y|N] Включить поддержку ЧПУ. При установленном флаге включается поддержка ЧПУ и становятся доступными для заполнения поля настройки адресов.
SEF_FOLDER
Каталог ЧПУ (относительно корня сайта). Путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать.
SEF_URL_TEMPLATES
Массив, в рамках которого определяются адреса страницы со списком профилей ("list"), страницы с профилем подробно ("detail").
Дополнительные настройки
PER_PAGE
Количество профилей на одной странице. Указанное количество определяет число профилей на одной странице, остальные будут выведены с помощью постраничной навигации.
SET_TITLE
В качестве заголовка будет установлено «Профили».


Редактирование пластиковых карт

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Редактирование пластиковых карт"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.personal.cc.detail",
        "",
        Array(
            "PATH_TO_LIST" => "plastic_cards.php",
            "SET_TITLE" => "Y"
        )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_LIST
Страница со списком пластиковых карт. Указывается путь к странице со списком пластиковых карт. Если страница находится в той же директории, что и данная, то достаточно указать название страницы. Такая страница может быть создана с помощью компонента Список пластиковых карт текущего пользователя.
SET_TITLE
[Y|N] В качестве заголовка страницы выводится «Добавление новой карты».


Редактирование профиля

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Редактирование профиля"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.personal.profile.detail",
        "",
        Array(
            "PATH_TO_LIST" => "profile_list.php",
            "PATH_TO_DETAIL" => "profile_detail.php?ID=#ID#",
            "ID" => $ID,
            "SET_TITLE" => "Y"
        )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_LIST
Страница со списком профилей. Путь к странице со списком профилей. Если страница находится в текущей директории, то достаточно указать ее название. Страница может быть создана с помощью компонента Cписок профилей текущего пользователя.
PATH_TO_DETAIL
Страница редактирования профиля. Путь к странице редактирования профиля. В качестве параметра необходимо указать ID профиля. Если поле пусто, то пользователь после применения изменений останется на той же странице.
ID
Указывается параметр, в котором хранится ID профиля.
SET_TITLE
[Y|N] В качестве заголовка будет установлено «Профиль № #ID#».


Компонент "Список заказов"

Одностраничный компонент.
Выводит фильтр и список заказов пользователя.

Пример вызова

<?
$APPLICATION->IncludeComponent(
    "bitrix:sale.personal.order.list",
    "",
    Array(
        "PATH_TO_DETAIL" => "order_detail.php?ID=#ID#",
        "PATH_TO_COPY" => "basket.php",
        "PATH_TO_CANCEL" => "order_cancel.php?ID=#ID#",
        "PATH_TO_BASKET" => "basket.php",
        "ORDERS_PER_PAGE" => "20",
        "SET_TITLE" => "Y"
    )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_DETAIL
Страница с подробной информацией о заказе. Указывается путь к странице с детальной информацией о заказе. Такая страница может быть создана с помощью компонента Подробная информация о заказе. Необходимо передавать ID заказа в качестве параметра.
PATH_TO_COPY
Страница повтора заказа. Можно указать путь к странице, где происходит копирование заказа. Если указать путь к корзине, то заказ будет скопирован и можно будет начать оформление заказа.
PATH_TO_CANCEL
Страница отмены заказа. Указывается путь к странице, где можно отменить заказ. Такая страница может быть создана с помощью компонента Отмена заказа. Необходимо передавать ID заказа в качестве параметра.
PATH_TO_BASKET
Страница корзины. Указывается путь к корзине пользователя, страница может быть создана с помощью компонента Корзина.
ORDERS_PER_PAGE
Количество заказов, выводимых на странице. Указанное число определяет количество заказов на странице, остальные заказы будут выведены с помощью постраничной навигации.
SET_TITLE
[Y|N] В качестве заголовка будет установлено «Мои заказы».


Компонент "Список пластиковых карт текущего пользователя"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.personal.cc.list",
        "",
        Array(
            "PATH_TO_DETAIL" => "card_detail.php",
            "PER_PAGE" => "20",
            "SET_TITLE" => "Y"
        )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_DETAIL
Страница c подробной информацией о пластиковой карте. Указывается путь к странице с подробной информацией о карте. Если страница находится в той же директории, что и данная, то достаточно указать название страницы. Такая страница может быть создана с помощью компонента Редактирование пластиковых карт.
PER_PAGE
Количество карт, выводимых на страницу. Указанное количество определяет число карт на одной странице, остальные будут выведены с помощью постраничной навигации.
SET_TITLE
В качестве заголовка будет установлено «Мои пластиковые карты».


Компонент "Список подписок текущего пользователя"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.personal.subscribe.list",
        "",
        Array(
            "PATH_TO_CANCEL" => "subscribe_cancel.php?ID=#ID#",
            "PER_PAGE" => "20",
            "SET_TITLE" => "Y"
        )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_CANCEL
Страница отмены подписки. Указывается путь к странице отмены подписки. Если страница находится в той же директории, что и данная, то достаточно указать название страницы. Такая страница может быть создана с помощью компонента Отмена подписки. Необходимо передавать ID подписки.
PER_PAGE
Количество заказов, выводимых на странице. Указанное количество определяет число подписок на одной странице, остальные будут выведены с помощью постраничной навигации.
SET_TITLE
[Y|N] В качестве заголовка будет установлено «Регулярные платежи».


Список профилей текущего пользователя

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Список профилей текущего пользователя"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
    "bitrix:sale.personal.profile.list",
    "",
    Array(
        "PATH_TO_DETAIL" => "profile_detail.php",
        "PER_PAGE" => "20",
        "SET_TITLE" => "Y"
    )
);?>

Описание параметров

Дополнительные настройки
PATH_TO_DETAIL
Страница подробной информации о профиле. Путь к странице редактирования или просмотра профиля. Если страница находится в текущей директории, то достаточно указать ее название. Страница может быть создана с помощью компонента Редактирование профиля.
PER_PAGE
Количество профилей, выводимых на странице. Указанное количество определяет число профилей на одной странице, остальные будут выведены с помощью постраничной навигации.
SET_TITLE
[Y|N] В качестве заголовка будет установлено «Список профилей».


Счета текущего пользователя

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Счета текущего пользователя"

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

Пример вызова

<?
$APPLICATION->IncludeComponent(
        "bitrix:sale.personal.account",
        "",
        Array(
            "SET_TITLE" => "Y"
        )
);?>

Описание параметров

Дополнительные настройки
SET_TITLE
[Y|N] В качестве заголовка будет установлено «Мой пользовательский счет свободных средств».


Компонент "Ссылка на корзину"

$APPLICATION->IncludeFile("sale/sale_basket/basket_line.php",
    Array(
    "BASKET_PAGE" => "/ru/catalog_wizard/basket.php",
    // Путь к странице корзины
    )
);

Компонент выводит информацию о наличии и количестве товаров в корзине.

Параметры

BASKET_PAGE
Путь к странице полнофункциональной корзины.


Корзина

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Корзина"

$APPLICATION->IncludeFile("sale/sale_basket/basket.php",
    Array(
            "ORDER_PAGE" => "/ru/catalog_wizard/order.php",
                // Путь к странице процедуры заказа
            "HIDE_COUPON"	=>	"Y",
                // Спрятать поле ввода купона
             "COLUMNS_LIST"	=>	Array("NAME","PRICE","TYPE","QUANTITY","DELETE","DELAY","WEIGHT"),
                // Выводимые колонки
            )
);

Компонент выводит полнофункциональную корзину.

Параметры

ORDER_PAGE
Путь к странице процедуры заказа.
HIDE_COUPON
[Y|N] Спрятать поле ввода купона.
COLUMNS_LIST
Выбираются выводимые характеристики товаров в таблице корзины магазина.


Компонент "Малая корзина"

$APPLICATION->IncludeFile("sale/sale_basket/basket_small.php",
Array(
    "BASKET_PAGE" => "/ru/catalog_wizard/basket.php",
    // Путь к странице корзины
    "ORDER_PAGE"  => "/ru/catalog_wizard/order.php",
    // Путь к странице процедуры заказа
));

Компонент выводит корзину в сокращенном виде. Такой вид подходит, например, для отображения корзины в каком-нибудь столбце.

Параметры

BASKET_PAGE
Путь к странице полнофункциональной корзины.
ORDER_PAGE
Путь к странице процедуры заказа.


Торговый каталог

Торговый каталог - модуль системы "1С-Битрикс: Управление сайтом", позволяющий:

  • создавать торговые каталоги товаров, услуг и всевозможного цифрового контента;
  • осуществлять продажу товаров, услуг и цифрового контента через интернет-магазин;
  • осуществлять продажу прав доступа к ресурсам сайта;
  • управлять ценами на товары и услуги торговых каталогов;
  • загружать и выгружать данные о товарах, заказах, продажах в форматах CommerceML, Froogle, Yandex и CSV (формат последнего можно настраивать при загрузке);
  • загружать и выгружать данные в любой из форматов в соответствии с созданными пользователем профилями.

Торговый каталог создаётся путём соответствующей настройки Каталога товаров.

Важно!
Каталоги товаров формируются на основе информационных блоков, поэтому для использования модуля Торгового каталога необходимо наличие установленного в системе модуля Информационных блоков.

Настройка параметров и свойств Торгового каталога осуществляется на страницах раздела Торговый каталог (Административный раздел сайта -> Магазин -> Торговый каталог), а также на странице настроек модулей (Настройки -> Настройки продукта -> Торговый каталог).

Для того чтобы часть информационных блоков начала работать в режиме торговых каталогов, необходимо выбрать эти информационные блоки в поле Является торговым каталогом на странице настроек модуля Торговый каталог (пункт меню Настройки -> закладка Торговый каталог), закладка Каталоги. Управление ценами товаров Торгового каталога осуществляется с помощью специальных форм, расположенных на страницах настройки информационных блоков (модуль Информационные блоки).

Важно! Для корректной работы модуля Торговый каталог необходимо наличие установленного модуля Валюты.

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

На странице настроек модуля Торговый каталог вы также можете:

  • указать информационные блоки, данные из которых будут выгружаться в XML-файлы для системы Яндекс.Товары (см. статью Яндекс.Товары);
  • выбрать группы пользователей, права доступа к ресурсам сайта которых будут доступны для продажи.

Основные возможности модуля торгового каталога:

Многовалютность
Система позволяет гибко управлять валютами цены. Список доступных валют определяется администратором сайта. Для каждой валюты устанавливаются курсы (с возможностью загрузки с сайта Центрального Банка РФ), а также формат вывода для каждого сайта.
Типы цен
К одному товару можно привязать несколько цен разных типов. К каждому типу цены можно ограничить доступ на просмотр и на покупку для разных групп посетителей. Например, можно ввести розничный тип цен, который будет доступен для просмотра и покупки всем посетителям сайта, и оптовый тип цен, который будет доступен для просмотра всем посетителям, но покупать товары по которому смогут только члены группы "Оптовые покупатели".
Система наценок
Один из типов цен торгового каталога называется базовым. Все остальные цены товара могут рассчитываться в процентном отношении к базовой цене, либо задаваться вручную. Для цен, рассчитываемых как наценка к базовой цене, возможен автоматический пересчет.
Загрузка данных в формате CommerceML
Модуль позволяет загружать каталог товаров и цены в формате CommerceML. CommerceML - это единый стандарт обмена коммерческой информацией в формате XML, поддерживаемый программой 1C. Стандарт учитывает отечественную специфику и включает несколько универсальных решений, необходимых для российских Интернет-компаний и торговых организаций.
Загрузка и выгрузка данных в CSV файл
Модуль позволяет загружать и выгружать каталог товаров и цены в CSV файл.
Связь с модулем Интернет-магазин
Пользователь, совершающий покупку, помещает товар в корзину по самой выгодной из доступных для него цен на данный товар.


Скидки и купоны

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список скидок
    •

    На странице Скидки и купоны (Магазин -> Торговый каталог -> Скидки) представлена таблица, содержащая список всех доступных в системе скидок, используемых для приобретения товаров по льготной цене. Данная страница служит для добавления новых скидок, а также для перехода к управлению их параметрами.

    Форма поиска

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

    Поле | Описание
    Сайт | Указывается сайт, к товарам которого могут быть применены выбираемые скидки.
    Активность | Признак активности скидки или купона. Если скидка (купон) активна, то она может быть использована при покупке товара.
    Активна в период В данных полях можно указать период активности скидки или купона. Период активности может быть задан одним из следующих способов:
    • с помощью указания количества дней, прошедших со дня присвоения скидке или купону статуса Активна;
    • с помощью задания дат начала и конца периода активности.
    Название | Название скидки.
    Купон | Код купона.
    На продление Указывается, какие скидки будут участвовать в поиске:
    • да - в поиске будут участвовать купоны и скидки, используемые при продлении подписки на контент сайта;
    • нет - в поиске не будут участвовать купоны и скидки, используемые при продлении подписки на контент сайта;
    • все- в поиске будут участвовать все купоны и скидки, в т.ч. используемые для продления подписки.

    Для того чтобы отобрать скидки и купоны по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех скидок и купонов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Новая скидка | Переход к форме добавления новой скидки.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список скидок

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора скидок, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над скидкой:
    • Изменить параметры скидки - редактирование купона или скидки;
    • Удалить скидку - удаление купона или скидки.
    ID | Идентификатор скидки.
    Сайт | Название сайта(ов), к товарам которого может быть применена данная скидка или купон.
    Активна с | Дата начала активности скидки или купона.
    по | Дата окончания активности скидки или купона.
    Акт. | Признак активности скидки или купона. Если скидка неактивна, то она не может быть применена.
    Название | Название скидки.
    Сорт. | Относительный "вес" скидки. Используется для вывода скидки в общем списке.
    Величина | Размер предоставляемой скидки.
    Продл. | Признак использования скидки для продления подписки на контент сайта.


Создание и редактирование скидки

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Скидка
  • Ограничения
    •
  • Кнопки управления
    •

    Данная форма служит для создания новой или редактирования существующей скидки.

    Примечание.
    Купон представляет собой разновидность скидки. Его отличие заключается в том, что купон - это уникальная последовательность символов, случайно сгенерированная. Правом на получение скидки по купону обладает покупатель, которому каким-либо образом была сообщена данная уникальная последовательность символов.

    Контекстная панель

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

    Форма редактирования

    Закладка "Скидка"

    Поле | Описание
    ID | Уникальный идентификатор скидки.
    Дата последнего изменения | Дата и время последнего изменения параметров скидки или купона.
    Сайт | Название сайта, к товарам которого применяется скидка.
    Активность | Признак активности скидки.
    Период активности | С помощью on-line календаря вы можете указать дату начала и окончания действия скидки.
    *Название | Название скидки.
    Индекс сортировки | Относительный "вес" скидки. Используется для вывода элемента в общем списке.
    *Тип скидки Форма задания скидки:
    • в процентах- скидка задается в процентах от стоимости товара;
    • в виде фиксированной суммы - будет указана сумма скидки.
    *Величина скидки | Размер скидки. В зависимости от выбранного типа скидки, величина скидки указывается в процентах от стоимости товара или в виде фиксированной суммы.
    Валюта скидки | Укажите валюту скидки, если она задана в виде фиксированной суммы.
    Максимальная сумма скидки | Максимально возможный размер скидки. Чаще всего значение данного поля задается для типаскидки "в процентах". Максимальная сумма скидки указывается в основной валюте скидки, выбранной в предыдущем поле.
    Применяется к продлению подписки | Флаг в данном поле означает, что скидка или купон будет применяться при продлении подписки на доступ к контенту сайта.
    Краткое описание | Данное поле служит для задания краткого описания скидки. Размер описания может составлять не более 255 символов.
    * - Поля, обязательные для заполнения.

    Закладка "Ограничения"

    Поле | Описание
    Купон Данное поле предназначено для выбора применяемого купона:
    • один многоразовый купон - создаётся один многоразовый купон. Автоматическая генерация кода осуществляется с помощью кнопки "Генерировать".
    • много купонов - создаются одноразовые купоны. В поле для автоматической генерации купонов указывается количество купонов для скидки. Переход к списку купонов для данной скидки осуществляется с помощью ссылки "Перейти к списку купонов этой скидки".
    Группы пользователей, которые могут воспользоваться скидкой | В данном поле выбираются группы пользователей, имеющие право на использование данной скидки. Если ни одна группа не выбрана, то скидка будет доступна для пользователей всех групп.
    Типы цен, к которым применима скидка | В данном поле выбираются типы цен товаров, к которым может быть применена данная скидка. Если ни один тип цен не выбран, то скидка может быть применена ко всем типам цен товаров.
    Разделы, к которым применима скидка С помощью данных полей указываются разделы и подразделы сайта, к товарам в которых может быть применена создаваемая скидка.
    • Для добавления нового раздела используйте кнопку "Добавить".
    • Для удаления выбранного раздела воспользуйтесь кнопкой "Удалить".
    Если ни один раздел не выбран, то подразумевается, что скидка может быть применена к товарам всех разделов.
    Товары, на которые дается скидка | Данное поле предназначено для выбора товаров, при покупке которых может быть использована данная скидка. Для выбора товара служит кнопка "Добавить". Если ни один из товаров не выбран, то подразумевается, что скидка может быть применена ко всем товарам из раздела, выбранного в предыдущем поле.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком скидок.
Применить | Применение внесённых изменений. Продолжение редактирования параметров скидки.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Купоны на скидки

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список купонов
    •

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

    Примечание.
    Купон представляет собой разновидность скидки. Его отличие заключается в том, что купон - это уникальная последовательность символов, случайно сгенерированная. Правом на получение скидки по купону обладает покупатель, которому каким-либо образом была сообщена данная уникальная последовательность символов.

    Данная страница служит для отображения имеющихся купонов и добавления новых, а также для перехода к управлению их параметрами.

    Форма поиска

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

    Поле | Описание
    Скидка | Указывается купоны какой скидки должны быть отображены в отчетной форме. Выбирается одна из имеющихся в системе скидок либо пункт Все, тогда будут отображены купоны всех скидок.
    Активность Указывается, какие купоны будут участвовать в поиске:
    • да - в поиске будут участвовать только активные купоны (с отмеченным флагом активности);
    • нет - в поиске будут участвовать только неактивные купоны;
    • все- в поиске будут участвовать все купоны, вне зависимости от флага активности.

    Для того чтобы отобрать купоны по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех купонов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить купон | Переход к форме добавления нового купона.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список купонов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора скидок, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над купоном или скидкой:
    • Изменить параметры купона - редактирование купона;
    • Удалить купон - удаление купона или скидки.
    ID | Идентификатор купона.
    Название скидки | Название скидки, для которой создан купон.
    Активность | Признак активности купона. Если купон активен, то он может быть использован при покупке товара. Одноразовый купон после использования становится неактивным.
    Купон | Сгенерированная последовательность символов, составляющая купон.
    Дата применения купона | Дата и время, когда купон был использован. Автоматически устанавливается после применения одноразового купона.
    Одноразовый "Да", если купон одноразовый.
    "Нет", если купон многоразовый.


Создание и редактирование купона

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления
    •

    Данная форма служит для создания нового или редактирования существующего купона.

    Примечание.
    Купон представляет собой разновидность скидки. Его отличие заключается в том, что купон - это уникальная последовательность символов, случайно сгенерированная. Правом на получение скидки по купону обладает покупатель, которому каким-либо образом была сообщена данная уникальная последовательность символов.

    Контекстная панель

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

    Форма редактирования

    Поле | Описание
ID | Уникальный идентификатор купона.
*Скидка | В выпадающем списке выбирается одна из имеющихся в системе скидок, к которой будет относиться создаваемый купон.
Активность | Признак активности купона.
Одноразовый | При отмеченной опции купон является одноразовым, при снятой - многоразовым.
*Код купона | Код купона генерируется по кнопке Сгенерировать код.
Дата применения купона | Дата и время, когда купон был использован. Автоматически устанавливается после применения одноразового купона.
    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком купонов.
Применить | Применение внесённых изменений. Продолжение редактирования параметров купона.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Типы наценок

В этом разделе

  • Контекстная панель
  • Список типов наценок

    • Форма Типы наценок (Магазин -> Торговый каталог -> Наценки) служит для управления наценками и скидками в системе (далее просто наценка).

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

    Типом наценки называется поименованная величина наценки (напр., Оптовая скидка). Имя вводится для упрощёния управления этими величинами.

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

    Контекстная панель

    Кнопка | Описание
Новая наценка | Переход к форме создания новой наценки.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список типов наценок

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора наценок, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над наценкой:
    • Изменить параметры наценки- редактирование наценки;
    • Удалить наценку - удаление наценки.
    ID | Идентификатор типа наценки в базе данных.
    Название наценки | Произвольное название типа наценки. Для удобства работы рекомендуется задавать названия, отражающие смысл создаваемой наценки.
    Процент | Процент наценки от базовой цены товара. Может задаваться как положительным (наценка), так и отрицательным (скидка) числом.
    Пересчитать цены | Указывается, будут ли цены, сформированные с использованием данной наценки, пересчитаны автоматически при изменении величины наценки.


Создание и редактирование наценки

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Контекстная панель

    Кнопка | Описание
Список наценок | Переход на страницу со списком наценок.
Создать новую наценку | Переход к форме создания новой наценки. Кнопка отображается при редактировании существующей наценки.
Удалить наценку | Удаление редактируемой наценки.

    Форма редактирования

    Поле | Описание
ID | Идентификатор наценки.
*Название | Произвольное название типа наценки. Для удобства работы рекомендуется задавать названия, отражающие смысл создаваемой наценки.
Величина наценки | Процент наценки от базовой цены товара. Может задаваться как положительным (наценка), так и отрицательным (скидка) числом.
Пересчитать цены | Если в данном поле установлен флаг, то при изменении величины наценки цены, формируемые с использованием данной наценки, будут пересчитаны автоматически.
    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров наценки. Переход на страницу со списком наценок.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров наценки.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Типы цен

В этом разделе

  • Контекстная панель
  • Список типов цен

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

    Типы цен вводятся для упрощения представления разных величин стоимости товаров. Например, вы можете выводить и использовать различные цены для розничных и оптовых покупателей, а также дилеров.

    Контекстная панель

    Кнопка | Описание
Новый тип цен | Переход к форме создания нового типа цены.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список типов цен

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора типов цен, к которым предполагается применить какое-либо правило или действие.
    Действия Действия над типом цены:
    • Изменить тип цен - редактирование типа цен;
    • Удалить тип цен - удаление типа цен.
    ID | Идентификатор типа цены в базе данных.
    Код | Символьный код, используемый в административном разделе для идентификации типа цены.
    Название | Название типа цены для разных языков.
    Сорт. | Относительный "вес", определяющий положение типа цен в общем списке.
    Базовый | Если данное поле имеет значение "Да", то этот тип цен является базовым. Это означает, что от него рассчитываются остальные цены в системе.


Типы цен

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание и редактирование типа цены

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Даная форма предназначена для создания новых и изменения параметров уже существующих типов цен.

    Контекстная панель

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

    Поля формы

    Поле | Описание
ID | Идентификатор типа цены в базе данных. Поле отображается только при редактировании типа цены.
Базовый | Если это поле имеет значение Да, то этот тип цены является базовым; т.е. от него рассчитываются остальные цены в системе. Поле не подлежит изменению.
*Код | Символьный код типа цены, который используется в административном разделе для идентификации типа цены.
Сортировка | Порядок, в котором типы цен появляются при выводе на экран.
Название | Название типа цены для разных языков.
*Группы пользователей, имеющие права на просмотр этого типа цен | Группы пользователей, обладающие правом на просмотр цен этого типа.
*Группы пользователей, имеющие права на покупку по этому типу цен | Группы пользователей, обладающие правом на покупку товаров по ценам этого типа.
    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров типа цены. Переход на страницу со списком типов цен.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров типа цены.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Ввод цен

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Ввод цен - общая информация

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

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

В поле Валюта базовой цены выберите валюту, в которой установлена базовая цена.

В поле Количество на складе введите количество единиц товара, которое имеется в наличии. Заполнять это поле не обязательно.

Отметьте флаг Уменьшать количество при заказе, если вы хотите, чтобы при каждом заказе значение в поле Количество на складе автоматически уменьшалось. При достижении значения "0" в поле Количество на складе и отмеченном флаге Уменьшать количество при заказе дальнейшие заказы данного товара станут невозможными. Если флаг Уменьшать количество при заказе не отмечен, то значение в поле Количество на складе никакой особой роли не играет.

Установите цену товара для разных типов цен.

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

[Цена] = [Базовая цена] + [Базовая цена] * [Процент наценки] / 100

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

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


Настройки

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Настройки модуля

В этом разделе

  • Экспорт/импорт из CSV
  • Каталоги
  • Продажа прав
  • Уровень доступа к модулю
  • Кнопки управления
    •

    Форма Настройки торгового каталога предназначена для управления общими настройками модуля. Для удобства работы форма разделена на несколько закладок, на каждой из которых выполняется настройка определённой группы параметров модуля.

    Закладка "Экспорт/Импорт".

    Параметр | Описание
Тип информационного блока для загрузки в формате CommerceML (из 1С) | Определяет, в каталог какого типа будут выгружены данные из 1C.
Автоматически деактивировать товар при загрузке из ComerceML, если нет цены | При включенной опции, если для товара, загружаемого из CML-файла, не задана ни одна цена, данный товар будет деактивирован.
Период экспорта в Яндекс.Товары (часов) | Указывается, с какой частотой данные каталогов, отмеченных в поле Экспорт в Яндекс.Товары таблицы Список информационных блоков, экспортируются в Яндекс.Товары. Подробнее об автоматическом экспорте см. Автоматический экспорт каталогов в Яндекс.Товары
Товары, которых нет в файле данных CommerceML | Определяется действие, выполняемое по умолчанию над товарами, которые уже есть в базе, но отсутствуют в загружаемом CML-файле. Например, если выбрано действие Удалять, то при обновлении торгового каталога из файла CommerceML, товары, отсутствующие в данном файле, будут удалены из торгового каталога.
Экспорт/импорт из CSV
Доступные поля товара | Если в вашей базе для каждого товара создано большое количество полей, содержащих значения свойств и параметров товара, выбор конкретных полей при экспорте или импорте может оказаться затруднительным. Это поле определяет, какие поля из множества хранимых в базе будут доступны для выбора при экспорте.
Доступные поля цены | Определяется, какие поля с параметрами цены будут доступны для выбора при экспорте или импорте из CSV файла.
Количество уровней групп | Указывается, сколько уровней каталога будет доступно в файлах импорта / экспорта.
Доступные поля групп | Определяется, какие поля групп из множества хранимых в базе будут доступны для выбора при экспорте или импорте из CSV файла.
Доступные валюты | Валюты, доступные для экспорта и импорта.

    Закладка "Каталоги"

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

    Поле | Описание
Информационный блок | Название информационного блока.
Является торговым каталогом | Установка флага в данное поле позволяет настроить информационный блок на использование в режиме торгового каталога.
Продажа контента | Установка флага в данное поле подразумевает возможность использования торгового каталога для продажи контента.
Экспорт в Яндекс.Товары | Если содержимое информационного блока подлежит экспорту в XML-файл для системы Яндекс.Товары, установите флаг в это поле.

    Закладка "Продажа прав"

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

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

    • создать группу пользователей, наделенную необходимыми правами (Настройки -> Пользователи -> Группы пользователей);
    • разрешить продажу прав данной группе пользователей (Настройки -> Настройки продукта -> Настройки модулей -> Торговый каталог);
    • привязать пользователя, купившего право доступа, к соответствующей группе и задать период времени, на который осуществляется привязка (Настройки -> Пользователи -> Список пользователей).
    Поле | Описание
Группа пользователей | Название группы пользователей.
Разрешена продажа | Установка флажка в данном поле позволяет осуществлять продажу прав доступа соответствующей группе пользователей.

    Закладка "Доступ"

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

    Поле | Описание
    По умолчанию | Уровень доступа групп пользователей, для которых установлено право "по умолчанию".
    [Группа пользователей] Изменение настроек доступа для конкретной группы. Возможно назначение следующих прав доступа к модулю Торговый каталог:
    • закрыт- запрет на доступ;
    • просмотр всех данных модуля - разрешается только просмотр файлов;
    • запись- полный доступ к ресурсам модуля.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений.
Сбросить | Отмена внесённых изменений. Возврат первоначальных значений параметров.
По умолчанию | Установка значений свойств модуля равными значениям по умолчанию.


Экспорт

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

Выгрузка (экспорт) данных из каталога позволяет организовать обмен данными между сайтом и другими сайтами или программами (например, с MS Excel). С помощью формы Настройка экспорта вы можете экспортировать данные как на основании предустановленных, так и на основании ваших собственных шаблонов экспорта. Кроме того, с помощью этой формы вы можете задавать предустановленные профили экспорта, выносить часто используемые шаблоны и профили экспорта в меню, настраивать автоматическое выполнение экспорта с помощью агентов и cron.

Разработчики могут найти примеры кода шаблонов в разделе Шаблоны Руководства разработчика.

Шаблоны экспорта могут быть двух типов: с дополнительными настройками экспорта (в том числе и с пошаговыми мастерами) или без настроек.

Шаблоны с настройками

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

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

Установить на автоматическое выполнение с помощью агентов или cron (только для UNIX) можно любой профиль экспорта, отличный от профиля "по умолчанию". Это связано с тем, что при автоматическом выполнении не могут выполнятся запросы на ввод дополнительных параметров экспорта у пользователя, поэтому все необходимые параметры должны быть сохранены в профиле заранее.

Шаблоны без настроек

Выполняется (экспортирует данные) непосредственно после вызова. Профили экспорта не создаются. Шаблон не требует дополнительных параметров для своего выполнения, поэтому непосредственно устанавливается на автоматическое выполнение с помощью агентов или cron (только для UNIX).

Выполнение команды "Добавить в меню" приводит к добавлению соответствующего пункта в левое меню административной части. Этот пункт меню функционирует так же, как и соответствующая команда "Экспортировать" формы "Настройка экспорта".

Агенты

Агенты - это PHP функции которые запускаются с определённой периодичностью. В самом начале загрузки каждой страницы система автоматически проверяет есть ли агент который нуждается в запуске и в случае необходимости исполняет его. Не рекомендуется вешать на агенты длительные по времени / большие по объему выгрузки. Для этих случаев лучше использовать cron.

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

Утилита cron

Утилита cron работает в фоновом режиме и выполняет указанные задачи в указанное время. Выполнение задач с помощью cron не связано с активностью посетителей на сайте. Выполнение задач с помощью cron может быть назначено не только с определённой периодичностью, но и в строго заданное время.

Утилита cron доступна только на хостингах, работающих под операционными системами семейства UNIX.

При установке на автоматическое выполнение с помощью cron система выводит запрос на период / время выполнения экспорта и путь к интерпретатору php. Если будет указан период выполнения (в часах), то экспорт будет выполняться с таким периодом автоматически, начиная с текущего момента. Если будет указано время выполнения (часы и минуты), то экспорт будет выполняться автоматически каждый день в указанное время.

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

Команда Повесить на cron добавляет соответствующую запись в конфигурационный файл /bitrix/crontab/crontab.cfg, который содержит текущий список задач для cron. После изменения набора задач, установленных на cron, необходимо заново установить конфигурационный файл. Если в форме установки на автоматическое выполнение отмечен флаг Установить автоматически, то форма пытается самостоятельно установить конфигурационный файл в cron. Автоматическая установка конфигурационного файла может не пройти (например, нет достаточных прав). В этом случае необходимо соединиться с вашим сайтом по SSH (SSH2) или какому-либо другому аналогичному протоколу, поддерживаемому вашим провайдером для удаленного доступа к shell, и провести установку конфигурационного файла вручную командой

crontab <полный_путь_к_конфигурационный_файл_ crontab.cfg>

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

crontab -l

Текущий список установленных на cron задач выводится так же внизу формы Настройка экспорта, если есть права на его получение.

Для удаления списка установленных на cron задач нужно выполнить команду

crontab -r

Если у вас установлены на cron задачи, которых нет в конфигурационном файле, то при применении этого файла такие задачи будут удалены.

Оболочкой для выполнения задач на cron является файл /bitrix/php_interface/include/catalog_export/cron_frame.php. Убедитесь, что в нем прописаны правильные пути к php и корню сайта.


Настройка экспорта

В этом разделе

  • Контекстная панель
  • Настройки экспорта

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

    Каталоги требуют, чтобы информация о товарах отправлялась на их веб-серверы в определённом формате. Система 1C-Битрикс: Управление сайтом позволяет автоматизировать этот процесс без привлечения услуг программистов. На данный момент, в системе реализована отгрузка пользовательских торговых каталогов в следующих форматах:

    • CSV - общий стандартный формат для дальнейшей обработки;
    • Froogle - формат для торгового каталога семейства Google;
    • Yandex - для торгового каталога Yandex;
    • Yandex Simple - упрощённый формат торгового каталога Yandex.

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

    Если ваш сайт работает под управлением операционной системы семейства UNIX, существует возможность наладить периодический экспорт разделов торгового каталога. Это может быть осуществлено путём привязки конкретного профиля экспорта к системной утилите cron.

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

    Привязка выгрузки к утилите cron и создание агента выгрузки производится на странице Управление экспортом (Магазин -> Торговый каталог-> Настройка экспорта).

    Вверху страницы отображен путь к каталогу, где находятся скрипты экспорта. По умолчанию /bitrix/php_interface/include/catalog_export/.

    Контекстная панель

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

    Настройки экспорта

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

    Действия | Название | Файл | Профиль | Меню | Агент | Cron | Использован
[1] | [2] | [3] | [4] | [5] | [6] | [7] | [8]
    Поле | Описание
    [1] Действия над профилем экспорта Операции, которые могут быть применены к профилю:
    • Экспортировать - запуск профиля экспорта;
    • Добавить в меню - добавления ссылки на профиль экспорта в левое меню административной части сайта;
    • Создать агента - создание PHP функции-агента для автоматического экспорта с использованием данного профиля;
    • Повесить на cron - привязка профиля к системной утилите cron для автоматического экспорта;
    • Удалить профиль - удаление профиля.
    [2] Название Название типа профиля экспорта, например, Yandex, Froogle.

    Примечание
    Для экспорта данных в файлы формата CSV доступно два типа профиля:

    Export CSV(new) - данный формат экспорта доступен при установленном в системе модуле Торговый каталог версии 4.0.5 и старше. Этот формат позволяет выгружать данные с учётом группировки цен товаров, в зависимости от количества приобретаемых товаров, а также снимает ограничение с количества объединяемых таблиц, содержащих информацию о товарах. Кроме того, данный формат позволяет выгружать цены товара в валюте, указанной для каждой цены.

    Export CSV- данный формат выгрузки используется в системах с версией модуля Торговый каталог ниже 4.0.5. Этот формат накладывает ограничение на количество объединяемых таблиц с информацией о товарах (не более 30), а также не позволяет осуществлять выгрузку групп цен товаров. Кроме того, этот формат позволяет выгружать цены товара только в одной, единой для всех цен товара, валюте.
    Если вы не используете разбивку цен товаров торгового каталога в зависимости от количества приобретаемых единиц товара, то данный тип экспорта может быть использован и для старших (4.0.5 и выше) версий модуля Торговый каталог.
    [3] Файл | Название файла - PHP скрипта, осуществляющего экспорт.
    [4] Профиль Название профиля выгрузки.

    Профиль "по умолчанию" перед экспортом всегда запрашивает информационный блок, который требуется выгрузить. При экспорте с использованием пользовательского профиля, экспорт осуществляется автоматически, при этом выгружается именно тот информационный блок, который был выбран при создании профиля.
    [5] Меню | Указывает, помещен ли данный профиль для быстрого доступа в левое меню административной части. Поместить профиль в левое меню можно при помощи действия Добавить в меню в колонке Действия.
    [6] Агент | Указывает, существует ли агент, осуществляющий в случае необходимости (по истечении определённого интервала времени) автоматическую выгрузку элементов каталога. Создать агента для профиля можно при помощи действия Создать агента в колонке Действия.
    [7] Cron | Указывает, привязан ли профиль к утилите cron для автоматической периодической выгрузки. Привязка профиля к утилите cron осуществляется при помощи действия Привязать к cron в колонке Действия.
    [8] Использован | Дата и время последнего экспорта с использованием данного профиля.

    См. также

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


Экспорта каталога в CSV (профиль по умолчанию)

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Экспорт каталога в CSV (профиль по умолчанию)

Выгрузка данных в CSV формате позволяет организовать обмен данными между сайтом и другими программами (например, Microsoft Excel).

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

  1. Выберите действие Экспортировать в меню действий соответствующего профиля по умолчанию;
  2. Выберите информационный блок для выгрузки и нажмите на кнопку Далее для перехода на второй шаг;
  3. Задайте свойства формата файла: какой разделитель полей использовать при формировании файла;
  4. Задайте соответствие полей в файле полям в базе. Для этого каждому полю в базе, которое вы хотите видеть в CSV-файле, поставьте в соответствие его порядковый номер в CSV-файле. Если поле не должно присутствовать в CSV-файле, то вам следует снять соответствующий флаг Выгружать;
  5. Введите имя CSV-файла (с полным путём относительно корня сайта), в который будет выгружен каталог. Если такого файла не существует, то он будет создан. Если такой файл существует, то он будет перезаписан;
  6. Нажмите на кнопку Начать выгрузку для начала экспорта.


Ручной экспорт каталогов в Yandex и Froogle (профиль по умолчанию)

Для выгрузки данных в форматах Yandex и Froogle с использованием профиля по умолчанию выберите ссылку Экспортировать напротив соответствующего профиля по умолчанию.

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

  1. После открытия пошагового мастера экспорта выберите информационный блок для выгрузки;
  2. Выберите группы товаров, которые следует экспортировать;
  3. Укажите имя файла для размещения PHP-скрипта, при обращении к которому система сгенерирует XML файл и передаст его запрашивающему узлу;
  4. Нажмите на кнопку Экспортировать для начала экспорта.


Ручной экспорт каталогов в Yandex Simple (профиль по умолчанию)

Для выгрузки данных в форматах Yandex Simple с использованием профиля по умолчанию выберите ссылку Экспортировать напротив соответствующего профиля по умолчанию.

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

  1. После открытия пошагового мастера выберите торговые каталоги для экспорта;
  2. Укажите имя файла для размещения PHP-скрипта, при обращении к которому система сгенерирует XML файл и передаст его запрашивающему узлу;
  3. Нажмите на кнопку Экспортировать для начала экспорта.


Создание профилей экспорта

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

Для создания профиля экспорта выберите ссылку Добавить профиль напротив соответствующего формата экспорта в форме Магазин -> Торговый каталог -> Настройка экспорта.

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

См. также

Ручной экспорт каталогов в CSV (профиль по умолчанию)
Ручной экспорт каталогов в Yandex и Froogle (профиль по умолчанию)
Ручной экспорт каталогов в Yandex Simple (профиль по умолчанию)


Автоматический экспорт каталогов в Яндекс.Товары

Модуль торгового каталога имеет возможность выгрузки каталогов товаров в XML файл, подходящий для размещения в системе Яндекс.Товары.

Укажите в настройках модуля Торговый каталог каталоги, которые необходимо выгружать в XML файл. XML файл будет пересоздаваться с периодичностью, указанной в переменной Период экспорта в Яндекс.Товары. Готовый файл будет располагаться по адресу http://ваш_сайт/upload/yandex.php (вместо подстроки ваш_сайт должен быть указан реальный адрес сайта, подстрока upload берется из переменной Папка по умолчанию для загрузки файлов настроек Главного модуля).

Готовый файл http://ваш_сайт/upload/yandex.php может принимать дополнительные параметры referer1 и referer2, которые служат для формирования ссылок на товары с учётом рекламных компаний. Например, если запросить адрес

http://ваш_сайт/upload/yandex.php?referer1=wizard&referer2=soft

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

http://ваш_сайт/catalog/detail.php?ID=8192&r1=wizard&r2=soft

Если параметр referer1 не задан, то он принимает значение "yandext". Например,

http://ваш_сайт/catalog/detail.php?ID=8192&r1=yandext&r2=


Шаблоны

Информация, содержащаяся в этом разделе, является дополнительной к описанию шаблонов экспорта в разделе Экспорт. Детальное описание.

Шаблоны экспорта

Шаблоны должны быть расположены в каталоге /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() ?>">
        Выберите инфоблок:
        <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;
}
?>


Настройка импорта

В этом разделе

  • Контекстная панель
  • Настройки импорта

    • Система 1С-Битрикс: Управление сайтом предусматривает наполнение и изменение торговых каталогов сайта с помощью загрузки данных из внешних файлов. Для настройки параметров импорта служит форма Настройка импорта: Магазин -> Торговый каталог -> Настройка импорта.

    Вверху страницы отображен путь к каталогу, где находятся скрипты импорта. По умолчанию /bitrix/php_interface/include/catalog_import/.

    Контекстная панель

    Кнопка | Описание
Добавить профиль | Ссылка Добавить профиль позволяет создать новый профиль импорта данного типа.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Настройки импорта

    Действия | Название | Файл | Профиль | В меню | В агентах | На сron'e | Использован
[1] | [2] | [3] | [4] | [5] | [6] | [7] | [8]
    Поле | Описание
    [1] Действия над профилем импорта Операции, которые могут быть применены к профилю:
    • Импортировать - запуск профиля импорта;
    • Добавить в меню - добавления ссылки на профиль импорта в левое меню административной части сайта;
    • Создать агента - создание PHP функции-агента для автоматического импорта с использованием данного профиля;
    • Повесить на cron - привязка профиля к системной утилите cron для автоматического импорта;
    • Удалить профиль - удаление профиля.
    [2] Название Название типа профиля импорта, например, CommerceML.

    Примечание
    Для импорта данных из файлов формата CSV доступно два типа профиля:

    Import CSV(new) - данный формат импорта доступен при установленном в системе модуле Торговый каталог версии 4.0.5 и старше. Этот формат позволяет загружать данные с учётом группировки цен товаров, в зависимости от количества приобретаемых товаров, а также снимает ограничение с количества объединяемых таблиц, содержащих информацию о товарах. Кроме того, данный формат позволяет загружать цены товара в валюте, указанной для каждой цены.

    Import CSV- данный формат загрузки используется в системах с версией модуля Торговый каталог ниже 4.0.5. Этот формат накладывает ограничение на количество объединяемых таблиц с информацией о товарах (не более 30), а также не позволяет осуществлять загрузку групп цен товаров. Кроме того, этот формат позволяет загружать цены товара только в одной, единой для всех цен товара, валюте.
    По умолчанию данный тип импорта не доступент. Если вы хотите импортировать данные в формате Import CSV, то вам необходимо добавить соответствующий пункт в административное меню системы вручную.
    [3] Файл | Имя файла - PHP-скрипта, осуществляющего импорт.
    [4] Профиль Название профиля импорта.

    Профиль "по умолчанию" каждый раз перед началом операции предлагает указать параметры импорта. При использовании пользовательского профиля, импорт осуществляется автоматически в соответствии с параметрами, указанными при создании профиля.
    [5] В меню | Указывает, помещен ли данный профиль для быстрого доступа в левое меню административной части. Поместить профиль в левое меню можно при помощи действия Добавить в меню в колонке Действия.
    [6] В агентах | Указывает, существует ли агент, осуществляющий в случае необходимости (по истечении определённого интервала времени) автоматическую загрузку элементов каталога. Создать агента для профиля можно при помощи действия Создать агента в колонке Действия.
    [7] В cron'е | Указывает, привязан ли профиль к утилите cron для автоматической периодической загрузки данных. Привязка профиля к утилите cron осуществляется при помощи действия Привязать к cron в колонке Действия.
    [8] Использован | Дата и время последнего импорта с использованием данного профиля.


Импорт из файлов формата CSV

В этом разделе

  • Предварительная настройка импорта
  • Импорт каталога
  • Примеры файлов для импорта
  • Import CSV (new)
  • Import CSV

    • Предварительная настройка импорта

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

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

    1. Создайте и настройте требуемый информационный блок, если его ещё нет.
    2. Создайте в информационном блоке все необходимые свойства (для элементов информационного блока должны быть заданы те же свойства, что и для товаров, импортируемых из CSV файла).
    3. Настройте информационный блок на использование в качестве торгового каталога (см. Торговый каталог).
    4. Загрузите иллюстрации товаров (если они есть) на сайт.

    Импорт каталога

    Загрузка каталога из CSV файла осуществляется в несколько этапов.

    Шаг 1

    1. Откройте форму импорта данных: Магазин -> Торговый каталог-> Настройка импорта -> Импортировать.
    2. Если CSV файл с данными находится на локальном диске, выберите его с помощью кнопки Обзор...(Browse...) в поле ввода Файл данных с моего компьютера.
      Если файл с данными находится на сайте, найдите его с помощью дерева папок и убедитесь, что полный путь к нему попал в поле Файл данных с сайта.
      Если файл данных имеет большой размер и находится на вашем локальном компьютере, то рекомендуется сначала выкачать этот файл на сайт с помощью любого FTP-клиента.
    3. Выберите информационный блок, в который вы хотите загрузить данные.
    4. Если у вас есть готовая схема загрузки для данного CSV-файла, то вы можете выбрать ее. В этом случае загрузка произойдет сразу, и дальнейшие шаги будут опущены.

      Внимание!
      Схема должна в точности соответствовать загружаемому файлу. В противном случае результат загрузки непредсказуем.

    5. Нажмите кнопку Далее для перехода ко второму шагу.
      Если вы указали схему загрузки, загрузка начнется немедленно, и дальнейшие шаги будут пропущены.

    Шаг 2

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

      В зависимости от вашего выбора необходимо заполнить соответствующую форму настроек:

      • если вы выбрали формат с разделителями, то укажите в поле Разделитель полей соответствующий разделитель;
      • если вы выбрали формат с фиксированной шириной полей, то в поле Метки разделителя укажите номера колонок, которые разделяют поля.
    2. Укажите, содержит ли первая строка файла имена полей (опция Первая строка содержит имена полей). Если вы отметите эту опцию, а файл не содержит имен полей, первая строка файла будет обработана неправильно.
    3. Нажмите кнопку Далее для перехода к третьему шагу.

    Шаг 3

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

      Если поле является элементом каталогизации, то установите ему в соответствие значение Группа уровня X.

      Обязательно должно быть установлено хотя бы одно из значений Уникальный идентификатор (B_IBLOCK_ELEMENT.XML_ID) или Название (B_IBLOCK_ELEMENT.NAME). Эти поля используются для сопоставления товаров в файле товарам в базе данных.

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

    2. Для загрузки товаров с иллюстрациями необходимо предварительно выгрузить картинки в какой-либо каталог на сайте с помощью любого FTP-клиента. Задайте в поле Путь к картинкам путь к каталогу на сайте, в который вы выгрузили иллюстрации.
    3. Укажите, как поступать с теми товарами, которые есть в базе, но которых нет в импортируемом CSV файле:
      • выберите удалить для того, чтобы полностью заменить существующий набор товаров загружаемым из файла;
      • выберите деактивировать для деактивации товаров. Деактивируемые товары не удаляются из базы данных, но и не показываются покупателям;
      • выберите не трогать для того, чтобы просто добавить данные из импортируемого файла в базу данных.
    4. Если вы будете регулярно повторять загрузку CSV файлов с точно такой же структурой, то имеет смысл сохранить схему загрузки (настройки загрузки) и использовать ее при последующих загрузках.

      Внимание!
      Сохраненную схему вы можете использовать только на файлах с абсолютно совпадающей структурой; в противном случае, результат загрузки будет непредсказуем.

    5. Нажмите кнопку Загрузить данные для начала загрузки.

    Примеры файлов

    Пример корректного CSV файла данных для формы Import CSV (new)

Уникальный идентификатор;Название;Количество;Свойство_Battery;Группа;Покупка От;До;Базовая цена;Валюта;Розничная цена;Валюта
295;Siemens S55;10;90;Li-Ion;Siemens;1;10;160.00;USD;251.20;USD;N
295;Siemens S55;10;90;Li-Ion; Siemens;11;20;150.00;USD;235.50;USD;N
295;Siemens S55;10;90;Li-Ion;Siemens;21;;140.00;USD;219.80;USD;N
297;Siemens S46;2;680;Li-Ion;Siemens;1;10;85.00;USD;100.73;USD;N
297;Siemens S46;2;680;Li-Ion;Siemens;11;20;80.00;USD;94.80;USD;N
297;Siemens S46; 2;680;Li-Ion;Siemens;21;;75.00;RUR;88.88;RUR;N
325;Siemens U15;5;720;Li-Pol; Siemens;1;10;310.00;USD;367.35;USD;N
325;Siemens U15;5;720;Li-Pol;Siemens;11;20;290.00;USD;343.65;USD;N
325;Siemens U15;5;720;Li-Pol;Siemens;21;;270.00; USD;310; USD;N

    Пример корректного CSV файла данных для формы Import CSV

Группа;Подгруппа;Код;Товар;Короткое описание;Полное описание;Розничная цена;Оптовая цена;Количество;Картинка
Видеокарты;ASUS;1245;ASUS V9950/TD;GF FX5900 128Mb AGP8x, DirectX 9 and OpenGL1.4 support;"Серия V9950 и семейство GeForce FX 5900 выводят производительность в графике на качественно новый уровень; шина обмена данными с памятью шириной в 256 бит и эксклюзивная технология Lightspeed Memory Architecture от NVIDIA делают возможным наложение сложных текстур, освещения и других эффектов сразу на всю сцену"; $392,00; $369,95;1000; 9233.jpg
Видеокарты;Chaintech;20673;A-FX20 64TV;GeForce FX5200, 64MB DDR, 8xAGP, 64bit, DVI, TV-out;"Основные характеристики: Чип  NVIDIA GeForce FX 5200; RAMDAC  350 МГц; максимальное разрешение 2D/3D  2048 x 1536 @ 75 Гц"; $82,95; $75,95;1000;20673.jpg


Импорт из "1С: Предприятие" версии 7.7 (загрузка данных)

В этом разделе

  • Загрузка из самостоятельного CML-файла
  • Прямая загрузка из "1С: Предприятие" 7.7

    • Модуль торгового каталога позволяет загружать (импортировать) данные в формате CommerceML версии 1.0.

    CommerceML - это единый стандарт обмена коммерческой информацией в формате XML, поддерживаемый программой 1C. Стандарт учитывает отечественную специфику и включает несколько универсальных решений, необходимых для российских Интернет-компаний и торговых организаций.

    Экспорт из "1С: Предприятие" версии 7.7 в формате CommerceML 1.0 возможна двумя способами: из файла в формате CommerceML или напрямую из 1С.

    Загрузка из самостоятельного файла CommerceML

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

    Далее выполните следующие шаги.

    1. Зайдите на данную форму загрузки данных модуля торгового каталога (Магазин -> Торговый каталог -> Настройки импорта -> Импортировать) и:
      • либо выберите файл на диске локального компьютера (в этом случае файл будет сначала загружен на сервер, а только потом загружен в базу);
      • либо выберите файл на сервере (например, если вы уже закачали его при помощи FTP-клиента).
    2. Укажите, в информационный блок какого типа загружать данные. Требуемый тип информационного блока должен быть предварительно создан вами.
    3. Определите, как обрабатывать те товары, которые уже есть в базе данных, но отсутствуют в импортируемом файле данных:
      • Выберите Удалить для того, чтобы полностью заменить существующий каталог загружаемым из файла.
      • Выберите Деактивировать для деактивации товаров. Деактивируемые товары не удаляются из базы данных, но и не показываются покупателям.
      • Выберите Оставить как есть для того, чтобы просто добавить данные из импортируемого файла в базу банных.
    4. Нажмите кнопку "Начать загрузку".

    Прямая загрузка из 1С

    Для выгрузки каталога на сервер напрямую из "1С: Предприятие" 7.7 (не через файл), необходимо добавить новый сайт в справочник Сайты системы "1С: Предприятие" 7.7 (меню Справочники -> Прочие -> Сайты).
    В поле Адрес сайта укажите: http://ваш_сайт/bitrix/admin/cat_1c_auto.php. В поля Имя пользователя и Пароль введите данные любого пользователя сайта, имеющего права на запись в модуль Торгового каталога. Строка ваш_сайт должна быть заменена на адрес вашего сайта.

    Для выгрузки каталога из "1С: Предприятие" 7.7 на сайт:

    1. Откройте диалоговое окно Выгрузка пакета коммерческих предложений (меню Сервис -> Обмен данными в формате CommerceML -> Выгрузка пакета коммерческих предложений).
    2. Введите срок действия ваших коммерческих предложений.
    3. Выберите в поле По каталогу каталог, который вы хотите выгрузить на сайт.
    4. Установите флаг Выгружать каталог товаров.
    5. Укажите, какие типы цен должны быть выгружены на сервер.
    6. Если вы хотите выгрузить только некоторые товары каталога, выберите их с помощью кнопки "Подбор номенклатуры".
    7. Если вы хотите выгружать на сервер непосредственно из 1С, установите флаг Отправить на сайт и выберите сайт, на который хотите загрузить каталог.
      Обратите внимание, что с теми товарами, которые присутствуют на сайте, но не будут выгружены из 1C, система поступит так, как указано в настройках модуля.
    8. Если вы хотите выгрузить каталог через файл, то укажите имя файла, в котором будет сохранен ваш каталог.
    9. Нажмите кнопку "Выгрузить".


Выгрузка каталога из 1С на сайт

Для выгрузки каталога из «1С» на сайт необходимо выполнить следующие действия.

  1. Откройте диалоговое окно Выгрузка пакета коммерческих предложений (меню Сервис -> Обмен данными в формате CommerceML -> Выгрузка пакета коммерческих предложений).
  2. Введите срок действия ваших коммерческих предложений.
  3. Выберите в поле По каталогу каталог, который хотите выгрузить на сайт.
  4. Установите флаг Выгружать каталог товаров.
  5. Укажите, какие типы цен должны быть выгружены на сервер.
  6. Если вы хотите выгрузить только некоторые товары каталога, выберите их с помощью кнопки "Подбор номенклатуры".
  7. Если вы хотите выгружать на сервер непосредственно из 1С, установите флаг Отправить на сайт и выберите сайт, на который хотите загрузить каталог.
  8. Если вы хотите выгрузить каталог через файл, то укажите имя файла, в котором будет сохранен ваш каталог.
  9. Нажмите кнопку "Выгрузить".


Загрузка каталога из CSV файла

Каталоги сайта могут заполняться и изменяться с помощью загрузки данных из файлов формата CSV (например, создаваемых в MS Excel). Для загрузки данных предназначена форма Import CSV (new) административного раздела сайта.

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

  1. Создайте и настройте информационный блок (если каталог ещё не создан).
  2. Создайте в информационном блоке все необходимые свойства.
  3. Сделайте информационный блок каталогом (см. Торговый каталог).
  4. Выгрузите картинки товаров, если они есть, на сайт.

Для загрузки каталога из CSV файла выполните следующие действия.

  1. Откройте форму Import CSV (new): Магазин -> Торговый каталог -> Настройки импорта -> Импортировать (либо Добавить профиль).
  2. Если CSV файл с данными находится на локальном диске, выберите его с помощью кнопки "Обзор" в поле ввода Файл данных с моего компьютера. Если файл данных имеет большой размер и находится на вашем локальном компьютере, то рекомендуется сначала выкачать этот файл на сайт с помощью любого FTP-клиента.
    Если файл с данными находится на сайте, откройте его с помощью кнопки "Выбрать" и убедитесь, что полный путь к нему попал в поле Файл данных с сайта.

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

  5. Выберите подходящий формат CSV файла с данными:
    • с разделителями - поля разделяются специальным символом (например, запятой или пробелом);
    • фиксированная ширина полей.

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

  6. Если вы выбрали формат с разделителями, то укажите в поле Разделитель полей соответствующий разделитель. Если вы выбрали формат с фиксированной шириной полей, то укажите в поле Метки разделителя номера колонок, которые разделяют поля.
  7. Укажите, содержит ли первая строка файла имена полей или сразу идут данные.
  8. Нажмите на кнопку "Далее" для перехода к третьему шагу.
  9. Задайте соответствие полей в файле полям в базе. Для каждого поля из файла данных выберите соответствующее поле базы данных.
    Если поле является элементом каталогизации, то установите ему в соответствие значение Группа уровня X.
  10. Обязательно должно быть установлено хотя бы одно из значений Уникальный идентификатор (B_IBLOCK_ELEMENT.XML_ID) или Название (B_IBLOCK_ELEMENT.NAME). Эти поля используются для сопоставления товаров в файле товарам в базе данных.

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

  11. Для загрузки товаров с картинками необходимо предварительно выгрузить картинки в какой-либо каталог на сайте с помощью любого FTP-клиента.
    Задайте в поле Путь к картинкам путь к каталогу на сайте, в который вы выгрузили картинки.
  12. Укажите, как поступать с теми товарами, которые есть в базе, но которых нет в CSV файле. Вы можете деактивировать (по умолчанию) или удалить такие товары, а так же оставить их без изменения.
  13. Для начала загрузки нажмите кнопку "Загрузить" либо "Сохранить" (если вы создавали новый профиль).


Таблица цен на товар.

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Таблица цен на товар"

Компонент показывает цены указанного товара с учётом прав на доступ текущего покупателя.

Синтаксис вызова

$APPLICATION->IncludeFile("catalog/price_table.php",
    Array(
    "PRODUCT_ID" => $GLOBALS["ID"],
    // Код товара
    "PRICE_TYPE_OLD" => "1",
    // Тип "старой" цены
    "PRICE_TYPE_NEW" => "7",
    // Тип "новой" цены
    "BASKET_PAGE" => "basket.php",
    // Страница корзины
    "CACHE_TIME" => "600",
    // Время кэширования данных (секунд)
    )
);

Параметры

PRODUCT_ID
Код товара, цены которого нужно показать.
PRICE_TYPE_OLD
Тип "старой" цены. Требуется для организации представления типа "старая цена: 100 р., новая цена: 90 р., вы экономите: 10 р.".
PRICE_TYPE_NEW
Тип "новой" цены.
BASKET_PAGE
Скрипт корзины.
CACHE_TIME
Период (в секундах), на который кешируется результат. Установите это поле в ноль для отключения кеширования.


Статистика

Модуль сбора и отображения статистики позволяет накапливать и анализировать все основные показатели работы сайта, получить объективную численную статистику для анализа, вести детальный учет эффективности внешних посещений ресурса.

Модуль статистики дает возможность:

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


Список терминов

Алфавитный список терминов
  • Возврат по рекламной кампании
  • Запись стоп-листа
  • Отрезок пути по сайту
  • Поисковая фраза
  • Поисковик
  • Посетитель
  • Путь по сайту
  • Рекламная кампания
    •
  • Сессия
  • Событие
  • Ссылающийся сайт
  • Точка входа
  • Точка выхода
  • Хит
  • Хит поисковика
  • Хост
  • UserAgent
    •
    Хит
    Под термином хит понимается одна загрузка страницы. Нажатие на ссылку на сайте и загрузка страницы приводит к генерации хита. Перезагрузка страницы с помощью F5 или Ctrl+F5 генерирует хит. Запрос к несуществующей страницы (404 ошибка) также генерирует хит.
    Сессия
    Под термином сессия в системе 1С-Битрикс: Управление сайтом понимается сессия PHP. Сессия может открываться в момент захода на сайт и закрывается при закрытии окна браузера. Также новая сессия открывается при авторизации посетителя и закрывается, если закончить сеанс авторизации (разлогиниться). Синонимом термина сессия можно считать термин заход. Другими словами, сессия - один визит на сайт.
    Хост
    Термин хост означает IP адрес посетителя сайта. В системе 1С-Битрикс: Управление сайтом все хосты представленные в статистических отчетах имеют свою степень уникальности.

    В меню Статистика вы можете видеть количество уникальных хостов (IP адресов) за день, а в отдельной ячейке – количество уникальных хостов относительно всего времени ведения статистики, с момента инсталляции модуля.

    Для рекламных кампаний уникальность определяется только в пределах данной рекламной кампании, т.е. все посетители и их IP адреса, зашедшие по данной рекламной кампании, запоминаются в специальной таблице и уникальность IP адреса, а также посетителя, определяется фактом наличия данного IP адреса, либо посетителя, в вышеописанной таблице. Как правило, в большинстве систем сбора статистики принято, что количество хостов не должно отличаться от количества посетителей более чем на 10% (чем больше различие, тем менее точно считается статистика). В данном модуле статистики различие, как правило, не превышает 3%.
    Посетитель
    Посетителем является уникальный ID, выданный любому браузеру и сохраняющийся в файлах cookie (файлы, используемые браузерами для хранения информации от посещенных ранее сайтов на локальной машине). Если браузер (либо любая другая программа) не поддерживает cookie (обычные и/или сессионные), используется специальный механизм идентификации посетителя по хэш-функции (MD5) от переменных окружения, включающих в себя IP адрес, настройки браузера, настройки провайдера и другие параметры, характеризующие посетителя в данный момент его захода на сайт.

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

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

    Для рекламных кампаний, также, как и для хостов, соблюдается уникальность посетителей в пределах данной рекламной кампании. При этом под новыми посетителями понимаются посетители, впервые пришедшие на сайт в обоих случаях.
    Событие
    Под событием можно понимать любое действие, происходящее на сайте, либо вне его пределов. В модуле статистики можно собирать информацию только для тех событий, обработка которых были изначально запланирована и запрограммирована разработчиком сайта (см. раздел Для разработчиков – События). Примерами событий могут служить: скачивание файла, уход на внешнюю платежную систему, оплата заказа, отмена заказа, клик по баннеру, уход на любой другой сайт по ссылке с вашего сайта, переход на тут или иную страницу вашего сайта.
    Ссылающийся сайт
    Под термином ссылающаяся страница или ссылающийся сайт понимается любой веб-ресурс, на котором есть страницы, содержащие ссылки на ваш сайт. Если по этой ссылке переходит посетитель, адрес сайта и страницы, с которой посетитель перешел, запоминаются в модуле статистики и считаются ссылающимися.
    Поисковая фраза
    Если посетитель в какой-либо поисковой системе ввел поисковую фразу и после поиска в результатах обнаружил адрес вашего сайта и кликнул эту ссылку, он попадет на ваш сайт. В этом случае считается, что посетитель зашел на ваш сайт с поисковой фразой. Все переходы с поисковыми фразами фиксируются в модуле статистике и отображаются в меню Поисковые фразы. Помимо того, что в модуле фиксируется поисковая фраза, фиксируется также и ссылающаяся страница/сайт, представляющая из себя адрес страницы поисковой системы, содержащей результаты поиска.
    Поисковик
    Под термином поисковик понимается любая поисковая система Интернета. Пример: Google, Rambler, Yandex, Aport и т.д. Каждая поисковая система характеризуется UserAgent’ом, под которым идентифицируется индексирующий сайты робот, а также группой доменов – адресов сайтов, на которых можно воспользоваться поиском и переменной, содержащей поисковую фразу.
    Хит поисковика
    Под данным термином понимается факт индексации одной страницы. Все поисковые системы имеют ряд механизмов для индексации Интернет ресурсов. Сама индексация осуществляется так называемыми поисковыми роботами. Каждый робот имеет идентификатор хранящийся в UserAgent’е. В момент когда робот пытается проиндексировать ту или иную страницу вашего сайта, он запрашивает ее у веб-сервера и загружает ее HTML-код (отсюда название хит) и затем производит индексацию содержимого этой страницы. Все подобные загрузки фиксируются модулем статистики в виде хит поисковика, при этом поисковые роботы между собой различаются по UserAgent’у.
    UserAgent
    Под данным термином понимают содержимое поля UserAgent в протоколе HTTP, которое заполняется программой, обращающейся к веб-серверу. Такой программой могут быть: браузеры, программы скачивания, offline-браузеры, поисковые роботы и т.д. Данное поле предназначено для самоидентификации таких программ. Как правило, значение этого поля можно самостоятельно поменять, многие программы позволяют это делать через стандартный интерфейс (например, ReGet).

    Примеры значений UserAgent’ов:
    1) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; NetCaptor 7.0.2 Final; .NET CLR 1.0.3705)
    Так идентифицирует себя браузер NetCaptor.
    2) ReGet SE version 1.3.1*
    Так идентифицирует себя программа для скачивания файлов из Интернета - ReGet.
    Запись стоп-листа
    Это набор параметров, по которым необходимо отфильтровать поток посетителей и выполнить с ними какие- либо действия: перенаправить, показать сообщение, просто не показать сайт и т.п.
    Рекламная кампания
    В модуле статистики предусмотрен механизм обсчета определённых потоков посетителей, приходящих на сайт. Каждый такой поток можно идентифицировать по ряду признаков.
    1. Наличие в ссылке, ведущей на ваш сайт, одного или двух параметров – referer1, referer2. Пример подобной ссылки: http://www.1c-bitrix.ru/?referer1=bsm&referer2=doc.
    2. Поисковые системы, с которых могут заходить посетители.
    3. Маски любых ссылающихся страниц.
    4. Маски страниц вашего сайта, на которые приходят посетители.
    Для каждого такого потока посетителей отдельно считаются:
    1. Сессии.
    2. Хиты.
    3. Хосты.
    4. Посетители.
    5. Новые для сайта посетители.
    6. Посетители добавившие сайт в Избранное.
    7. Все события, инициированные посетителями данной рекламной кампании.
    Для ряда этих данных в отчетах по рекламным кампаниям вы можете видеть две цифры:
    • На прямом заходе по рекламной кампании
    • На возврате по рекламной кампании.
    Прямым заходом по рекламной кампании считается сессия, открытая в момент идентификации посетителя как посетителя по той или иной рекламной кампании. Т.е., если вы переходите по ссылке http://www.1c-bitrix.ru/?referer1=bsm&referer2=doc, то после того, как вы зайдете на сайт, у вас откроется сессия, и вы будете идентифицированы как посетитель по рекламной кампании: r1: bsm; r2: doc. Пока сессия открыта, вы считаетесь посетителем, сделавшим прямой заход по соответствующей рекламной кампании.
    Возврат по рекламной кампании
    Возвратом по рекламной кампании считается сессия, открытая посетителем после того, как он сделал прямой заход по данной рекламной кампании. Т.е., если вы после прямого захода по рекламной кампании не заходили и не идентифицировались по другим рекламным кампаниям, то все ваши последующие заходы на сайт будут считаться возвратами по той рекламной кампании, по которой вы сделали прямой заход.
    Точка входа
    Если вы только что открыли браузер и набрали любой адрес, ведущий на ваш сайт, то, как только вы зайдете на сайт по этому адресу, он будет считаться точкой входа на сайт. Другими словами, точка входа – это первый хит в сессии.
    Точка выхода
    Когда вы заходите на сайт, вы можете просмотреть одну и более страниц. Последняя страница, которую вы просмотрите будет являться точкой выхода. Другими словами, точки выхода – это последние страницы в сессиях.
    Путь по сайту
    Путь по сайту – это набор страниц (одна и более), которые последовательно открывал посетитель сайта, пользуясь ссылками на этих страницах. Путь может разветвляться, образуя несколько путей, в том случае, если посетитель открывает с одной страницы сразу несколько ссылок. В Internet Explorer это можно сделать, воспользовавшись выпадающим меню Открыть в новом окне, либо открывая ссылки, удерживая клавишу Shift.
    Отрезок пути по сайту
    В модуле статистики принято следующее определение отрезка пути по сайту.
    Отрезок пути по сайту это набор страниц состоящий из первой страницы пути и произвольного количество последующих страниц данного пути.

    К примеру, вы заходите на сайт на страницу 1, затем видите на ней ссылку, ведущую на страницу 2, и идете по ней, затем следуете на ссылку ведущую на страницу 3. Таким образом, вы проследовали по сайту одним путём, состоящим из трех отрезков:

    • страница 1
    • страница 1 –> страница 2
    • страница 1 -> страница 2 -> страница 3
    Если со страницы 3 вы откроете ссылку, ведущую на страницу 4 (shift+ссылка или пункт меню Open in New Window), и точно также - ссылку ведущую на страницу 5, то в сумме вы пройдете по двум путям, каждый из которых будет состоять из 4 отрезков, первые 3 из которых будут одинаковыми.


Сводная статистика

В этом разделе

  • Фильтр
  • Отчеты и статистика
  • Посещаемость
  • Рекламные кампании (переходы)
  • События
  • Ссылающиеся сайты
  • Поисковые фразы
  • Индексация сайта
    •

    Эта страница представляет обобщенную информацию по статистике сайта.

    Фильтр

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

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

    Для того чтобы отобразить данные с учётом фильтра, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Графики посещаемости сайта | Открывает форму просмотра графиков посещаемости.

    Посещаемость

    Общая посещаемость | Сегодня | Вчера | Позавчера | Всего
Хитов | [1] | [2] | [3] | [4]
Хостов | [5] | [6] | [7] | [8]
Сессий | [9] | [10] | [11] | [12]
Событий | [13] | [14] | [15] | [16]
Посетителей
Всего | [17] | [18] | [19] | [20]
Новых | [21] | [22] | [23] |
Добавивших в избранное | [24] | [25] | [26] | [27]
Online | [28] |  |  |
    1. Количество хитов за текущий день.
    2. ... за вчерашний день.
    3. ... за позавчерашний день.
    4. Общее количество хитов за все время ведения статистики.
    5. Количество уникальных IP адресов посетителей (хостов) за текущий день.
    6. ... за вчерашний день.
    7. ... за текущий день.
    8. Общее количество уникальных IP адресов за весь период ведения статистики.
    9. Количество заходов на сайт (сессий) за текущий день.
    10. ... за вчерашний день.
    11. ... за позавчерашний день.
    12. Общее количество заходов на сайт за весь период ведения статистики.
    13. Количество событий за текущий день.
    14. ... за вчерашний день.
    15. ... за позавчерашний день.
    16. Общее количество событий за весь период ведений статистики.
    17. Количество посетителей за текущий день.
    18. ... за вчерашний день.
    19. ... за позавчерашний день.
    20. Общее количество посетителей за весь период ведения статистики.
    21. Количество посетителей, пришедших на сайт впервые за текущий день.
    22. ... за вчерашний день.
    23. ... за позавчерашний день.
    24. Количество посетителей, добавивших сайт в избранное за текущий день.
    25. ... за вчерашний день.
    26. ... за позавчерашний день.
    27. ... за весь период ведения статистики.
    28. Количество посетителей, находящихся в данное время на сайте.

    Рекламные кампании (переходы) (Top 10)

    Рекламная кампания | Сегодня | Вчера | Позавчера | Всего
[1] | [2] | [3] | [4] | [5]
Всего | [6] | [7] | [8] | [9]
    1. Наименование рекламной кампании.
    2. Количество сессий на прямом заходе (количество переходов) за текущий день.
    3. ... за вчерашний день.
    4. ... за позавчерашний день.
    5. Общее количество сессий на прямом заходе за все время рекламной кампании.
    6. Сумма всех переходов по всем рекламным кампаниям за текущий день.
    7. ... за вчерашний день.
    8. ... за позавчерашний день.
    9. Общая сумма всех переходов по всем рекламным кампаниям за все время ведения статистики.

    События (Top 10)

    Этот отчет показывает количество произошедших событий за день. Каждое событие суть переход по ссылке, содержащей параметры события event1 и event2. Первая колонка отчета показывает имя события, представленное как event1 / event2. Например, если существует событие с event1=vote и event2=phones, его имя будет показано как vote / phones_poll.

    Имя | Сегодня | Вчера | Позавчера | Всего
[1] | [2] | [3] | [4] | [5]
Всего | [6] | [7] | [8] | [9]
    1. Наименование типа события.
    2. Количество событий соответствующего типа за текущий день.
    3. ... за вчерашний день.
    4. ... за позавчерашний день.
    5. Общее количество событий данного типа.
    6. Сумма всех событий за текущий день.
    7. ... за вчерашний день.
    8. ... за позавчерашний день.
    9. Общая сумма всех событий за все время ведения статистики.

    Ссылающиеся сайты (Top 10)

    Сайт | Сегодня | Вчера | Позавчера | Всего
[1] | [2] | [3] | [4] | [5]
Всего | [6] | [7] | [8] | [9]
    1. Ссылающийся сайт.
    2. Количество заходов с соответствующего сайта за текущий день.
    3. ... за вчерашний день.
    4. ... за позавчерашний день.
    5. Общее количество заходов с данного ссылающегося сайта за все время хранения данной статистики (время хранения настраивается в настройках модуля, параметр Сколько дней хранить ссылающиеся домены).
    6. Сумма всех переходов за текущий день.
    7. ... за вчерашний день.
    8. ... за позавчерашний день.
    9. Общая сумма всех переходов за все время ведения статистики.

    Поисковые фразы (Top 10)

    Фраза | Сегодня | Вчера | Позавчера | Всего
[1] | [2] | [3] | [4] | [5]
Всего | [6] | [7] | [8] | [9]
    1. Поисковая фраза, с которой посетитель зашел на сайт.
    2. Количество заходов с соответствующей поисковой фразой за текущий день.
    3. ... за вчерашний день.
    4. ... за позавчерашний день.
    5. Общее количество заходов с данной поисковой фразой за все время хранения данной статистики (время хранения настраивается в настройках модуля, параметр Сколько дней хранить заходы с поисковыми фразами).
    6. Сумма всех переходов с поисковыми фразами за текущий день.
    7. ... за вчерашний день.
    8. ... за позавчерашний день.
    9. Общая сумма всех переходов с поисковыми фразами за все время ведения статистики.

    Индексация (Top 10)

    Имя поисковика | Сегодня | Вчера | Позавчера | Всего
[1] | [2] | [3] | [4] | [5]
Всего | [6] | [7] | [8] | [9]
    1. Наименование поисковой системы (либо наименование системы, данные по которой собираются как по поисковикам).
    2. Количество индексаций за текущий день.
    3. ... за вчерашний день.
    4. ... за позавчерашний день.
    5. Общее количество индексаций за все время ведения статистики.
    6. Сумма всех индексаций по всем поисковикам за текущий день.
    7. ... за вчерашний день.
    8. ... за позавчерашний день.
    9. Общая сумма всех индексаций по всем поисковикам за все время ведения статистики.


Посещаемость

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Динамика посещаемости

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

Фильтр

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

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

Контекстная панель

Кнопка | Описание
Сгруппировано по... | Нажатие этой кнопки открывает контекстное меню, в котором можно выбрать тип и плотность группировки отображаемой информации: по датам, по часам, по дням недели или по месяцам.
Excel | Экспортирует данные из отображаемой таблицы (не график) в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

График посещаемости сайта

График отображает данные, выбранные для его построения в фильтре.

Пример графика

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

Таблица посещаемости сайта

ID | Дата | День недели | Хитов | Хостов | Сессий | Событий | Посетителей | Новых | Избр.
[1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] | [10]
Выбрано: [11]
  1. ID записи в базе данных статистики.
  2. Дата, на которую показывается информация в строке.
  3. День недели даты (пн - вс).
  4. Количество хитов за соответствующий день.
  5. Количество уникальных хостов за этот день.
  6. Количество сессий за день.
  7. Количество событий, инициированных в соответствующий день.
  8. Общее количество посетителей сайта.
  9. Количество новых посетителей сайта.
  10. Количество посетителей, добавивших сайт в избранное.
  11. Количество выбранных из базы записей.


Разделы и страницы

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Разделы и страницы. Точки входа и выхода

В этом разделе

  • Фильтр
  • Контекстная панель
  • Диаграмма
  • Отчет о посещаемости разделов и страниц, точках входа и выхода
  • Пример графика хитов одного раздела сайта
    •

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

    • диаграммы и отчёты посещаемости разделов и страниц сайта;
    • диаграммы и отчёты точек входа на сайт и точек выхода.

    Фильтр

    Параметр | Описание
    Период | Период времени, за который следует отобразить диаграмму.
    Страница/раздел* Выражение, которое позволит отфильтровать показываемые разделы и файлы в диаграмме. Дополнительно можно указать:
    • сайт, страницы/разделы которого следует включить в диаграмму и отчёт;
    • метод отображения ошибочных запросов (ошибка 404): вместе с остальными страницами, только ошибочные запросы или все, кроме ошибочных запросов.
    Что показать | Сущности, включаемые в диаграмму - только разделы сайта, только страницы сайта, либо все.
    Тип данных для рекламной кампании Тип данных для включения в отчет:
    • по суммарным значениям прямых заходов и возвратов;
    • на прямых заходах по рекламным кампаниям;
    • на возвратах.

    * - для данных полей вы можете воспользоваться специальными логическими выражениями.

    Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы (не график) в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Диаграмма

    Диаграмма выводится в виде объемной круговой диаграммы, справа от которой расположена легенда:

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

    Для каждого сегмента диаграммы, легенда показывает:

    • для отчета посещаемости - долю страницы или раздела в общем объеме просмотренных страниц. Для отчета по точкам входа/выхода - как часто та или иная страница/раздел были использованы в качестве точек входа или выхода;
    • ссылку (»), ведущую на соответствующую страницу или раздел;
    • ссылку на просмотр диаграммы посещаемости страницы/раздела, либо точек входа/выхода относительно этого раздела. Ссылка выполнена в виде (сокращенного) пути к странице/разделу;
    • количество хитов в соответствии с условиями фильтра.

    На следующем рисунке приведен пример легенды сегмента диаграммы.

    Отчет о посещаемости разделов и страниц, точках входа и выхода

    В зависимости от того, выбран для просмотра отчет Разделы и страницы или Точки входа (выхода), эта таблица показывает соответственно количество хитов или сессий выбранных страниц/разделов.

    Меню действий | Номер | Раздел/страница | Хитов/Сессий | Процент
[1] | [2] | [3] | [4] | [5]
Выбрано: [6]
    1. Кнопка, при нажатии на которую открывается контекстное меню, содержащее следующие команды:
      • График посещаемости данной страницы/раздела - открывает (в отдельном окне) страницу с соответствующим графиком (см. ниже).
      • Статистика переходов по ссылкам с данной страницы/раздела - просмотр отчета о перехода по ссылкам только с этой страницы.
    2. Порядковый номер записи.
    3. Ссылка или путь к странице/разделу.
    4. Количество уникальных хостов (для отчёта Разделы и страницы) или сессий (для отчёта Точки входа (выхода) за выбранный период.
    5. Процент посещений/переходов на/с этой страницы/раздела.

    Примечание: В таблице отчета ссылкой показаны путь к разделу, а путь к странице ссылкой не показывается. Страница - это единичный элемент сайта. Раздел - это папка сайта, в которой содержатся страницы и подпапки.

    Рассмотрим небольшой пример. Пусть в таблице отчета содержатся следующие данные:
    site.ru/news/ 100 хитов /показан со ссылкой
    site.ru/news/ 80 хитов /без ссылки, учитывается страница index.php
    site.ru/news/main.php 5 хитов
    site.ru/news/local.php 15 хитов
    Таким образом, сумма хитов страниц есть число хитов раздела.

    Пример графика хитов одного раздела сайта

    Окно с таким графиком открывается при выборе пункта График посещаемости данной страницы/раздела в меню действий [image] требуемой страницы или раздела.

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить


Пути по сайту

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

Фильтр

Параметра | Описание
Период | Период времени для построения диаграммы.
Количество страниц в пути | Интервал для количества страниц в каждом из путей для диаграммы полных путей.
Первая страница пути* | Маска для любой страницы каждого из путей, попадающих в отчет. Данное поле фильтра нагляднее всего использовать в диаграмме полных путей.
Любая страница пути* | Маска для любой страницы каждого из путей, попадающих в отчет. Данное поле фильтра нагляднее всего использовать в диаграмме полных путей.
Последняя страница пути* | Маска для последней страницы каждого из путей, попадающих в отчет. Данное поле фильтра нагляднее всего использовать в диаграмме отрезков путей.
Рекламные кампании | Позволяет отфильтровать данные отчета по одной или нескольким рекламным кампаниям.
Тип данных для рекламной кампании Если вы выбрали одно или нескольким рекламных кампаний, по которым вы хотите отфильтровать отчет, у вас есть возможность выбрать тип данных. Вы можете построить диаграмму:
  • по суммарным значениям прямых заходов и возвратов;
  • на прямых заходах по рекламным кампаниям;
  • на возвратах.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Начало путей | Нажатие этой кнопки открывает отчет, в котором перечислены все страницы и разделы, с которых посетители начинали навигацию по сайту (начало путей). Отображается после выбора отрезка пути в списке полных путей.
Полные пути / Отрезки путей | Позволяет выбрать тип путей для отображения: только отрезки или полные пути.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Диаграмма путей и отрезков путей

 | Отрезок пути / Страница | Переходов | Процент
номер пути | [1] | [2] | [3]
Выбрано: [4] | Всего: [5] |
  1. Ссылка (»), ведущая на соответствующую страницу, и набор последующих страниц пути либо отрезков пути. Ссылка на имени страницы позволяет перейти на диаграмму для отрезка пути, заканчивающегося данной страницей.
  2. Абсолютное значение количества переходов.
  3. Процентное соотношение количества переходов.
  4. Количество путей, выбранных для отображения.
  5. Общее количество путей.


Внимательность посетителей

В зависимости от того, какой пункт выбран в дереве-меню области доступа к функциям, эта форма показывает графики и диаграммы:
  • длительности сессий посетителей;
  • количества хитов в сессиях посетителей (активность посетителей).

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

Фильтр

Параметр | Описание
Период | Период времени, для которого следует отобразить график и круговую диаграмму.
Сайт | Сайт, графики внимательности посетителей следует отобразить.

Для того чтобы активировать фильтр и построить графики, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Пример графика средней длительности сессий

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

Пример диаграммы длительности сессий

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить


География по странам

В зависимости от того, какой пункт выбран в дереве-меню области доступа к функциям, эта форма показывает графики и диаграммы:
  • сессий по странам в разрезе по дням;
  • новых посетителей;
  • хитов;
  • событий.

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

Фильтр

Параметр | Описание
Период | Период времени, для которого следует отобразить график и круговую диаграмму.
Страна | Страны, которые следует отобразить на графиках. По умолчанию выбраны первые 20 стран в порядке убывания количества новых посетителей.

Для того чтобы активировать фильтр и построить графики, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Тип данных | Нажатие этой кнопки открывает меню, в котором можно выбрать тип данных для отображения на графике и круговой диаграмме: сессии, новые посетители, хиты, события.

Пример графика

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

Пример диаграммы за выбранный период времени

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

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

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

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

Пример:
День 1 - сессии A, B, C
День 2 - сессии A, C
Всего уникальных сессий (за весь период статистики): 3
Сумма сессий по дням (за выбранный период): 5

Для остальных показателей (новые посетители, хиты и события) происходит просто суммирование по дням, поэтому за некоторый период показатель меньше, чем за весь.


Рекламные кампании

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Рекламные кампании. Список кампаний

В этом разделе

  • Фильтр
  • Контекстная панель
  • Таблица рекламных кампаний
  • Дополнительная информация: рекламные кампании
    •

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

    Фильтр

    Параметр | Описание
Найти | Поле, позволяющее найти рекламные кампании по их основным параметрам: идентификатору, referer1 или referer2. Это поле присутствует, даже если фильтр свернут.
ID* | ID рекламных кампаний, которые требуется отобразить.
Referer1 / referer2* | Идентификаторы рекламных кампаний, соответственно referer1 и referer2.
Длительность (дней) | Интервал для фильтрации по длительности рекламной кампании. Длительность - время, прошедшее с момента первого захода по рекламной кампании до последнего прямого захода либо возврата.
Сессий (всего) | Интервал для фильтрации по суммарному значению сессий (на прямом заходе либо возврате).
Посетителей (всего) | Интервал для фильтрации по суммарному значению посетителей (на прямом заходе либо возврате).
Период | Установка данного поля фильтра выводит дополнительный столбец в отчете по рекламным кампаниям, в котором содержатся данные за установленный период.
Внимательность | Интервал для фильтрации по значению внимательности (среднее значение количества хитов за одну сессию).
Посетителей за день | Интервал для фильтрации по количеству посетителей за день (среднее значение количества посетителей за один день).
Затраты | Интервал для фильтрации по полю рекламной кампании затраты. В данном поле может храниться денежная сумма, затраченная на рекламную кампанию.
Доходы | Интервал для фильтрации по полю доходы. Данное поле накапливает все денежные суммы по каждому событию, произошедшему в рамках рекламной кампании. Значение поля может быть изменено вручную.
Прибыль | Интервал для фильтрации по полю прибыль (разница между доходами и затратами на рекламную кампанию).
Рентабельность (ROI) | Интервал для рентабельности рекламной кампании, рассчитывается по формуле: (прибыль/затраты)*100%.
Валюта | Список валют, позволяющий отобразить денежные суммы в той или иной валюте по курсу на текущий день.

    * - для данных полей вы можете воспользоваться специальными логическими выражениями.

    Контекстная панель

    Кнопка | Описание
Добавить | Нажатие этой кнопки открывает форму создания новой рекламной кампании.
Группировка | Позволяет сгруппировать данные таблицы по одному из двух идентификаторов рекламной кампании – referer1 либо referer2, или отменить группировку.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Таблица рекламных кампаний

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора кампаний, к которым предполагается применить какое-либо действие из панели действий, расположенной ниже таблицы кампаний.
    Меню действий Нажатие на кнопку действий в строке конкретной кампании отображает меню, содержащее команды:
    • Анализ рекламной кампании - открывает форму, отображающую детальную информацию по динамике рекламной кампании: сводную статистику, графики, финансовые показатели, события и проч.;
    • Изменить - открывает форму редактирования рекламной кампании;
    • Сбросить - сбрасывает счетчики рекламной кампании: кол-во посетителей, внимательность, финансовые индикаторы;
    • Удалить - удаляет рекламную кампанию;
    Следующие пункты меню присутствуют, если по данной рекламной кампании произошло по крайней мере одно событие (напр., хит).
    • Разделы - открывает форму с отчетом и диаграммой посещаемости разделов и страниц посетителями, пришедшими по этой рекламной кампании;
    • Пути - открывает форму с отчетом и диаграммой путей, по которым прошли посетителями;
    • Динамика - отображает показатели динамики рекламной кампании по дням (сессии, посетители и т.п.);
    • Графики - открывает форму с графиками по рекламной кампании (посещения и события).
    ID | ID рекламной кампании.
    referer1 | Идентификатор рекламной кампании – referer1.
    referer2 | Идентификатор рекламной кампании – referer2.
    Начало | Время первого захода по рекламной кампании.
    Окончание | Время последнего захода либо возврата по рекламной кампании.
    Приоритет | Приоритет рекламной кампании. Это значение вводится при создании (или редактировании) кампании.
    Зашли (сессий) сегодня | Кол-во сессий на прямом заходе (переходов) и возврате* за текущий день.
    Зашли (сессий) всего | Суммарные значения количеств сессий на прямом заходе и на возврате.
    Всего событий сегодня | Количество событий на прямом заходе и возврате за текущий день.
    Всего событий | Количество событий за период (если он установлен в фильтре).
    Выбрано | Количество записей (рекламных кампаний), выбранных из базы данных.
    Отмечено | Количество записей, отмеченных флажками.

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

    Дополнительная информация: рекламные кампании

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

    • Наличие в ссылке, ведущей на ваш сайт, одного или двух параметров – referer1, referer2. Пример подобной ссылки: http://www.1c-bitrix.ru/?referer1=vesti&referer2=news.
    • Поисковые системы, с которых могут заходить посетители.
    • Маски любых ссылающихся страниц.
    • Маски страниц вашего сайта, на которые приходят посетители.

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

    1. Определяются те рекламные кампании, условия которых удовлетворяют параметрам посетителя.
    2. Среди выбранных рекламных кампаний берется кампания с наивысшим приоритетом (задается в настройках рекламной кампании). Если приоритеты одинаковы, то берется самая молодая рекламная кампания (с наибольшим ID).

    В случае, если посетитель пришел на сайт с параметрами referer1 и/или referer2, и с такими идентификаторами не было найдено ни одной рекламной кампании, автоматически создаётся новая рекламная кампания с указанными referer1, referer2 в качестве идентификаторов.


Анализ рекламной кампании

  • Фильтр
  • Таблицы отчетов
  • Вкладка "Статистика"
  • Вкладка "Графики"
  • Вкладка "Финансы"
  • Вкладка "События"
  • Вкладка "Точки входа"
  • Вкладка "Точки выхода"
  • Вкладка "Популярное"
  • Вкладка "Отрезки путей"
  • Вкладка "Пути по сайту"
    •

    Эта форма показывает все данные, собранные системой статистики по выбранной для анализа рекламной кампании (или всем кампаниям). Форма анализа открывается путём нажатия на кнопку меню действий в строке желаемой рекламной кампании и выбора пункта меню Анализ рекламной кампании (на странице обзора рекламных кампаний: Рекламные кампании -> Список кампаний).

    Фильтр

    Параметр | Описание
Найти | Поле, позволяющее отобрать рекламную кампанию для анализа по ее основным параметрам: идентификатору, referer1 или referer2. Это поле присутствует, даже если фильтр свернут.
Период | В этом поле можно выбрать период времени, за которые требуется вывести данные по рекламной кампании. Если период выбран, отчет вкладки Статистика содержит столбец Период.

    Важно!
    Нажатие кнопки Найти выводит информацию по рекламной кампании, выбранной путём заполнения поля Найти фильтра (т.е., по системному идентификатору или параметрам referer1 / referer2). Нажатие кнопки Отменить отменяет фильтрацию, т.е. выводит информацию сразу по всем рекламным кампаниям.

    Таблицы отчетов

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

    Вкладка "Статистика"

    Эта вкладка содержит две таблицы: с количественными и относительными параметрами.

    Таблица количественных параметров имеет такой формат.

     | Сегодня | Вчера | Позавчера | Период | Всего
Сессий |  |  |  |  |
Посетителей |  |  |  |  |
Новых посетителей |  |  |  |  |
Добавивших в избранное |  |  |  |  |
Хостов (уникальных IP адресов) |  |  |  |  |
Хитов |  |  |  |  |

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

    Ячейки столбцов (Сегодня, Вчера, Позавчера, Период, Всего) разделены на две. Первая ячейка содержит значение показателя на прямом заходе (прямых переходов). Вторая содержит значение показателя на возврате.

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

    Таблица относительных параметров:

    Аналитические параметры
Посетителей за день | Среднее значение количества посетителей за день за все время ведения статистики.
Внимательность | Среднее значение количества хитов за сессию на прямом заходе и на возврате.
Активность | Среднее значение количества всех событий, совершенных на прямом заходе либо возврате к количеству посетителей пришедших по рекламной кампании (на прямом заходе).
Новых посетителей | Соотношение количества новых посетителей, впервые пришедших на сайт, к количеству всех посетителей пришедших по рекламной кампании.
Возвратилось | Процент посетителей, возвратившихся на сайт после первого захода по рекламной кампании.
    Вкладка "Графики"

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

    Пример графика посещаемости

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить
    Пример графика событий

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить
    Вкладка "Финансы"

    Эта вкладка содержит две таблицы. В первой представлены данные о затратах, доходах и окупаемости рекламной кампании.

    Параметр | Описание
Затраты | Денежные затраты на рекламную кампанию.
Доходы | Сумма по всем денежно значимым событиям, произошедших в рамках рекламной кампании. Также доходы можно задать вручную в настройках кампании.
Прибыль | Разница между доходами и затратами.
Рентабельность (ROI) | Рентабельность рекламной кампании, рассчитывается по формуле: (прибыль / расходы) * 100%.
Цена за переход | Отношение затрат к суммарному количеству сессий на прямом заходе.
Цена за посетителя | Отношение затрат к суммарному количеству посетителей на прямом заходе.

    Во второй таблице представлена информация о финансовых событиях рекламной кампании.

    Вкладка "События"

    Эта вкладка содержит таблицу, в которой отражены произошедшие события.

    Вкладка "Точки входа"

    Эта форма показывает диаграмму и отчёт точек входа на сайт по выбранной рекламной кампании.

    Пример диаграммы точек входа

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

    Для каждого сегмента диаграммы, легенда показывает:

    • как часто та или иная страница/раздел были использованы в качестве точек входа;
    • ссылку (»), ведущую на соответствующую страницу или раздел;
    • ссылку на просмотр диаграммы точек входа относительно этого раздела;
    • количество хитов в виде ссылки на детальный отчет по хитам посетителей.
    Список точек входа

    Таблица показывает количество сессий по точкам входа (страницам/разделам).

    Меню действий | Номер | Раздел/страница | Сессий | Процент
[1] | [2] | [3] | [4] | [5]
Выбрано: [6]
    1. Кнопка, при нажатии на которую открывается контекстное меню, содержащее следующие команды:
      • График посещаемости данной страницы/раздела - открывает (в отдельном окне) страницу с соответствующим графиком (см. ниже).
      • Статистика переходов по ссылкам с данной страницы/раздела - просмотр отчета о перехода по ссылкам только с этой страницы.
    2. Порядковый номер записи.
    3. Ссылка и путь к странице/разделу.
    4. Количество уникальных сессий за выбранный период для выбранной рекламной кампании.
    5. Процент посещений/переходов на/с этой страницы/раздела.
    6. Количество записей, выбранных из базы данных.
    Вкладка "Точки выхода"

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

    Вкладка "Популярное"

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

    Вкладка "Отрезки путей"

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

     | Отрезок пути / Страница | Переходов | Процент
номер пути | [1] | [2] | [3]
Выбрано: [4] | Всего: [5] |
    1. Ссылка (»), ведущая на соответствующую страницу, и набор последующих страниц пути либо отрезков пути. Ссылка на имени страницы позволяет перейти на диаграмму для отрезка пути, заканчивающегося данной страницей.
    2. Абсолютное значение количества переходов.
    3. Процентное соотношение количества переходов.
    4. Количество путей, выбранных для отображения.
    5. Общее количество путей.
    Вкладка "Пути по сайту"

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


Создание и редактирование рекламной кампании

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

Таблицы ниже описывают поля, используемые при редактировании рекламной кампании.

Контекстная панель

Кнопка | Описание
Список | Открывает список всех рекламных кампаний.
Добавить | Создает новую рекламную кампанию. Отображается только при редактировании существующей рекламной кампании.
Сбросить | Обнуляет все счетчики открытой рекламной кампании. Отображается только при редактировании существующей рекламной кампании.
Деинсталлировать | Удаляет текущую рекламную кампанию. Отображается только при редактировании существующей рекламной кампании.

Вкладка "Свойства"

Поле | Описание
Приоритет | Значение приоритета рекламной кампании. Чем выше значение, тем выше приоритет.
Идентификация рекламной кампании
referer1 | Значение идентификатора рекламной кампании referer1. Передается в URL.
referer2 | Значение идентификатора рекламной кампании referer2. Передается в URL.
Дополнительные условия РК работает (то есть, модуль статистики регистрирует ее события) при выполнении любого из этих условий или же без них.
Откуда пришли | Маски для ссылающихся страниц, разделенные новой строкой (в маске возможно использование символов: "%" - 0 или более любых символов и _ – 1 любой символ)
Поисковые системы | Поисковые системы, заходы с которых считаются заходами по данной рекламной кампании.
Куда пришли | Маски для страниц сайта, заходы на которые следует регистрировать как заходы по рекламной кампании.

Вкладка "Дополнительно"

Поле | Описание
Финансы
Затраты | Денежная сумма, затраченная на рекламную кампанию. Выводится и хранится в базовой валюте модуля. При вводе суммы валюта может быть выбрана произвольно, при сохранении сумма будет сконвертирована в базовую валюту.
Доходы | Сумма денег по всем денежно-значимым событиям, произошедшим в рамках рекламной кампании. Данная сумма может быть также модифицирована вручную; принципы работы с валютой для данной суммы аналогичны затратам.
Дополнительные настройки
Как отображать события | Метод отображения событий по этой рекламной кампании в таблице рекламных кампаний.
Описание | Описание рекламной кампании.

После внесения изменений не забудьте нажать кнопку Сохранить (сохраняет изменения и открывает список кампаний) или Применить (сохраняет изменения без перехода в список кампаний).


Динамика рекламной кампании

На данной странице отображаются следующие показатели динамики рекламной кампании (по дням):

  • количество сессий;
  • количество посетителей;
  • количество посетителей, добавивших сайт в избранное;
  • количество хостов (уникальных IP адресов);
  • количество хитов (загрузок страниц);
  • события (добавление посетителями сообщений, покупки в магазине и т.п.)

Фильтр

Наименование параметра | Описание
Период | Период времени, за который требуется вывести события.

Для того чтобы отобразить данные за выбранный период, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Список рекламных кампаний | Нажатие этой кнопки открывает отчет со списком рекламных кампаний.
Графики рекламной кампании | Открывает форму с графиками рекламной кампании.
Excel | Экспортирует данные из отображаемой формы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица показателей

 |  | Сессий |  | Посетителей |  |  | Избранное |  | Хостов |  | Хитов |  | Собы- тия
Меню действий | Дата | ПР | ВЗ | ПР | ВЗ | НВ | ПР | ВЗ | ПР | ВЗ | ПР | ВЗ
 | Всего |  |  |  |  |  |  |  |  |  |  |  |

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

  • Первая колонка (Меню действий) содержит кнопку [image], при нажатии на которую открывается меню действий, содержащее команды:
    • Список событий - открывает (в отдельном окне) страницу с перечнем событий, возникших в этот день.
  • Вторая колонка (Дата) показывает дату, на которую отображаются данные в этой строке.
  • Последующие 4 колонки (Сессий, Посетителей, Избранное, Хостов, Хитов) содержат собственно показатели динамики на данный день:
    • Сессий - количество заходов на сайт по рекламной кампании (сессия открывается в момент захода на сайт и закрывается при закрытии окна браузера. Также новая сессия открывается при авторизации пользователя, а при окончании авторизованного сеанса - закрывается).
    • Посетителей - количество уникальных посетителей.
    • Избранное - количество посетителей, добавивших адрес сайта в закладки (или в папку "Избранное").
    • Хостов - количество уникальных IP адресов.
    • Хитов - количество загрузок страниц.
    Каждый из этих показателей имеет два значения: количество событий на прямом заходе (ПР) и на возврате (ВЗ). Прямым заходом по рекламной кампании считается сессия, открытая в момент идентификации посетителя как посетителя по той или иной рекламной кампании. Возвратом по рекламной кампании считается сессия, открытая посетителем после того, как он сделал прямой заход по данной рекламной кампании.

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


Графики рекламной кампании

Эта форма отображает графики посещаемости и событий по данным, собираемых в рамках соответствующей рекламной кампании. Форма может быть открыта путём выбора пункта Графики меню действий списка рекламных кампаний:

или выбором ссылки Графики рекламной компании на вкладке Графики формы Анализ рекламной компании.

Фильтр

Наименование параметра | Описание
Период | Период времени, за который требуется вывести график.
События | События, которые требуется вывести на графике событий. Кнопка Добавить открывает окно со списком событий, в котором можно выбрать (установкой флажков и нажатием кнопки Выбрать) события для отображения. Кнопка Удалить исключает выбранные события из списка.

Для того чтобы отрисовать графики по заданным критериям, нажмите кнопку Найти. Для отображения всех данных без ограничений нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Список рекламных кампаний | Нажатие этой кнопки открывает отчет со списком рекламных кампаний.
Динамика рекламной кампании | Открывает отчет по динамике (кол-во хитов, сессий и т.п.) текущей рекламной кампании.
Excel | Экспортирует данные из отображаемой формы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Пример графика посещений в рамках рекламной кампании

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

Пример графика событий рекламной кампании

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить


Сравнительный анализ рекламных кампаний

Данная форма позволяет показать на одной координатной сетке графики нескольких рекламных кампаний, что позволит в наглядной форме сравнить их эффективность.

Фильтр

Параметр | Описание
Период | Период времени, за который требуется вывести графики.
ID рекламной кампании | Маска идентификаторов искомых рекламных кампаний.
referer1 | Маска для поиска рекламных кампаний по referer1.
referer2 | Маска для поиска рекламных кампаний по referer2.
Рекламные кампании | Выберите в этом списке рекламные кампании, показатели которых требуется отобразить на графике. Для выбора нескольких кампаний удерживайте клавишу Ctrl. Кнопка Добавить открывает окно со списком кампаний, в котором можно выбрать (установкой флажков и нажатием кнопки Выбрать) кампании для отображения. Кнопка Удалить исключает выбранные кампании из списка.
ID события | Маска идентификаторов для поиска событий рекламных кампаний.
event1 | Маска для поиска событий по event1.
event2 | Маска для поиска событий по event2.
Список событий | В этом списке можно выбрать события, которые требуется отобразить на графике. Для выбора нескольких событий, удерживайте клавишу Ctrl. Кнопка Добавить открывает окно со списком событий для выбора. Кнопка Удалить исключает выбранные события из списка.

Для того чтобы отобразить данные с учётом фильтра, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Параметр для сравнения Нажатие этой кнопки открывает меню, в котором можно выбрать один из множества статистических параметров для построения графиков:
  • посетителей на прямых заходах, на возвратах или в сумме;
  • сессий на прямых заходах, на возвратах или в сумме;
  • новых посетителей;
  • посетителей, добавивших в избранное на прямых заходах, на возвратах или в сумме;
  • хостов на прямых заходах, на возвратах или в сумме;
  • хитов на прямых заходах, на возвратах или в сумме;
  • событий на прямых заходах, на возвратах или в сумме.
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

График и таблица показателей

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


Типы событий

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

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

  • уход на внешнюю платежную систему для оформления заказа; событие, происходящее при нажатии ссылки купить и ведущей, например, на http://www.softkey.ru;
  • скачивание того или иного файла, происходящее при нажатии ссылки Скачать;
  • клик по баннеру, который показывается на вашем сайте;
  • отсылка комментария на сайте;
  • переход в тот или иной раздел сайта.

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

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

Фильтр

Параметр | Описание
Найти | Поле, позволяющее найти события по их основным параметрам: идентификатору, event1 или event2. Это поле присутствует, даже если фильтр свернут.
ID* | ID типа события в базе.
event1* | Идентификатор типа события – event1.
event2* | Идентификатор типа события – event2.
Наименование* | Наименование типа события.
Описание* | Описание типа события.
Первое | Интервал для поля Первое (дата первого события данного типа).
Последнее | Интервал для поля Последнее (дата последнего события данного типа).
Период | Временной интервал, за который вы хотите вывести количество событий соответствующих типов.
Всего событий | Интервал для поля Всего (общее количество событий произошедших за время ведения статистики).
Денежная сумма | Интервал для фильтрации суммы денег по всем событиям того или иного типа за все время (столбец Всего).
Валюта | Валюта искомых типы событий .
Сколько дней хранить каждое событие | Фильтр по интервалу количества дней, отводимых для хранения искомых типы событий (в случае, если это количество задано, а не используется по умолчанию).
Сколько дней хранить динамику типа события | Фильтр по интервалу количества дней, отводимых для хранения динамики искомых типы событий (в случае, если это количество задано, а не используется по умолчанию).
Включить в отчет по рекламе | Позволяет выбрать типы событий с определённым значением флага Включить в отчет по рекламе.
Включить в круговую диаграмму по умолчанию | Позволяет выбрать типы событий с определённым значением флага Включить в круговую диаграмму по умолчанию.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех типов событий нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Добавить | Открывает форму создания нового типа событий.
Группировка | Открывает, в котором можно выбрать метод группировки типов событий для отображения: без группировки, с группировкой по event1 или event2. Группировка видоизменяет таблицу типов, при этом каждая строка в таблице отображает данные по всем типам событий с одинаковыми event1 или event2.
Диаграмма | Открывает форму с круговой диаграммой типов событий.
Графики | Открывает форму с графиками типов событий.
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица типов событий

Колонка | Описание
Колонка флажков Поле предназначено для выбора событий, к которым предполагается применить какое-либо действие из панели действий, расположенной ниже таблицы кампаний.

Эта колонка присутствует только в несгруппированной таблице.
Меню действий Нажатие на кнопку действий в строке конкретной кампании отображает меню, содержащее команды:
  • Изменить - открывает форму редактирования этого типа события;
  • Очистить - обнуляет всю статистику по данному типу события;
  • Удалить - удаляет тип события;
  • График - открывает форму График типов событий с фильтром, установленным на данный тип события;
  • Динамика - открывает форму Динамика типа события по дням с фильтром, установленным на данный тип события;
  • Кампании - открывает форму Сравнительный анализ рекламных кампаний с фильтром, установленным на данный тип события.
Эта колонка присутствует только в несгруппированной таблице.
ID Идентификатор типа события.

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

Эта колонка присутствует только в несгруппированной таблице.
event1 Идентификатор типа события – event1.

Эта колонка присутствует, если таблица не сгруппирована или сгруппирована по event1.
event2 Идентификатор типа события – event2.

Эта колонка присутствует, если таблица не сгруппирована или сгруппирована по event2.
Сегодня | Количество событий данного типа за текущий день.
Вчера | Количество событий данного типа за вчерашний день.
Позавчера | Количество событий данного типа за позавчерашний день.
Всего | Общее количество событий данного типа.
Первое | Дата первого события данного типа.
Последнее | Дата последнего события данного типа.


Создание и редактирование типа события

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

Контекстная панель

Кнопка | Описание
Список | Открывает список всех событий.
Добавить | Создание нового типа события. Отображается только при редактировании существующего типа события.
Очистить | Сброс типа события. Отображается только при редактировании существующего типа события.
Удалить | Удаление типа события. Отображается только при редактировании существующего типа события.

Вкладка "Тип cобытия"

Поле | Описание
event1 | Идентификатор типа события - event1. Идентификаторы типа события - два произвольных строковых значения, которые, в первую очередь, позволяют идентифицировать тип события в более читабельном виде, чем просто цифровой ID, а во-вторых позволяют группировать различные типы событий в соответствующем отчете.
event2 | Идентификатор типа события - event2.
Включить в отчет по рекламе | Флаг, позволяющий скрыть или отобразить события данного типа в отчете по рекламным кампаниям.
Включать в диаграмму и график по умолчанию | Флаг, позволяющий включать либо не включать данный тип события в круговую диаграмму и график типов событий по умолчанию.
Сколько дней хранить каждый экземпляр данного типа события | Срок хранения события данного типа. Если значение не задано, используется значение, указанное в настройках модуля (параметр Сколько дней хранить каждое событие).
Сколько дней хранить динамику типа события | Срок хранения динамики событий данного типа. Если значение не задано, используется значения в настройках модуля (параметр Сколько дней хранить динамику типов событий).
Порядок сортировки | Порядок сортировки данного типа события.
Наименование | Поле ввода, позволяющее ввести краткое наименование типа события (предпочтительно на английском языке)
Описание | Поле ввода, позволяющее ввести полное описание типа события (предпочтительно на английском языке)

После внесения изменений не забудьте нажать кнопку Сохранить.


Динамика типа события по дням

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

Фильтр

Параметр | Описание
Период | Период времени, за который требуется вывести график.
Тип события | Идентификатор типа события, динамику по которому следует отобразить. Кнопка Выбрать открывает окно со списком типов событий для выбора.

Для того чтобы отобразить данные с учётом фильтра, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
График | Открывает форму с графиком событий выбранного типа.
Excel | Экспортирует данные из отображаемой формы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

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


Круговая диаграмма типов событий

Эта форма отображает круговую диаграмму, показывающую количество событий того или иного типа в общем объеме событий.

Фильтр

Параметр | Описание
Период | Период времени, за который требуется вывести диаграмму.
Список событий | В этом списке можно выбрать типы событий, которые требуется отобразить на диаграмме. Для выбора нескольких событий удерживайте клавишу Ctrl. Кнопка Добавить открывает окно со списком событий для выбора. Кнопка Удалить исключает выбранные события из списка.

Для того чтобы отобразить данные с учётом фильтра, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Легенда диаграммы

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

  • Первое значение в скобках - количество событий данного типа событий. Кликнув эту ссылку, можно открыть список событий с фильтром, установленным на этот тип события и временной интервал, заданный в фильтре этой страницы (круговой диаграммы).
  • Второе значение в квадратных скобках - ID типа события. Ссылка ведет на список типов событий с фильтром, установленным на этот тип события.
  • Третье значение - Идентификаторы типа события event1 и event2. Ссылка ведет на форму с графиком событий этого типа.

Пример круговой диаграммы

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


Графики типов событий

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

Фильтр

Параметр | Описание
Период | Период времени, за который требуется вывести график.
Типы событий | В этом списке можно выбрать типы событий, которые требуется отобразить на графике. Для выбора нескольких событий удерживайте клавишу Ctrl. Кнопка Добавить открывает окно со списком событий для выбора. Кнопка Удалить исключает выбранные события из списка.

Для того чтобы отобразить данные с учётом фильтра, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Контекстная панель

Кнопка Описание
Тип графика Открывает меню выбора типа графика:
  • Суммарный график - один график суммы значений всех показателей.
  • Отдельные графики - отдельные графики показателей.
Отображаемая величина Открывает меню выбора параметра, отображаемого на графике:
  • Денежные суммы - финансовые показатели событий (если они установлены).
  • Количество - количество событий.

Легенда диаграммы

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

  • Первое значение в квадратных скобках - ID типа события. Ссылка ведет на список типов событий с фильтром, установленным на этот тип события.
  • Третье значение - Идентификаторы типа события event1 и event2. Ссылка ведет на форму просмотра динамики событий этого типа; фильтр открываемой формы установлен на этот тип события и временной интервал, заданный в фильтре этой страницы.

Пример графика

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить


Список событий

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

Фильтр

Наименование параметра | Описание
Найти | Поле, позволяющее найти события по их основным параметрам: идентификатору рекламной кампании, event1 или event2. Это поле присутствует, даже если фильтр свернут.
ID* | ID события в базе.
ID типа события* | ID типа события в базе.
Наименование типа события* | Наименование типа события.
event1 / event2* | Идентификаторы типа события: event1 и event2 соответственно.
event3* | Дополнительный параметр события.
Дата | Интервал, за который требуется отобразить события.
ID сессии* | ID сессии, в рамках которой произошло событие.
ID посетителя* | ID посетителя, совершившего события.
Страна* | Страна посетителя сайта, инициировавшего событие.
ID рекламной кампании | ID рекламной кампании, в рамках которой произошло событие.
На возврате по рекламной кампании | С помощью данного поля можно отфильтровать события, произошедшие на прямом заходе по рекламной кампании либо на возврате.
ID хита* | В данном поле можно задать ID хита, инициировавшего занесение в базу данных события.
Откуда пришли* | Сайт и страница, с которой пришли на ту страницу, где было инициировано требуемое событие.
Где произошло* | Сайт и страница, на которой было инициировано требуемое событие.
Куда перенаправили* | Поле позволяет отобрать события по странице, на которую перенаправляется посетитель после события.
Денежная сумма | Интервал для отбора событий по значению их денежной суммы.
Валюта | Поле позволяет отобрать события по валюте денежной суммы.
Логика между полями Переключатель, определяющий механизм поиска записей.
  • "И" - выводятся события, удовлетворяющие всем критериям фильтра.
  • "ИЛИ" - выводятся события, удовлетворяющие хотя бы одному критерию.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех событий нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Добавить | Открывает форму для ручного создания нового события.
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

Колонка | Описание
Колонка флажков | Поле предназначено для выбора событий, к которым предполагается применить какое-либо действие из панели действий, расположенной ниже таблицы кампаний.
ID | Идентификатор события в базе.
Тип | Идентификатор типа события. Ссылка открывает список типов событий с фильтром, установленным на этот тип событий.
event1 | Параметр типа события - event1.
event2 | Параметр типа события - event2.
Дата | Дата возникновения событие.
Сессия | ID сессии, в течение которой произошло событие. Ссылка открывает список сессий с фильтром, установленным на эту сессию.
Посет. | ID посетителя, инициировавшего событие. Ссылка открывает список посетителей с фильтром, установленным на этого посетителя.
Страна | Страна посетителя, инициировавшего событие.
Рекл. камп. | ID рекламной кампании, зайдя по которой, посетитель инициировал событие. Если ID выведен с символом *, посетитель инициировал событие на возврате по данной рекламной кампании, в противном случае - на прямом заходе. Ссылка открывает список кампаний с фильтром, установленным на эту кампанию.
Хит | ID хита, на котором произошло событие. Ссылка открывает список посетителей с фильтром, установленным на этого посетителя.
Сайт | Сайт, на котором произошло событие.
Денежная сумма | Денежная сумма события, указывается либо в базовой валюте модуля, либо в валюте выбранной в фильтре.
Выбрано | Количество событий, отобранных их базы данных.
Отмечено | Количество событий, отмеченных флажками.
Денежная сумма | Сумма по всем отобранным событиям.
Всего | Общее количество зарегистрированных событий.


Загрузка событий

В этом разделе

  • Закладка "Из файла"
  • Закладка "Ручной ввод"
  • Автоматическая регистрация событий

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

    Загрузка из файла

    При помощи этой формы вы можете загрузить список событий из внешнего файла в формате CSV. Формат данных в файле должен иметь следующие поля:

    "[1]","[2]","[3]","[4]","[5]","[6]","[7]"

    1. ID типа события.
    2. Дополнительный параметр (event3).
    3. Дата, заданная в формате даты для текущего сайта.
    4. Дополнительный параметр в формате:

16,"file1.exe","10.10.2008 12:30","BITRIX_SM.10.5.RU.6.Y","250","USD"
16,"help_doc.chm","10.10.2008 12:30"
16,"www","BITRIX_SM.11.4.US.8.N","233.45"
16,"1С-Битрикс: ""Управление сайтом""","BITRIX_SM.11.4.US.8.N","233.45","RUB","Y"

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

      Закладка "Ручной ввод"

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

      # ID типа события * Event3 Дата Доп. параметр Денежная сумма Валюта Возврат
      денег
      [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
      1. Порядковый номер.
      2. ID типа события.
      3. Иконка, вызывающая форму для выбора типа события.
      4. Дополнительный параметр события – event3 (в нем может быть, например, сумма заказа).
      5. Дата события.
      6. Кнопка, открывающая календарь.
      7. Дополнительный параметр (формат описан выше).
      8. Денежная сумма события.
      9. Валюта (данный столбец выводится, если в настройках модуля установлена базовая валюта, которая, в свою очередь, может быть установлена при наличии модуля валют).
      10. Если эта опция установлена, сумма отнимается от доходов рекламной кампании. В противном случае, доход рекламной кампании увеличивается на эту сумму.
      11. Кнопка, копирующая текущую строку в следующую.

      Нажатие кнопки Загрузить регистрирует события из таблицы в базе данных.

      Автоматическая регистрация событий

      Когда посетитель уходит, например, на оформление заказа, то в ссылке, ведущей на внешнюю платежную систему, вами должен быть добавлен специальный шаблон – #EVENT_GID#. Этот шаблон в дальнейшем будет автоматически заменен (в скрипте redirect.php) на составной идентификатор:

[код сайта].[ID сессии].[ID посетителя].[ID страны].[ID
 рекламной кампании].[Y – возврат по рекламной кампании; N – прямой заход].

      Пример такой ссылки:

<a href="http://www.ritlabs.ru/redirect.php?event1=softkey_out&
 event2=thebat&event3=buy&
 goto=http://www.softkey.ru/catalog/basket.php?
 prodid=902&quantity=1&referer1=ritlabs_site&referer2=#EVENT_GID#">
Купить
</a>

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

<a href="http://www.ritlabs.ru/redirect.php?event1=softkey_out&
 event2=thebat&event3=buy&
 goto=http%3A//www.softkey.ru/catalog/basket.php%3Fprodid%3D902%26quantity%3D1%26referer1%3Dritlabs_site%26referer2%3D%23EVENT_GID%23">
Купить
</a>

      Для задания подобных ссылок во встроенном в систему HTML-редакторе предусмотрены специальные возможности.

      Большинство платежных систем принимают такой специальный параметр и возвращают его в письме, оповещающем владельца товара о заказе (например, на www.softkey.ru таких идентификаторов два: referer1 и referer2). Когда к вам поступает письмо, оповещающее вас о том, что оформлен заказ, вы должны занести данное событие в статистику своего сайта.

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

http://[ВАШСАЙТ]/bitrix/admin/event_edit.php?

        USER_LOGIN=[ЛОГИН]&USER_PASSWORD=[ПАРОЛЬ]&lang=[САЙТ]&
        Login=Y&TYPE=AUTH&AUTH_FORM=Y&
        ARR[]=[N]&LOAD_[N]=Y&EVENT_ID_[N]=[ID типа]&EVENT3_[N]=[EVENT3]&
        DATE_ENTER_[N]=[ДАТА]&PARAM_[N]= [ПАРАМЕТР]]&MONEY_[N]=[ДЕНЕЖНАЯСУММА]&
        CHARGEBACK_[N]=[ФЛАГВОЗВРАТАДЕНЕГ]&
        ARR[]=[N+1]]&LOAD_[N+1]=Y&EVENT_ID_[N+1]=[ID типа]&EVENT3_[N+1]=[EVENT3]&
        DATE_ENTER_[N+1]=[ДАТА]&PARAM_[N+1]= [ПАРАМЕТР]&MONEY_[N+1]=[ДЕНЕЖНАЯСУММА]&
        CHARGEBACK_[N]=[ФЛАГВОЗВРАТАДЕНЕГ]&
...
        ARR[]=[M]&]&LOAD_[M]=Y&EVENT_ID_[M]=[ID типа]&EVENT3_[M]=[EVENT3]&
        DATE_ENTER_[M]=[ДАТА]&PARAM_[M]= [ПАРАМЕТР]&MONEY_[M]=[ДЕНЕЖНАЯСУММА]&
        CHARGEBACK_[N]=[ФЛАГВОЗВРАТАДЕНЕГ]

&check_unique=Y&save=Y

      В данной формуле:

      • [ВАШ САЙТ] – адрес сайта;
      • [ЛОГИН] – логин пользователя, имеющего право Запись для модуля статистики;
      • [ПАРОЛЬ] – пароль вышеописанного пользователя;
      • [САЙТ] – сайт, в формате которого будет задана дата события (например, ru);
      • [N], [N+1] – порядковый номер загружаемого события;
      • [M] – количество загружаемых событий;
      • [IDтипа] – ID типа загружаемого события;
      • [EVENT3] – дополнительный параметр события;
      • [ДАТА] – дата события в формате заданного сайта;
      • [ПАРАМЕТР] – параметр в формате:
        [Код сайта].[ID сессии].[ID посетителя].[ID страны].[ID рекламной кампании].[Y – возврат по рекламной кампании; N – прямой заход];
      • [MONEY] – денежная сумма события;
      • [CHARGEBACK] – флаг возврата денег: Y – денежную сумму необходимо отнять от доходов рекламной кампании; N – денежную сумму необходимо прибавить к доходам компании (по умолчанию).
      • check_unique – для проверки уникальности загружаемых событий значение данного параметра должно быть Y, в противном случае уникальность проверяться не будет.
      Пример адреса

http://www.1c-bitrix.ru/bitrix/admin/event_edit.php?
       USER_LOGIN=admin&USER_PASSWORD=123456&lang=ru&Login=Y&
       TYPE=AUTH&AUTH_FORM=Y&ARR[]=1&LOAD_1=Y&EVENT_ID_1=35&
       EVENT3_1=250&DATE_ENTER_1=10.01.2008&PARAM_1=BITRIX_SM.10345.676.US.3.Y&
       ARR[]=2&LOAD_2=Y&EVENT_ID_2=35&EVENT3_2=340&DATE_ENTER_2=11.01.2008&
       PARAM_2= BITRIX_SM.10400.700.RU.5.N&MONEY_2=970.35&check_unique=Y&save=Y

      Внимание
      Пример представлен не в кодированном виде. Для корректной работы страницы вам необходимо для значений параметров ссылки применять URL- кодирование (в PHP - функция urlencode()).


Поисковые фразы

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Поисковые фразы и переходы с поисковых систем

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

Фильтр

Параметр | Описание
Поисковая фраза* | Маска поисковых фраз, которые требуется отобразить.
ID* | ID записи в базе данных, содержащей информацию по поисковой фразе с которой зашли на сайт.
Поисковая система* | Фильтр по ID и наименованию поисковой системы. Вы можете воспользоваться выпадающим списком всех поисковых систем, занесенных в базу данных.
Дата | Дата занесения в базу поисковой фразы.
Куда пришли* | Сайт и страница, на которую пришли с поисковой фразой (при внутреннем поиске - последняя страница, на которую перешли с результатов поиска). В выпадающем списке (ошибка 404) можно указать, отображать ли только запросы несуществующих страниц.
ID ссылающегося* | ID в таблице ссылающихся сайтов. В случае внешней поисковой системы - помимо выделения из поисковой фразы, система заносит ссылающуюся страницу в таблицу ссылающихся сайтов.
ID сессии* | ID сессии, в течение которой была занесена в базу поисковая фраза.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех фраз нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица (список переходов и внутренний поиск)

ID | Поисковая фраза | Поисковая система | Дата | Куда пришли | Ссыл. | Сессия
[1] | [2] | [3] | [4] | [5] | [6] | [7]
Всего: [8]
  1. Идентификатор перехода по поисковой фразе.
  2. Собственно поисковая фраза.
  3. Идентификатор и имя поисковой системы (при внутреннем поиске по сайту поисковая система – <internal>). Ссылка на идентификаторе открывает список поисковых систем с фильтром, установленным на эту систему. Ссылка на имени поисковой системы переключает данную форму в режим группировки по фразам именно этой поисковой системы.
  4. Дата занесения поисковой фразы в базу.
  5. Мнемоническое имя сайта и адрес страницы из результатов поиска, на которую кликнул посетитель. Ссылка с именем сайта открывает форму настроек этого сайта. Ссылка на адресе страницы открывает ее для просмотра.
  6. Идентификатор ссылающегося сайта. Ссылка открывает список ссылающихся сайтов с фильтром, установленным на этот сайт.
  7. Идентификатор сессии, в течение которой поисковая фраза была занесена в базу. Ссылка открывает список сессий с фильтром, установленным на эту сессию.
  8. Количество фраз, выбранных из базы данных.

Таблица (список поисковых фраз)

 | Поисковая фраза | Количество |
[1] | [2] | [3] | [4]
 | Выбрано[5]
  1. Порядковый номер фразы.
  2. Поисковая фраза. Ссылка на фразе добавляет ее в фильтр.
  3. Количество использований данной поисковой фразы. Процентное соотношение количества запросов по поисковой фразе к общему количество поисковых фраз в таблице.
  4. Элемент диаграммы.
  5. Количество фраз, выбранных из базы данных.
Пример таблицы

Таблица (список поисковых систем)

 | Поисковая система | Количество | Хитов в среднем |
[1] | [2] | [3] | [4] | [5]
 | Выбрано[6]
  1. Порядковый номер записи.
  2. ID и имя поисковой системы. Ссылка на идентификаторе открывает список поисковых систем с фильтром, установленным на эту систему. Ссылка на имени поисковой системы переключает данную форму в режим группировки по фразам именно этой поисковой системы.
  3. Количества переходов с данной поисковой системы; доля переходов с данной поисковой системы.
  4. Количество хитов в среднем у посетителей с данной поисковой системы.
  5. Элемент диаграммы.
  6. Количество поисковых систем, выбранных из базы данных.
Пример таблицы
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


Поисковики

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Поисковые системы

Форма, представленная на странице Веб-аналитика -> Поисковики -> Индексация -> Список содержит информацию об индексации сайта различными поисковыми системами.

Фильтр

Параметр | Описание
Наименование* | Отбор поисковой системы по ее названию.
ID* | Отбор поисковой системы по ID.
Активен | Отбор по значению флаг активности.
Сохранять хиты | Если этот флаг установлен, отображаются только поисковики, чьи хиты записываются в таблицу хитов поисковиков.
Включить в круговую диаграмму индексации по умолчанию | Позволяет отобрать только те поисковые системы, которые включаются в диаграмму индексации сайта, не включаются, или все.
Всего хитов | Отбор поисковых систем по количеству произведенных с них хитов.
Дата последнего входа | Отбор по дате последней индексации сайта поисковиком.
Период | Временной интервал, за который следует отобразить количество проиндексированных страниц.
UserAgent* | UserAgent искомых поисковых систем.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех фраз нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Добавить | Нажатие этой кнопки открывает форму добавления новой поисковой системы.
Диаграмма | Открывает форму с круговой диаграммой индексации сайта поисковыми системами.
Графики | Открывает форму с графиком индексации сайта поисковыми системами.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

Поле | Описание
Колонка флажков | Поле предназначено для выбора поисковых систем, к которым предполагается применить какое-либо действие из панели действий, расположенной ниже таблицы.
Меню действий Нажатие на кнопку действий в строке конкретной поисковой системы отображает меню, содержащее команды:
  • График - открывает форму с графиком индексации сайта этой поисковой системой;
  • Динамика - открывает форму с отчетом о динамике индексации сайта этой поисковой системой (количество хитов за каждый день);
  • Изменить - редактирование параметров поисковой системы;
  • Удалить - удаляет поисковую систему.
ID | ID поисковой системы.
Наименование | Имя поисковой системы. Ссылка на имени открывает форму с графиком индексации сайта этой поисковой системой.
UserAgent | Строка UserAgent поисковой системы.
Сегодня | Количество индексаций этой поисковой системой за текущий день. | Ссылка на значении открывает форму с отчетом о динамике индексации сайта этой поисковой системой именно за этот день или период.
Вчера | Количество индексаций за вчерашний день.
Позавчера | Количество индексаций за позавчерашний день.
Всего | Общее количество индексаций страниц этой поисковой системой. Ссылка на значении открывает форму с отчетом о динамике индексации сайта этой поисковой системой за все время ведения статистики.
Последний хит | Дата последней индексации.
Выбрано | Количество записей, отобранных из базы данных.
Отмечено | Количество записей, отмеченных флажками.


Круговая диаграмма индексации сайта

На данной странице (Веб-аналитика -> Поисковики -> Индексация -> Круговая диаграмма) отображается круговая диаграмма, иллюстрирующая долю каждой поисковой системы в общей индексации сайта.

Фильтр

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

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

Контекстная панель

Кнопка | Описание
Список | Нажатие этой кнопки открывает форму со списком всех поисковых систем.
Графики | Открывает форму с графиком индексации сайта поисковыми системами.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Легенда диаграммы

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

  • Первое значение в скобках - количество хитов этой поисковой системы. Кликнув эту ссылку, можно открыть список хитов с фильтром, установленным на эту поисковую систему и временной интервал, заданный в фильтре этой страницы (круговой диаграммы).
  • Второе значение в квадратных скобках - ID поисковой системы. Ссылка ведет на список поисковых систем с фильтром, установленным на эту систему.
  • Третье значение - название поисковой системы. Ссылка ведет на форму с ее графиком.

Пример круговой диаграммы

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


Графики индексации сайта

На данной странице отображаются графики, иллюстрирующие индексацию сайта поисковыми системами.

Фильтр

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

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

Контекстная панель

Кнопка | Описание
Список | Нажатие этой кнопки открывает форму со списком всех поисковых систем.
Диаграмма | Открывает форму с диаграммой индексации сайта поисковыми системами.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Легенда графика

Внизу графика находится легенда, аналогичная легенде круговой диаграммы.

Пример графика индексации сайта

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить


Хиты поисковиков

На данной странице представлены адреса страниц сайта, проиндексированные внешними поисковыми системами.

Фильтр

Параметр | Описание
Поисковая система* | ID или наименование поисковой системы для отображения. Вы можете воспользоваться для выбора выпадающим списком всех поисковых систем, занесенных в базу данных.
ID* | Поиск по маске ID записи в базе данных, содержащей адрес проиндексированной страницы.
Дата | Интервал, за которые требуется отобразить данные по индексации.
Страница* Поиск по маске адреса проиндексированной страницы.

В выпадающем списке (ошибка 404) можно указать, отображать ли только запросы несуществующих страниц.
UserAgent* | Отбор хитов поисковых систем по маске UserAgent (поле HTTP-заголовка UserAgent).
IP адрес* | Отбор хитов поисковых систем по маске значения поля IP адрес (по IP адресу поисковых систем на момент индексации той или иной страницы).
Логика между полями Переключатель, определяющий механизм поиска записей.
  • "И" - выводятся события, удовлетворяющие всем критериям фильтра.
  • "ИЛИ" - выводятся события, удовлетворяющие хотя бы одному критерию.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех хитов нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

ID | Дата | Поисковик | UserAgent | IP адрес | Страница
[1] | [2] | [3] | [4] | [5] | [6]
Выбрано: [7]
  1. ID проиндексированной страницы.
  2. Дата индексации страницы.
  3. Поисковая система.
  4. UserAgent поисковой системы.
  5. IP адрес поисковой системы на момент индексации страницы.
  6. Адрес проиндексированной страницы.
  7. Количество выбранных из базы проиндексированных страниц.


Динамика индексации сайта поисковиком

На данной форме представлена динамика индексации сайта поисковиком по дням, выраженная в цифрах.

Фильтр

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

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

Контекстная панель

Кнопка | Описание
Список | Нажатие этой кнопки открывает форму со списком всех поисковых систем.
График | Открывает форму с графиком индексации сайта данной поисковой системой.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

Дата |  | Хитов
[1] |  | [2]
Выбрано:[3] | Всего хитов:[4] |
  1. Дата.
  2. Количество проиндексированных страниц за соответствующую дату.
  3. Количество записей, выбранных из базы данных.
  4. Общее количество проиндексированных страниц.


Создание и редактирование поисковика

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

Контекстная панель

Кнопка | Описание
Список | Нажатие этой кнопки открывает форму со списком всех поисковых систем.
Добавить | Открывает текущую форму для добавления новой поисковой системы. Отображается только при редактировании существующего поисковика.
Удалить | Удаляет открытую для правки поисковую систему. Отображается только при редактировании существующего поисковика.

Вкладка "Свойства" (параметры поисковика)

Поле | Описание
Активен | Флаг активности поисковой системы. Хиты активных поисковых систем распознаются и регистрируются в системе.
Проверять лимит активности | Если флаг не установлен, и в настройках модуля установлена проверка на превышение лимита активности клиентом, с данного поисковика снимаются все ограничения на превышение установленного лимита активности.
Сохранять хиты | Если флаг установлен, адреса проиндексированных страниц сохраняются в базе данных.
Включать в круговую диаграмму индексации по умолчанию | Если флаг установлен, данные по этой поисковой системе включаются в круговую диаграмму индексации сайта.
Сколько дней хранить хиты | Количество дней для хранения адресов проиндексированных страниц. Если параметр не указан, используется значение, задаваемое в настройках модуля статистики (параметр Сколько дней хранить хиты поисковиков).
Сколько дней хранить динамику | Количество дней для хранения динамики индексации сайта. Если параметр не указан, используется значение, задаваемое в настройках модуля статистики (параметр Сколько дней хранить динамику поисковиков).
Наименование | Наименование поисковой системы (например, Google).
UserAgent | UserAgent поисковой системы (например, Googlebot/).
Домен | Домен поисковой системы без www (например: google.com, google.com.ru, google.co.uk, search.yahoo.com и т.д.).
Переменная | Имя переменной, в которой передается искомая фраза (см. ниже).

Кнопка Сохранить позволяет сохранить свойства и выйти, кнопка Применить - сохранить и остаться в форме, а кнопка Отменить - выйти из формы без сохранения.

Переменные доменов

Переменные, в которых содержатся искомые фразы, определяются следующими правилами.

Например, при поиске на www.google.com слова bitrix поисковая система вернет результаты поиска на странице http://www.google.ru/search?complete=1&hl=ru&q=bitrix&lr=&aq=null. В данном случае, искомое нами слово содержится в параметре q, поэтому для домена www.google.com мы устанавливаем переменную q.

В дальнейшем эта переменная будет использована при выделении поисковых фраз. Аналогично, для выделения поисковых фраз - при поиске в найденном. Например, мы ищем на Яндексе слово bitrix, а затем в найденном ищем слово download. Результаты поиска будут выданы на странице http://www.yandex.ru/yandsearch?text=download&holdreq=bitrix&holdreq_manually=true. Здесь поисковые фразы содержатся в параметрах holdreq и text. Указываем эти параметры через запятую, и в дальнейшем поисковые фразы будут выделяться в виде bitrix/download, т.е. через символ "/" и в соответствующем порядке.


Автодетект

Данная страница предназначена для поиска в накопленных данных статистики новых для системы UserAgent’ов и определения их к классу браузеров или поисковиков.

Отнесение UserAgent’а к классу браузеров означает, что в дальнейшем данный UserAgent будет исключен из рассмотрения на странице Автодетект, и все посетители, заходящие на сайт с таким UserAgent’ом, будут регистироваться как и раньше, а именно - как обычные посетители: для них будет создан профиль, записаны сессии, хиты, зафиксированы переходы по рекламным кампаниям, события и т.д.

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

Общие рекомендации по использованию

  1. Если вам неизвестен тот или иной UserAgent, то прежде, чем его классифицировать, лучше поискать этот UserAgent в какой-либо поисковой системе интернета.
  2. Обращайте внимание на длину и уникальность добавляемой маски для поисковика. В противном случае, маска может совпасть с каким-либо браузером, и все посетители, заходящие на сайт с данным браузером, будут обработаны как поисковики.
  3. Если в имени UserAgent'а встречается bot, robot, или crawler, то его с большой долей вероятности можно отнести к роботу поисковой системы (например: Googlebot, Gaisbot, GrigorBot, MetaTagRobot, metacrawler и т.д.).
  4. Если UserAgent является программой для скачивания, его лучше отнести к классу браузеров, т.к. в противном случае не будут фиксироваться события по скачиванию файлов.
  5. Если UserAgent является offline-браузером или какую-либо иную утилиту для получения web-содержимого, его лучше отнести к классу браузеров.
  6. Если UserAgent неизвестен и не определён, его лучше не относить ни к одному из классов.

Для добавления неизвестных UserAgent'ов в систему, выберите требуемую опцию в колонках Поисковик или Браузер требуемых UserAgent'ов, затем выделите их флажками в колонке флажков и нажмите кнопку Добавить панели действий.

Фильтр

Параметр | Описание
UserAgent* | UserAgent посетителя сайта.
Искать за текущий день | Позволяет просмотреть данные за текущий день, за остальные дни или все.
Сессий | Отбор записей по интервалу количества сессий (количество заходов посетителей с тем или иным UserAgent’ом).

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Таблица

Колонка флажков | UserAgent | Сессий | Добавляемая маска | Поисковик | Браузер
[1] | [2] | [3] | [4] | [5] | [6]
Выбрано [7] | Отмечено [8] |
  1. Поле предназначено для выбора UserAgent’ов, к которым предполагается применить какое-либо действие из панели действий, расположенной ниже таблицы.
  2. Неизвестный системе UserAgent.
  3. Количество заходов (сессий) с данным UserAgent’ом.
  4. Добавляемая маска в таблицу поисковиков либо браузеров; в маске допускается использование: % – 0 или более любых символов; _ – один любой символ.
  5. Радиокнопка: отнести UserAgent к классу поисковиков.
  6. Радиокнопка: отнести UserAgent к классу браузеров.
  7. Количество записей, выбранных из базы данных.
  8. Количество записей, отмеченных в колонке флажков.

Пример таблицы

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


Ссылающиеся сайты

Данная форма отображает адреса страниц, с которых приходят на ваш сайт, а также адреса страниц на вашем сайте, на которые осуществляется переход.

Фильтр

Параметр | Описание
ID* | Поиск по маске ID записи.
ID сессии* | Поиск по маске ID сессии, открывшейся в момент захода посетителя на сайт.
Откуда пришли* | Отбор результатов по маске страницы, ссылающаяся на ваш сайт.
Протокол | Позволяет отфильтровать результаты по имени протокола (напр., http).
Домен | Позволяет найти сайты и страницы, имеющие вхождение данной строки в имени домена.
Страница* | Поиск по маске ссылающейся страницы.
Куда пришли* | Поиск по маске страницы, на которую ссылается страница-источник. В выпадающем списке (ошибка 404) можно указать, отображать ли только запросы несуществующих страниц.
Период | Временной интервал, за который следует отобразить переходы с ссылающейся страницы.
Логика между полями | Определяет, будут ли при поиске учитываться все критерии, или требуется совпадение по хотя бы одному критерию.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

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

Контекстная панель

Кнопка | Описание
Группировка | Открывает меню, в котором можно выбрать желаемый режим группировки результатов: по домену, по ссылке или без группировки. В зависимости от типа группировки, таблица отчета несколько изменяется.
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица "Переходы" (без группировки)

ID | Откуда пришли | Куда пришли | Дата | Сессия
[1] | [2] | [3] | [4] | [5]
Выбрано: [6]
  1. ID записи в базе.
  2. Ссылающаяся страница.
  3. Страница, на которую ссылается страница-источник.
  4. Дата захода посетителя с ссылающейся страницы.
  5. ID сессии, открывшейся в момент захода посетителя на сайт.
  6. Количество записей, выбранных из базы данных.

Таблица "Сайты" или "Страницы" (группировка по домену или ссылке)

 | Откуда пришли | Количество | % | Хитов в среднем |
[1] | [2] | [3] | [4] | [5] | [6]
 | Выбрано: [7]
  1. Порядковый номер записи.
  2. Доменное имя сайта.
  3. Абсолютное значение количества заходов с данного ссылающегося сайта.
  4. Процентное значение количества заходов с данного ссылающегося сайта.
  5. Среднее количество хитов посетителей, зашедших с того или иного сайта.
  6. Элемент диаграммы.
  7. Количество записей, выбранных из базы данных.
Пример группировки по домену

Пример группировки по ссылке

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


Посетители, статистика

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Посетители сайта

В этом разделе

  • Фильтр
  • Контекстная панель
  • Таблица
  • Подробный просмотр данных посетителя
    •

    На странице (Веб-аналитика -> Посетители -> Список посетителей) отображен список посетителей сайта.

    Фильтр

    Параметр | Описание
    ID, логин, имя, фамилия* | Позволяет отобрать зарегистрированных посетителей по маске их строк логина, имени, фамилия или ID.
    ID посетителя* | Позволяет отобрать посетителей сайта (в т.ч. незарегистрированных) по маске их ID.
    Зарегистрирован | Определяет, отображать ли только зарегистрированных посетителей, незарегистрированных или всех.
    UserAgent* | Данное поле позволяет отфильтровать посетителей по используемым ими браузерам.
    IP адрес* | Отбор посетителей по IP адресу последнего входа.
    Языки* | Отбор посетителей по языкам, установленным в браузере (для Internet Explorer: меню Tools –> Internet Options –> Languages).
    Страна* | Отбор посетителей по стране (определяется по IP адресу). В квадратных скобках можно ввести двухсимвольную аббревиатуру страны (напр., RU, BY, US).
    Дата первого захода | Интервал для отбора посетителей по дате первого посещения.
    Дата посещения | Интервал для отбора посетителей по датам посещений сайта (обрабатывается таблица сессий, поэтому искомые данные, возможно, будут уже очищены).
    Дата последнего захода | Интервал для отбора посетителей по дате последнего посещения.
    Страница* Позволяет найти посетителей по сайту и первым страницам первого входа и последним страницам последнего входа.

    В выпадающем списке (ошибка 404) можно указать, отображать ли только запросы несуществующих страниц.
    Пришедших по рекламной кампании | Флаг, позволяющий отфильтровать посетителей, первый либо последний вход которых произошел по рекламной кампании.
    ID рекламной кампании* | В этом поле можно через запятую указать ID рекламных кампаний для первого либо последнего входов.
    referer1/referer2* | Идентификаторы рекламной кампании первого либо последнего входов, соответственно, referer1 и referer2.
    referer3* | Дополнительный параметр рекламной кампании первого либо последнего входов.
    Событий | Интервал для количества событий, инициированных искомыми посетителями.
    Сессий | Интервал для количества сессий (заходов на сайт), инициированных искомыми посетителями.
    Хитов | Интервал для количества хитов, инициированных искомыми посетителями.
    Добавил в избранное | Флаг, позволяющий отфильтровать посетителей, добавивших сайт в избранное.
    Логика между полями Переключатель, определяющий механизм поиска записей.
    • "И" - выводятся события, удовлетворяющие всем критериям фильтра.
    • "ИЛИ" - выводятся события, удовлетворяющие хотя бы одному критерию.

    * - для данных полей вы можете воспользоваться специальными логическими выражениями.

    Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Таблица

    Колонка | Описание
    Меню действий
            Нажатие на кнопку действий в строке конкретной поисковой системы отображает меню, содержащее команды:
    • Подробно - открывает отдельное окно с детальной информацией по посетителю (см. ниже).
    ID | ID посетителя. Если ID выделен красным, данный идентификатор является вашим.
    Пользователь | Данные зарегистрированного посетителя: [ID] (логин) Имя Фамилия. Ссылка на [ID] открывает форму редактирования пользователя.
    Сессий | Количество сессий (заходов на сайт) посетителя. Если количество сессий равно 1, посетитель впервые зашел на сайт; в противном случае – посетитель относится к категории вернувшихся. Ссылка на показателе открывает список сессий с фильтром, установленным на ID этого посетителя (не пользователя).
    Событий | Количество событий, инициированных посетителем. Ссылка на показателе открывает список событий с фильтром, установленным на ID этого посетителя.
    Хитов | Количество хитов (загруженных страниц) посетителя. Ссылка на показателе открывает список хитов с фильтром, установленным на ID этого посетителя.
    Первый заход | Время первого посещения сайта.
    Последний заход | Время последнего посещения сайта.
    IP | IP адрес посетителя. Ссылка на значении открывает страницу поиска информации по этому адресу (http://www.whois.sc/IP ).
    Страна | Страна посетителя.
    Пример таблицы

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить

    Подробный просмотр данных посетителя

    Этот отчет открывается в новом окне при выборе команды Подробно в меню действий какого-либо посетителя.

    Поле | Описание
ID | ID посетителя в базе
Сессий | Количество сессий, открытых посетителем.
Событий | Количество событий, инициализированных посетителем.
Хитов | Количество просмотренных страниц.
Первый вход
Дата | Дата начала первой сессии посетителя.
ID сессии | ID первой сессии.
Хитов | Количество просмотренных страниц в первой сессии.
Время | Время первой сессии.
Откуда пришел | Ссылающаяся страница в момент открытия первой сессии.
Куда пришел | На какую страницу посетитель зашел в момент открытия первой сессии.
Рекламная кампания | Если в первой сессии был прямой заход по рекламной кампании, в данном поле отображаются данные рекламной кампании: [ID] referer1 / referer2 / referer3.
Последний вход
Дата | Дата начала последней сессии посетителя.
ID сессии | ID последней сессии.
Хитов | Количество просмотренных страниц в последней сессии.
Время | Время последней сессии.
Пользователь | Регистрационные данные посетителя в последней сессии.
Последняя | Последняя просмотренная страница.
IP (хост) | IP адрес посетителя и его хост.
Страна | Страна посетителя (определяется по IP посетителя).
UserAgent | UserAgent браузера посетителя.
Рекламная кампания | Последняя рекламная кампания, по которой посетитель сделал прямой вход.
Языки | Языки установленные в браузере посетителя.
Cookie | Содержимое файла cookie посетителя на его последнем хите.

    Пример данных посетителя

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить


Сессии посетителей

Данная форма отображает сессии посетителей сайта.

Моментом начала сессии в системе 1С-Битрикс: Управление сайтом признается:

  • открытие сайта в окне браузера;
  • авторизация посетителя;
  • окончание авторизации посетителя (закрывается текущая сессия и сразу же открывается новая).

Моментом окончания сессии признается:

  • закрытие окна браузера;
  • окончание авторизации посетителя (закрывается текущая сессия).

Формально сессией можно считать один заход посетителя на сайт.

Фильтр

Параметр | Описание
ID, логин, имя, фамилия* | Позволяет отобрать зарегистрированных посетителей по маске их строк логина, имени, фамилия или ID.
ID сессии* | Маска идентификатора требуемых сессий.
Дата начала | Интервал для отбора сессий по дате начала сессии.
Дата окончания | Интервал для отбора сессий по дате окончания сессии.
ID посетителя* | Позволяет отобрать сессии по маске ID посетителей сайта.
Зарегистрирован | Определяет, отображать ли только сессии зарегистрированных посетителей, незарегистрированных или всех.
Впервые/вернулся | Флаг, позволяющий отфильтровать сессии посетителей, впервые посетивших сайт либо вернувшихся на сайт.
Добавил в избранное | Флаг, позволяющий отфильтровать сессии, в течении которых посетитель добавил сайт в избранное.
IP адрес* | Маска IP адреса искомых посетителей.
UserAgent* | Маска UserAgent’ов искомых посетителей.
Страна* | Позволяет отобрать сессии по стране посетителя (определяется по IP адресу). В квадратных скобках можно ввести двухсимвольную аббревиатуру страны (напр., RU, BY, US).
Попал в стоп-лист | Флаг, позволяющий отфильтровать сессии посетителей, которые были добавлены в стоп-лист.
ID записи стоп-листа | Позволяет отобрать сессии заблокированных пользователей по маске идентификатора записи в стоп-листе.
Хитов | Интервал для отбора сессий по количеству страниц (хитов), загруженных в течении сессии.
Событий | Интервал для отбора сессий по количеству событий, инициированных в течении сессии.
Пришел по рекламной кампании | Флаг, позволяющий отфильтровать сессии посетителей, сделавших прямой заход, либо возврат по рекламной кампании.
ID рекламной кампании* | Маска ID рекламной кампании при поиске по предыдущему полю.
referer1/referer2* | Идентификаторы рекламной кампании – referer1, referer2 (при поиске по полю Пришел по рекламной кампании).
referer3* | Дополнительный параметр при заходе по рекламной кампании – referer3 (при поиске по полю Пришел по рекламной кампании).
Возврат по рекламной кампании | Флаг, позволяющий отфильтровать сессии посетителей или на прямом заходе по рекламной кампании, или на возврате (при поиске по полю Пришел по рекламной кампании).
Первая страница Позволяет отфильтровать сессии посетителей по первой просмотренной странице и сайту.

В выпадающем списке (ошибка 404) можно указать, отображать ли только запросы несуществующих страниц.
Последняя страница | То же, но для фильтрации по последним страницам сессий.
Логика между полями Переключатель, определяющий механизм поиска записей.
  • "И" - выводятся события, удовлетворяющие всем критериям фильтра.
  • "ИЛИ" - выводятся события, удовлетворяющие хотя бы одному критерию.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех сессий нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

Колонка | Описание
Меню действий
Нажатие на кнопку действий в строке конкретной сессии отображает меню, содержащее команды:
  • Подробно - открывает отдельное окно с детальной информацией по сессии (см. ниже).
ID | ID сессии в базе (ваша собственная сессия отмечена красным).
Посетитель Если посетитель зарегистрирован, данные в формате:
  • [ID пользователя] - ссылка открывает форму редактирования пользователя;
  • (логин) Имя Фамилия;
  • [ID посетителя] - ссылка открывает список посетителей с фильтром по этому посетителю.
Если посетитель впервые на сайте - (впервые), иначе - (вернулся).
Начало | Время начала сессии.
Длительность | Длительность сессии.
IP адрес | IP адрес посетителя. Ссылка на значении открывает страницу поиска информации по этому адресу (http://www.whois.sc/IP ).
Хитов | Количество страниц (хитов), просмотренных в течении сессии. Ссылка на показателе открывает список хитов с фильтром, установленным на ID сессии.
Событий | Количество событий, инициированных в течении сессии. Ссылка на показателе открывает список событий с фильтром, установленным на ID сессии.
Рекламная кампания | В случае, если посетитель сделал прямой заход либо возврат по рекламной кампании, в данном столбце выводятся: ID рекламной кампании, referer1/referer2/referer3. Ссылка на ID кампании открывает список кампаний с фильтром, установленным на эту кампанию.
Выбрано | Количество сессий, выбранных из базы данных.

Пример таблицы

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

Подробный просмотр сессии

Поле | Описание
ID | ID сессии в базе.
Хитов | Количество просмотренных страниц.
Начало | Время начала сессии.
Конец | Время окончания сессии (время последнего хита).
Время | Длительность сессии.
Посетитель | Данные посетителя.
Первый IP-адрес | IP адрес посетителя при открытии сессии.
Последний IP-адрес | Последний IP адрес посетителя (на момент закрытия сессии).
Страна | Страна посетителя.
Откуда пришел | Страница, с которой пришел посетитель в момент открытия сессии.
Первая страница | Страница, на которую пришел посетитель в момент открытия сессии.
Последняя страница | Последняя страница, просмотренная в данной сессии.
Рекламная кампания | Если был прямой заход либо возврат по рекламной кампании, в данном поле отображены данные по рекламной кампании: [ID] referer1 / referer2 / referer3 (возврат - символ *).
UserAgent | UserAgent посетителя.

Пример отчета по сессии

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить


Хиты посетителей

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

Фильтр

Параметр | Описание
ID, логин, имя, фамилия* | Позволяет отобрать хиты зарегистрированных посетителей по маске их строк логина, имени, фамилия или ID.
ID хита | Маска идентификатора искомого хита.
ID сессии | Маска для отбора сессий, в течение которых пользователем были открыты страницы (сгенерированы хиты).
Дата | Интервал для отбора хитов по дате начала сессии.
ID посетителя* | Позволяет отобрать хиты по маске ID посетителей сайта.
Зарегистрирован | Определяет, отображать ли только хиты зарегистрированных посетителей, незарегистрированных или всех.
Впервые/вернулся | Флаг, позволяющий отфильтровать хиты посетителей, впервые посетивших сайт либо вернувшихся на сайт.
IP адрес* | Маска IP-адреса посетителей, сгенерировавших искомые хиты.
Страна* | Позволяет отобрать хиты по стране посетителя (определяется по IP адресу). В квадратных скобках можно ввести двухсимвольную аббревиатуру страны (напр., RU, BY, US).
UserAgent* | Маска UserAgent’ов посетителей, сгенерировавших искомые хиты.
Cookie | Маска для сопоставления с cookie посетителей (отбор хитов посетителей, которым были переданы определённые cookie).
Попал в стоп-лист | Флаг, позволяющий отфильтровать хиты посетителей, которые были добавлены в стоп-лист.
ID записи стоп-листа | Позволяет отобрать хиты заблокированных пользователей по маске идентификатора записи в стоп-листе.
Страница Позволяет отфильтровать хиты посетителей по имени страницы и сайту.

В выпадающем списке (ошибка 404) можно указать, отображать ли только запросы несуществующих страниц.
Логика между полями Переключатель, определяющий механизм поиска записей.
  • "И" - выводятся события, удовлетворяющие всем критериям фильтра.
  • "ИЛИ" - выводятся события, удовлетворяющие хотя бы одному критерию.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

Колонка | Описание
Меню действий
Нажатие на кнопку действий в строке конкретного хита отображает меню, содержащее команды:
  • Подробно - открывает отдельное окно с информацией по хиту (см. ниже).
ID | ID хита в базе (ваши текущий хит отмечен красным).
Дата | Дата и время генерации хита (напр., загрузки страницы).
Посетитель Если посетитель зарегистрирован, данные в формате:
  • [ID пользователя] - ссылка открывает форму редактирования пользователя;
  • (логин) Имя Фамилия.
Если посетитель впервые на сайте - (впервые), иначе - (вернулся).
IP адрес | IP адрес посетителя. Ссылка на значении открывает страницу поиска информации по этому адресу (http://www.whois.sc/IP ).
Страна | Страна посетителя.
Страница | Страница хита.
Выбрано | Количество хитов, выбранных из базы данных.

Пример

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить

Подробный просмотр информации о хите

Поле | Описание
ID | ID хита в базе.
Сессия | ID сессии в базе.
Дата | Время возникновения хита.
Откуда пришел | Ссылающаяся страница.
Куда пришел | Адрес страницы хита.
Посетитель | Регистрационные данные посетителя, ID посетителя.
IP адрес | IP адрес посетителя в момент хита.
Страна | Страна посетителя.
UserAgent | UserAgent браузера посетителя.
Метод запроса | Метод HTTP-запроса: GET либо POST. Подробнее о методах запроса можно прочесть тут: Method Definitions (или в переводе на русский).
Cookies | Содержимое файла cookie в момент хита.

Пример

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить


Стоп-лист

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

Фильтр

Наименование параметра | Описание
ID | Маска для отбора записей стоп-листа по идентификатору.
Сайт | Позволяет ограничить поиск записями стоп-листа только конкретных сайтов.
Дата начала | Время начала активности искомой записи стоп-листа.
Дата окончания | Время окончания активности искомой записи стоп-листа.
Активно | Позволяет выбрать или все записи, или только с установленным / снятым флагом Активно.
Добавить в статистику | Позволяет выбрать или все записи, или только с установленным / снятым флагом Добавить в статистику.
IP адрес | IP адрес посетителя искомой записи стоп-листа.
UserAgent | UserAgent посетителя.
Откуда | Ссылающаяся страница (отбор записей по страницам, с которых приходили посетители, попавшие в стоп-лист).
Куда | Отбор записей по страницам, на которые приходили посетители.
Перенаправить | Поиск записей по маске страницы, на которую перенаправляется посетитель.
Сообщение | Поиск записей по маске сообщения, отображаемого посетителю в стоп-листе.
Комментарий | Комментарий администратора.
Логика между полями | Определяет, будут ли при поиске учитываться все критерии, или требуется совпадение по хотя бы одному критерию.

* - для данных полей вы можете воспользоваться специальными логическими выражениями.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех сессий нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Добавить | Нажатие этой кнопки открывает форму добавления новой записи стоп-листа.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица

Колонка | Описание
Колонка флажков | Поле предназначено для выбора записей стоп-листа, к которым предполагается применить какое-либо действие из панели действий, расположенной ниже таблицы.
Меню действий Нажатие на кнопку действий в строке конкретной записи отображает меню, содержащее команды:
  • Изменить - редактирование параметров записи;
  • Удалить - удаляет запись стоп-листа.
ID | Идентификатор записи стоп-листа.
Статус активности Индикатор, сигнализирующий об активности записи:
  • - запись в данный момент активна;
  • - запись в данный момент не активна.
    •  На активность записи влияют следующие поля:
    • время начала действия записи;
    • время окончания действия записи;
    • флаг активности записи.
    Начало | Время начала действия записи.
    Акт. | Флаг активности записи.
    Сайт | Сайт, на котором активна данная запись стоп-листа.
    IP адрес сети | IP-адрес посетителя.
    Маска сети | Маска сети посетителя.
    Стат. | Если да - в статистике регистрируется факт попадания посетителя в стоп-лист.
    Выбрано | Количество записей, выбранных из базы данных.
    Отмечено | Количество записей, отмеченных флажками.

    Пример записи

    Нажмите на рисунок, чтобы увеличить

    Нажмите на рисунок, чтобы увеличить


Создание и редактирование стоп-листа

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание и редактирование записи стоп-листа

В этом разделе

  • Контекстная панель
  • Закладка "Параметры"
  • Закладка "Действия"
  • Закладка "Комментарий"
  • Замечания о масках подсетей
    •

    Данная форма предназначена для создания и редактирования параметров записей стоп-листа.

    Контекстная панель

    Кнопка | Описание
Стоп-лист | Открывает список записей стоп-листа.
Создать | Нажатие этой кнопки создает новую запись стоп-листа. Отображается только при редактировании существующей записи стоп-листа.
Удалить | Удаляет открытую запись стоп-листа. Отображается только при редактировании существующей записи стоп-листа.

    Закладка "Параметры"

    Поле | Описание
Дата изменения | Дата изменения записи стоп-листа. Это поле не отображается при создании новой записи.
Активность записи
Флаг активности | Флаг, позволяющий сделать запись активной или неактивной.
Дата начала | Дата начала действия записи стоп-листа.
Дата окончания | Дата окончания действия записи стоп-листа.
По каким признакам фильтровать посетителей
Сайт | Сайт, для которого действует запись. | Актуальная фильтрация имеет место только при совпадении всех признаков с образцом (конъюнкция).
Маска сети | Маска сети посетителя (см. примечания ниже).
IP адрес | IP-адрес посетителя для сравнения.
UserAgent | UserAgent посетителя.
Откуда пришел | Страница, с которой приходят посетители.
Куда пришел | Страница, на которую приходят посетители.

    Закладка "Действия"

    Поле | Описание
Перенаправить по адресу | URL, по которому посетитель будет перенаправлен в случае его нахождения в стоп-листе.
Показать сообщение | Сообщение, которое будет показано посетителю, попавшему в стоп-лист.
В кодировке | Кодировка для показа сообщения.
Сохранить статистику | Если флаг установлен, факты попадания посетителя в стоп-лист регистрируются в базе данных статистики.

    Закладка "Комментарий"

    Произвольный комментарий, поясняющий причины создания данной записи стоп-листа.

    После внесения изменений не забудьте нажать кнопку Сохранить.

    Замечания о масках подсетей

    В терминологии сетей 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, попадут под данную запись стоп-листа.


Кто на сайте

На данной странице показана таблица сессий и посетителей, проявивших активность на сайте за последнее время. Таблица автоматически обновляется через промежуток времени, задаваемый на странице путём выбора ссылок 20, 30, 60, 120 или 300, которые задают время обновления в секундах. Для немедленного обновления списка, нажмите ссылку Обновить. Таймер в круглых скобках показывает количество секунд до следующего обновления.

Фильтр

С помощью фильтра можно отобразить данные по интересующим параметрам.

Параметр | Описание
ID, логин, имя, фамилия* | ID, логин, имя или фамилия пользователя.
ID сессии* | Маска идентификатора требуемых сессий.
ID посетителя * | Идентификатор посетителя сайта (не пользователя).
Зарегистрирован | Определяет, отображать ли только сессии зарегистрированных посетителей, незарегистрированных или всех.
Впервые/вернулся | Флаг, позволяющий отфильтровать сессии посетителей, впервые посетивших сайт либо вернувшихся на сайт.
Добавил в избранное | Флаг, позволяющий отфильтровать сессии, в течении которых посетитель добавил сайт в избранное.
IP адрес* | Маска IP адреса искомых посетителей.
Страна* | Позволяет отобрать сессии по стране посетителя (определяется по IP адресу). В квадратных скобках можно ввести двухсимвольную аббревиатуру страны (напр., RU, BY, US).
Попал в стоп-лист | Флаг, позволяющий отфильтровать сессии посетителей, которые были добавлены в стоп-лист.
ID записи стоп-листа | Позволяет отобрать сессии заблокированных пользователей по маске идентификатора записи в стоп-листе.
Хитов | Интервал для отбора сессий по количеству страниц (хитов), загруженных в течении сессии.
Пришел по рекламной кампании | Флаг, позволяющий отфильтровать сессии посетителей, сделавших прямой заход, либо возврат по рекламной кампании.
ID рекламной кампании* | Маска ID рекламной кампании при поиске по предыдущему полю.
referer1/referer2* | Идентификаторы рекламной кампании – referer1, referer2 (при поиске по полю Пришел по рекламной кампании).
referer3* | Дополнительный параметр при заходе по рекламной кампании – referer3 (при поиске по полю Пришел по рекламной кампании).
Возврат по рекламной кампании | Флаг, позволяющий отфильтровать сессии посетителей или на прямом заходе по рекламной кампании, или на возврате (при поиске по полю Пришел по рекламной кампании).
Откуда впервые пришел | Страница, с которой посетитель впервые пришел на сайт.
Последняя страница | Позволяет отфильтровать сессии посетителей по последней просмотренной странице и сайту. В выпадающем списке (ошибка 404) можно указать, отображать ли только запросы несуществующих страниц.

Для того чтобы установить фильтр по заданным критериям поиска, нажмите кнопку Найти. Для отображения всех данных нажмите кнопку Отменить.

Контекстная панель

Кнопка | Описание
Excel | Экспортирует данные из таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Таблица сессий и посетителей

Колонка | Описание
Меню действий
 Нажатие на кнопку действий в строке посетителя отображает меню, содержащее команды:
  • Подробно - открывает отдельное окно с подробной информацией о посетителе;
  • Стоп-лист - добавляет IP в стоп-лист.
Рекламная кампания | В случае, если посетитель сделал прямой заход либо возврат по рекламной кампании, в данном столбце выводятся: ID рекламной кампании, referer1/referer2. Ссылка на ID кампании открывает список кампаний с фильтром, установленным на эту кампанию.
Хитов | Количество страниц (хитов), просмотренных в течении сессии. Ссылка на показателе открывает список хитов с фильтром, установленным на ID посетителя.
Время сессии | Длительность сессии.
Пользователь Если посетитель зарегистрирован, данные в формате:
  • [ID пользователя] - ссылка открывает форму редактирования пользователя;
  • (логин) Имя Фамилия;
  • [ID посетителя] - ссылка открывает список посетителей с фильтром по этому посетителю.
Если посетитель впервые на сайте - (впервые), иначе - (вернулся).
IP адрес | IP адрес посетителя. Ссылка на значении открывает страницу поиска информации по этому адресу (http://www.whois.sc/IP).
Страна | Страна посетителя (определяется по IP адресу).
Последняя страница | Последняя страница, просмотренная посетителем.
Откуда впервые пришел | Страница, с которой посетитель впервые пришел на сайт.
Выбрано | Общее количество посетителей, присутствующих в настоящее время на сайте одновременно.

Пример таблицы

Нажмите на рисунок, чтобы увеличить

Нажмите на рисунок, чтобы увеличить


Настройки

В этом разделе

  • Область общих настроек
  • Вкладка "Настройки"
  • Вкладка "Рекламные кампании"
  • Вкладка "Настройка данных"
  • Вкладка "Время хранения"
  • Вкладка "Исключения"
  • Вкладка "Доступ"
    •
  • Область "Служебные процедуры"
  • Вкладка "Создание индекса"
  • Вкладка "Очистка статистики"
  • Вкладка "Оптимизация таблиц"
    •

    Данная форма (Настройки -> Настройки продукта -> Настройки модулей -> Статистика ) предназначена для задания общесистемных параметров модуля статистики.

    Область общих настроек

    Вкладка "Настройки"

    Поле | Описание
Когда отослать очередной статистический отчет по EMail | Данное поле содержит время отсылки очередного статистического отчета по электронной почте. В дальнейшем, отчет будет отсылаться ежедневно в это время. В случае, если поле оставлено пустым, отчет не будет отсылаться. Если сайт работает под управлением ОС Windows, данное поле по умолчанию не заполнено и отчет не отсылается. Это связано с довольно длительной отправкой письма в данной операционной системе. В противном случае, в данном поле содержится дата текущего дня, время - 9:00.
Интервал посетителей в online (сек.) | В меню Кто на сайте вы можете наблюдать сессии посетителей, проявивших активность за последние N секунд, которые задаются в этом поле.
Максимальное кол-во показываемых записей в таблицах | Страницы модуля статистики отображают различные таблицы данных, которые представляют из себя выборки из базы данных. Каждая выборка характеризуется, помимо всего прочего, количеством выбранных записей. Большее количество выбираемых записей требует большего количества ресурсов, необходимых серверу для обработки запроса и тем больше времени необходимо для отработки статистических страниц. Для ограничения количества выбираемых записей и ускорения генерации статистических отчетов (таблиц) был введен этот параметр, позволяющий ограничить объемы выборок количеством выбираемых записей. При необходимости, можно снять данное ограничение, указав большую величину, например, 100 000 000 записей. Как правило, даже при очень большой загруженности сайта такие величины достигаются крайне редко.
Ширина графиков | Ширина графиков, отображаемых отчетами модуля статистики, в пикселях.
Высота графиков | Высота графиков, в пикселях.
Диаметр круговых диаграмм | Диаметр диаграмм, отображаемых отчетами модуля статистики, в пикселях.
Размер TOP списка в сводной статистике | Количество элементов (рекламных кампаний, событий и т.д.), включаемых в отчеты на странице сводной статистики.
Размер TOP списка в детальном просмотре рекламной компании | Количество элементов (точек входа и выхода, событий и т.д.), включаемых в отчеты на странице сводной статистики.
Использовать дополнительную обработку посетителей, не принимающих файлов cookie | В модуле сбора статистики предусмотрена схема работы с браузерами или любыми другими программами, не поддерживающими хранимых или сессионных cookies. Это достигается путём хранения сессионных данных в специальной таблице; при этом, идентификация посетителя производится по хэш-функции (md5) от ряда переменных окружения, характеризующих именно данного посетителя. Данный флаг позволяет включить или отключить такую дополнительную обработку.
Оптимизировать таблицы при очистке | Автоматически оптимизирует таблицы MySQL при удалении устаревшей статистической информации (по полям Сколько дней хранить...).
Базовая валюта | Указывается валюта, в которой будут храниться все финансовые показатели.
Ограничение активности Данная секция позволяет установить защиту от массовых скачиваний сайта специальными программами-грабберами. Если вы не хотите, чтобы ваш сайт был доступен для оффлайнового просмотра, или вы хотите просто ограничить доступ клиентов к сайту определённым максимальным количеством соединений, заполните поля этой формы соответствующими значениями.
редактировать шаблон | Кликнув ссылку редактировать шаблон, можно изменить PHP и HTML-код страницы, отправляемой клиенту при превышении лимита хитов.
Блокировать | Если опция включена, излишне активные клиенты блокируются.
на время (сек) | Период времени, в течение которого излишне активный клиент будет получать ошибку 503 (либо другую, устанавливаемую в шаблоне) на все запросы.
если в течение (сек) | Период времени, в течение которого клиент не должен сделать более указанного в след. поле количества хитов.
сделано более N хитов | Максимальное количество хитов, которое клиент может сделать, не будучи заблокированным.

    Вкладка "Рекламные кампании"

    Поле | Описание
Использовать рекламную кампанию c referer1=NA, referer2=NA по умолчанию? | При установке данного флага все посетители, заходящие на сайт не по рекламной кампании и не совершающие возвратов по рекламным кампаниям, будут приписываться к рекламной кампании со следующими идентификаторами: referer1=NA, referer2=NA.
Автоматически создавать рекламные кампании при наличии параметров referer1, referer2 в URL'е | Если флаг установлен, и если параметры referer1, referer2 присутствуют в URL, но не найдено ни одной рекламной кампании с такими идентификаторами, создаётся новая кампания с этими параметрами.
Синонимы referer1 | Данное поле позволяет назначить синонимы идентификаторам рекламных кампаний. По умолчанию синонимами referer1 являются r1 и referrer1.
Синонимы referer2 | То же для referer2.
Синонимы referer3 | То же для referer3.
Как показывать события в отчете рекламных кампаний по умолчанию | В отчете по рекламным кампаниям крайний столбец представляет информацию по событиям, сгенерированным посетителями, заходившими по данной рекламной кампании. Данный параметр позволяет видоизменять этот отчет.
Поддержка Openstat Данная секция служит для настройки поддержки технологии Openstat, которая служит для точной идентификации переходов на сайт рекламодателя по каждому рекламному сообщению (текстовому объявлению, баннеру).
Обрабатывать Openstat | Отмеченная опция позволяет включить обработку ссылок Openstat.
Шаблон формирования значения referer1 | Шаблон, по которому формируются значения referer1 из ссылки, совметимой с Openstat.
Шаблон формирования значения referer2 | Шаблон, по которому формируются значения referer2 из ссылки, совметимой с Openstat.

    Вкладка "Настройка данных"

    Поле | Описание
Посещаемость страниц и разделов
Сохранять статистику посещений разделов и файлов | Флаг позволяет отключить либо включить сбор статистики посещений разделов и страниц сайта. Данная информация отображается в меню Посещаемость.
Собирать данные для отчета "Пути по сайту" | Если опция включена, модуль статистики регистрирует события и прочую информацию, требуемую для отображения отчета путей по сайту.
Максимальная длина путей по сайту для хранения | Максимальное количество переходов со страницы на страницу, которые будут сохраняться в пределах одного пути.
Важные параметры страницы | Параметры страницы (передаваемые в URL как ?param=value&param=value...), сохраняемые в статистике.
Индексные страницы разделов | Имена индексных страниц разделов, сохраняемых в статистике.
Поисковые системы
Маски для UserAgent'ов браузеров | В данном поле можно задать маски UserAgent’ов браузеров. Все браузеры, соответствующие данным маскам, будут исключены из рассмотрения в автодетекте (меню Автодетект). В масках можно использовать спецсимволы % (ноль или более любых символов) и _ (один любой символ). Если вы задаете неточное совпадение маски, то необходимо обрамить ее с двух сторон спецсимволом %.
События
Кодировать дополнительный параметр для событий | Данный флаг позволяет установить кодирование base64 для информативной части дополнительного параметра для событий.
Краткий идентификатор сайта (для дополнительного параметра в ручной загрузке событий) (без точек и пробелов) | Краткий идентификатор сайта используется в дополнительном параметре при ручной загрузке событий, происходящих вне пределов сайта. Данный идентификатор был введен с целью дать возможность отличать дополнительные параметры внешних событий одного сайта от другого, при условии выполнения обоих сайтов на базе системы 1С-Битрикс: Управление сайтом.
Путь к дополнительным обработчикам при ручной загрузке событий | Путь к папке со скриптами (относительно корня сайта), которые могут быть использованы при загрузке событий для предварительной обработки CSV-файлов. Список имен файлов из этой папки включается в список поля Обработчик CSV файла формы Загрузка событий и может быть выбран в процессе загрузки событий.
Ссылающиеся сайты и поисковые фразы
Сохранять статистику ссылающихся сайтов и поисковых фраз? | Флаг позволяет отключить сбор статистики по заходам с внешних ссылающихся сайтов (в том числе и с поисковых систем). Данная информация отображается в меню Ссылающиеся сайты, Поисковые фразы.
Не очищать из ссылающихся доменов первые (TOP) | При очистке ссылающихся доменов можно указать первые по активности N доменов, которые не будут очищаться. Если вы укажете 0, все ссылающиеся домены будут очищаться по общему принципу: по дате последнего захода с этих доменов и в зависимости от количества дней, указанного в параметре Сколько дней хранить ссылающиеся домены.
Хиты
Сохранять хиты? | Флаг позволяет отключить либо включить сохранение в базе адресов загружаемых страниц сайта. Данная информация отображается в меню Хиты посетителей

    Вкладка "Время хранения"

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

    Поле | Описание
Посещаемость страниц и разделов
Сколько дней хранить историю посещений разделов и файлов | Посещаемость страниц и разделов сайта (количество хитов на страницу или раздел сайта) хранится в отдельной таблице, которая очищается по дате последнего хита по тому или иному разделу/странице, в зависимости от количества дней указанных в данном поле.
Сколько дней хранить динамику путей по сайту | По каждому пути на каждый день хранятся переходы в пределах конкретного пути. Эти данные хранятся в таблице, которая очищается по дате последнего перехода, в зависимости от количества дней указанных в данном поле.
Ссылающиеся сайты и поисковые фразы
Сколько дней хранить заходы с поисковыми фразами | Заход по поисковой фразе записывается в отдельную таблицу и характеризуется рядом параметров, в том числе датой захода, по которой данная таблице очищается в зависимости от количества дней указанных в данном поле.
Сколько дней хранить заходы с ссылающихся страниц | Таблица заходов по ссылающимся сайтам очищается по полю дата захода, в зависимости от количества дней указанных в данном поле.
Сколько дней хранить ссылающиеся домены | В модуле статистики помимо таблицы заходов с ссылающихся сайтов есть также таблица ссылающихся доменов. Такая схема позволяет, в частности, хранить данные по ссылающимся доменам значительно дольше, чем данные по заходам в силу меньшего размера таблицы. Но даже эта таблица должна периодически очищаться. Очистка этой таблицы происходит по дате последнего захода с того или иного домена, в зависимости от количества дней указанных в этом поле.
События
Сколько дней хранить каждое событие | В модуле статистики существуют так называемые типы событий. Информация по всем событиям, происходящим на сайте и вне его пределов, хранится в таблице, которая очищается по дате того или иного события, в зависимости от количества дней указанных в данном поле.
Сколько дней хранить динамику типов событий | По каждому типу событий на каждый день хранится число произведенных событий того или иного типа. Эти данные хранятся в таблице, которая очищается по последней обсчитанной дате, в зависимости от количества дней указанных в данном поле.
Рекламные кампании
Сколько дней хранить историю посетителей рекламных кампаний | Система регистрирует факты захода каждого посетителя по рекламным кампаниям. Эти данные хранятся в специальной таблице, которая периодически очищается. Очистка таблицы осуществляется спустя определённое количество дней после последнего захода данного посетителя. Данное поле задает количество дней, иначе - период очистки таблицы после последнего захода.
Сколько дней хранить динамику рекламных кампаний | По каждой рекламной кампании ведется отдельная таблица, в которой хранятся данные по рекламной кампании за каждый день. Эта таблица очищается по последней обсчитанной дате в зависимости от количества дней указанном в данном поле.
Поисковые системы
Сколько дней хранить хиты поисковиков | Хитами поисковиков называются адреса проиндексированных страниц сайта. Все хиты поисковиков хранятся в отдельной таблице, которая очищается по дате последней индексации в зависимости от количества дней, указанных в данном параметре.
Сколько дней хранить динамику поисковиков | По каждому поисковику хранится количество проиндексированных страниц в тот или иной день. Таблица, хранящая эти данные, очищается по последней обсчитанной дате в зависимости от количества дней, указанных в этом поле.
Страны
Сколько дней хранить динамику по странам | По каждой стране хранится количество визитов из нее и другая информация. Таблица, хранящая эти данные, очищается по последней дате в зависимости от количества дней, указанных в этом поле.
Посетители
Сколько дней хранить посетителей | Все посетители, заходящие на сайт, имеют собственные профили, которые хранятся в специальной таблице. Данные этой таблицы очищаются по дате последнего посещения сайта тем или иным посетителем, в зависимости от количества дней, указанного в данном поле.
Сессии
Сколько дней хранить сессии | Сессии посетителей хранятся в отдельной таблице. Каждая сессия характеризуется рядом параметров, один из которых – дата последнего хита в данной сессии, по этому параметру таблица сессий очищается в зависимости от количества дней указанных в данном поле.
Хиты
Сколько дней хранить хиты | Хиты (адреса загруженных страниц) хранятся в таблице, которая очищается по дате последнего хита в зависимости от количества дней указанных в данном поле.

    Вкладка "Исключения"

    На этой вкладке могут быть заданы параметры, в соответствии с которыми определённые посетители могут быть исключены из статистики.

    Поле | Описание
    Правила исключений Определяет порядок исключения требуемых посетителей:
    • учитывать всех без исключения - в базу данных статистики записываются данные по всем посетителям;
    • не учитывать пользователей из заданных групп - в базу данных статистики не включаются данные по посетителям, входящим в выбранные в следующем поле группы;
    • исключить пользователей с определённых IP адресов - не включаются данные по тем посетителям, чьи IP-адреса находятся в пределах диапазонов, указанных в поле Список диапазонов IP адресов...;
    • исключить пользователей из определённых групп пользователей, зашедших с определённых IP адресов - совмещение предыдущих двух условий.
    Группы пользователей для которых статистика НЕ собирается | Пользователи, состоящие членами выбранных групп пользователей, не будут учитываться при сборе статистики (т.е. по ним не будет вестись запись хитов, сессий, событий и прочих элементов статистической информации).
    Список диапазонов IP адресов исключений Пользователи, чьи IP-адреса попадают в один из указанных диапазонов, не будут учитываться при сборе статистики.

    Примеры диапазонов:
    • 192.168.10.110-192.168.10.120;
    • 11.0.0.5-11.0.0.5 (обратите внимание - для задания одного адреса, введите диапазон, состоящий только из этого адреса).

    Вкладка "Доступ"

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

    В качестве уровней доступа возможен выбор между:

    • доступ закрыт - доступ невозможен;
    • просмотр статистики без финансовых показателей - просмотр статистических показателей, кроме финансовых величин доходов и убылей.
    • просмотр всей статистики - просмотр всех статистических показателей, включая финансовые;
    • полный административный доступ - просмотр статистических показателей, права на изменение настроек и редактирование.
    Поле | Описание
По умолчанию | Позволяет изменять настройки "по умолчанию", влияющие на все группы пользователей, имеющие настройку доступа "по умолчанию".
[Группа пользователей] | Изменение настроек доступа для конкретной группы.

    Область "Служебные процедуры"

    Вкладка "Создание индекса" (для поиска страны по IP-адресу)

    Форма позволяет пересоздать файловый индекс и файл с базой IP-адресов для поиска страны по IP-адресу посетителя. Вы можете задать временной интервал для данной процедуры в поле Шаг, если на вашем сервере процедура не успевает отработать полностью за отведенное ей время.

    Вкладка "Очистка статистики"

    Форма позволяет очистить таблицы статистки. Исключение составляют таблица поисковиков (здесь будут сброшены только счетчики) и таблицы привязки IP-адресов к странам.

    Вкладка "Оптимизация таблиц"

    Форма позволяет оптимизировать MySQL таблицы модуля статистки для уменьшения их размера и увеличения производительности.


Таблица статистики

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Таблица статистики"

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

Компонент доступен только при наличии установленного модуля Статистика.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:statistic.table","",Array(
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "20",
     "CACHE_FOR_ADMIN" => "N"
     )
);?>

Описание параметров

Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
CACHE_FOR_ADMIN
[Y|N] При установленной опции подсчет статистики для администраторов не ведется.


Таблица статистики

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Таблица статистики"

Данный компонент выводит основные статистические показатели сайта в виде небольшой таблицы, отчасти напоминающей статистические таблицы таких систем как SpyLog, HotLog и т.п.

Пример вызова

<?$APPLICATION->IncludeFile("statistic/stat_table/default.php", Array());?>

Компонент вызывается без параметров.


Создание ссылки с учётом событий

Ссылка с параметрами event1, event2 и event3 может быть создана вручную или при помощи HTML-редактора.

Пример ссылки на загрузку файла file.exe

/download/the_bat.exe?event1=download&event2=thebat&event3=file.exe

Пример ссылки на переход на другой сайт (ссылка с заменой служебных символов)

/redirect.php?event1=softkey_out&event2=somefile&event3=buy&
 goto=http%3A//www.softkey.ru/catalog/basket.php%3F
 referer1%3Dsite%26referer2%3D%23EVENT_GID%23

Создание ссылки в HTML-редакторе

  1. Откройте страницу, в которую следует вставить ссылку.
  2. Перейдите в режим редактирования страницы в HTML-редакторе.
  3. Выделите нужный фрагмент текста и нажмите кнопку /redirect.php?event1=softkey_out&event2=thebat&event3=buy& goto=http%3A//www.softkey.ru/catalog/basket.php%3F referer1%3Dsite%26referer2%3D%23EVENT_GID%23


Сайты

В этом разделе

  • Контекстная панель
  • Список сайтов

    • Добавление, изменение и удаление сайтов в системе выполняется с помощью формы управления сайтами: Настройки -> Настройки продукта -> Сайты -> Список сайтов.

    Контекстная панель

    Кнопка | Описание
Добавить сайт | Переход к форме создания нового сайта.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список сайтов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора сайтов, к которым предполагается применить какое-либо правило или действие.
    Действия Операции с сайтом:
    • Изменить - редактирование параметров сайта;
    • Копировать - копирование сайта;
    • Удалить- удаление сайта.
    ID | Идентификатор сайта.
    Акт. | Признак активности. Если сайт не активен, он становится недоступен.
    Сортировка | Относительный вес, определяющий положение сайта в списке.
    Название | Произвольное название сайта.
    Папка Путь к папке сайта. Ядро системы позволяет использовать следующие типы URL для идентификации сайтов, работающих под управлением системы:
    • относительные (/ru/, /s2/) - для работы зеркал сайта на одном домене под управлением одной системы;
    • абсолютные корневые (www.site.ru) - для работы различных сайтов под управлением одной системы;
    • абсолютные(www.site.ru/s2/) - для работы разрозненных зеркал и/или сайтов под управлением одной системы.
    Более подробная информация об организации многосайтовости содержится в разделе Поддержка нескольких сайтов.
    По умолчанию | Сайт, выбираемый системой по умолчанию.


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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание и редактирование сайта

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Контекстная панель

    Кнопка | Описание
Список сайтов | Переход на страницу со списком сайтов.
Добавить сайт | Переход к форме создания нового сайта. Кнопка отображается при редактировании существующего сайта.
Копировать сайт | Копирование редактируемого сайта.
Удалить сайт | Удаление редактируемого сайта.

    Форма редактирования

    Данная форма предназначена для управления параметрами сайта.

    Поле | Описание
    *ID | Идентификатор сайта в системе. Состоит из двух букв латинского алфавита. Например, ru, en.
    Активен | Активность сайта. Если сайт не активен, он становится недоступен.
    *Название | Название сайта.
    Параметры для определения сайта в публичном разделе
    По умолчанию | Сайт, выбираемый системой по умолчанию.
    Доменное имя | Доменное имя или список доменных имен (каждое с новой строки) сайта.
    *Папка сайта Путь к папке сайта. Ядро системы позволяет использовать следующие типы URL для идентификации сайтов, работающих под управление системы:
    • относительные (/ru/, /s2/) - для работы зеркал сайта на одном домене под управлением одной системы;
    • абсолютные корневые (www.site.ru) - для работы различных сайтов под управлением одной системы;
    • абсолютные(www.site.ru/s2/) - для работы разрозненных зеркал и/или сайтов под управлением одной системы.
    *Сортировка | Относительный вес, влияющий на положение сайта в списке.
    Параметры
    *Язык | Язык, используемый для представления информации на страницах сайта.
    *Формат даты | Краткий формат даты для данного сайта. Определяет формат показа даты в публичном разделе сайта. Например, DD.MM.YYYY.
    *Формат даты и времени | Полный формат даты для данного сайта (со временем). Определяет полный формат показа даты в публичном разделе сайта. Например, DD.MM.YYYY HH:MI:SS.
    *Кодировка | Кодировка страниц для данного сайта. Значение поля определяет, с помощью какой кодировки будут отображаться страницы сайта. Кодировка страниц зависит от выбранного языка сайта.
    Название сайта | Произвольное название сайта.
    URL сервера | URL сервера, на котором размещён сайт. Используется в почтовых сообщениях для идентификации отправителя (например, для автоматически сгенерированных сообщений).
    E-Mail адрес по умолчанию | Адрес отправителя сообщений сайта. Подставляется в поле From.
    Путь к корневой папке веб-сервера для этого сайта Указывается путь к корневой папке веб-сервера для данного сайта. С помощью ссылки Вставить текущий в данное поле может быть подставлен путь к текущей корневой папке сайта на сервере.

    Если все сайты под управлением системы работают на одном веб-сервере, то данное поле следует оставить пустым.
    Создать почтовые шаблоны Данное поле позволяет создать шаблоны, на основе которых будут генерироваться почтовые сообщения сайта:
    • Не создавать - почтовые шаблоны создаваться не будут;
    • Привязать к имеющимся шаблонам сайта - для почтовых сообщений данного сайта буду использоваться почтовые шаблоны одного из уже существующих сайтов;
    • Скопировать из шаблонов сайта - почтовые шаблоны данного сайта будут созданы на основе почтовых шаблонов уже существующего сайта.
    Шаблон
    Это поле служит для задания условий применения того или иного шаблона дизайна к страницам сайта.
    *Шаблон | Сорт. | Тип условия | Условие
[1] | [2] | [3] | [4]
    Поле | Описание
    [1] Шаблон | Список доступных шаблонов сайта. Иконка [image] позволяет просмотреть выбранный шаблон.
    [2] Сортировка | Относительный "вес", влияющий на положение записи с условием применения шаблона в списке.
    [3] Тип условия Тип условия, при выполнении которого шаблон будет применяться к страницам сайта:
    • Для папки или файла: страница или раздел, при отображении страниц которого будет использоваться данный шаблон;
    • Для групп пользователей: группы пользователей, для которых страницы сайта будут отображаться с использованием данного шаблона;
    • Период времени: дата или период времени, в течение которого страницы сайта будут отображаться с использованием данного шаблона;
    • Параметр в URL: параметр в URL страницы, при наличии которого к странице будет применен данный шаблон;
    • Выражение PHP: произвольное условие на языке PHP.
    [4] Условие Условие, при котором шаблон будет применяться к страницам сайта.

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

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений, возврат к списку сайтов.
Применить | Применение внесённых изменений, продолжение редактирования параметров сайта.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Шаблоны сайта

В этом разделе

  • Контекстная панель
  • Список шаблонов

    • Управление шаблонами, на основе которых выполняется отображение страниц сайта, осуществляется в форме Шаблоны сайта: Настройки -> Настройки продукта -> Сайты -> Шаблоны сайтов. С помощью этой формы вы можете создавать новые, изменять и удалять существующие шаблоны сайта.

    Контекстная панель

    Кнопки | Название
Добавить шаблон | Переход на страницу с формой создания нового шаблона сайта.
Загрузить шаблон | Переход к форме загрузки (импорта) шаблона сайта в систему.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список шаблонов

    Поле | Название
    Колонка флажков | Поле предназначено для выбора шаблонов сайта, к которым предполагается применить какое-либо правило или действие.
    Действия Операции с шаблоном:
      • Изменить - редактирование шаблона;
      • Копировать - копирование (дуплицирование) шаблона;
      • Скачать - позволяет скачать шаблон.
      • Удалить - удаление шаблона.
    ID | Идентификатор шаблона.
    Название | Произвольное название шаблона.
    Описание | Произвольное описание шаблона.


Редактирование шаблона

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание и редактирование шаблона

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Шаблон
  • Стили сайта
  • Cтили шаблона
  • Дополнительные файлы
    •
  • Кнопки управления

    • Контекстная панель

    Кнопка | Описание
Список шаблонов | Переход на страницу со списком шаблонов сайта.
Добавить шаблон | Переход к форме создания нового шаблона. Кнопка отображается при редактировании существующего шаблона.
Копировать шаблон | Копирование редактируемого шаблона.
Удалить шаблон | Удаление редактируемого шаблона.

    Форма создания шаблона

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

    Закладка "Шаблон"

    Поле | Описание
ID | Идентификатор шаблона. Задается символами латинского алфавита. При редактировании шаблона рядом с данным полем отображается ссылка на папку шаблона. Примечание: При создании новый шаблон будет автоматически сохранен в каталоге /bitrix/templates/в папке с именем, соответствующим идентификатору шаблона.
Название | Произвольное название шаблона.
Описание | Произвольное описание шаблона.
*Внешний вид шаблона сайта (рабочую область заменить #WORK_AREA#):
Данное поле служит для создания и редактирования кода шаблона. Разделитель #WORK_AREA# обозначает границу между верхней и нежней частью дизайна, т.е. место подключение рабочей области страницы. Примечание: Опция Использовать визуальный редактор служит для подключения визуального режима редактирования шаблона. Опция доступна, если в настройках Главного модуля отмечена соответствующая опция.

    * - Поля, обязательные для заполнения.

    Закладка "Стили сайта"

    Файл стилей сайта (styles.css)
    Данное поле служит для описания таблиц каскадных стилей (CSS), используемых на страницах сайта. Описание стилей хранится в файле styles.css в папке шаблона сайта.
    Описание стилей
    В данной части формы указываются названия стилей, как они будут отображаться в визуальном редакторе при редактировании страниц. Указанные здесь названия будут сохранены в файле .styles.php папки шаблона.
    Поле | Описание
Имя стиля | Указывается имя стиля, как оно названо в файле.
Описание стиля | Указывается название стиля. Название будет отображаться в визуальном редакторе.

    Закладка "Стили шаблона"

    Файл стилей шаблона (template_styles.css)
    Данное поле служит для описания таблиц каскадных стилей (CSS), используемых в шаблоне. Описание стилей хранится в файле template_styles.css в папке шаблона сайта.

    Закладка "Дополнительные файлы"

    Дополнительные файлы
    В этом поле указываются дополнительные файлы (картинки, шаблоны меню, шаблоны включаемых областей и др.), используемые для текущего шаблона сайта.
      • Изменить - переход к редактированию существующего файла;
      • Добавить включаемый файл- ссылка на страницу с формой создания нового файла.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком шаблонов сайта.
Применить | Применение внесённых изменений. Продолжение редактирования шаблона.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Импорт шаблона

В этом разделе

  • Поля формы
  • Кнопки управления

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

    Поля формы

    Поле | Описание
*Файл с шаблоном для загрузки (*.gz): | С помощью кнопки "Обзор" на локальном компьютере выбирается файл с шаблоном сайта.
Код шаблона | При загрузке по умолчанию шаблон будет распакован и помещен в папку с именем, соответствующим имени загружаемого файла. Например, если имя загружаемого файла template1.tar.gz, то шаблон будет автоматически помещен в папку /template1/, а самому шаблону будет присвоен идентификатор (ID) template1. Для того чтобы шаблону был присвоен другой идентификатор, а сам шаблон был размещён в папке с соответствующим именем, в данном поле указывается нужный код шаблона. Например, demo.
Привязать как шаблон по умолчанию к сайту | В данном поле можно выбрать сайт, для которого загружаемый шаблон будет использоваться как шаблон по умолчанию.
Перейти после сохранения на страницу редактирования шаблона | Для того чтобы после завершения загрузки шаблона перейти к его редактированию, установите флаг в этом поле.

    Кнопки управления

    Кнопка | Описание
Загрузить | Выполнение загрузки выбранного шаблона сайта.


Языки

В этом разделе

  • Контекстная панель
  • Список языков

    • Одной из важных особенностей продукта «1C-Битрикс: Управление сайтом» является поддержка произвольного количества языков. Система позволяет:

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

    Управление языками административного интерфейса системы осуществляется в форме Языки: Настройки -> Настройки продукта -> Языки интерфейса.

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

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

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

    Контекстная панель

    Кнопка | Описание
Добавить язык | Переход к форме создания записи о новом языке.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список языков

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора языков, к которым предполагается применить какое-либо правило или действие.
    Действия Операции с языком:
      • Изменить- редактирование параметров языка;
      • Добавить копию - копирование (дуплицирование) языка;
      • Удалить - удаление языка.
    ID | Идентификатор языка.
    Акт. | Признак активности. Если язык не активен, то отображение сообщений на данном языке недоступно.
    Сорт. | Относительный вес, определяющий положение языка в списке.
    Название | Произвольное название языка.
    По умолчан. | Признак использования языка по умолчанию. При открытии сайта все языковые сообщения будут именно на этом языке.


Создание и редактирование языка

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Данная форма редактирования предназначена для управления параметрами языка.

    Контекстная панель

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

    Форма редактирования

    Поле | Описание
    *ID | Идентификатор языка в системе. Используется для загрузки соответствующих языковых файлов, поэтому должен совпадать с идентификатором языка в системе обновлений.
    Активен | Активность языка. Если язык не активен, то отображение сообщений на данном языке недоступно.
    *Название | Название языка.
    По умолчанию | По умолчанию все языковые сообщения будут отображаться на этом языке.
    *Сортировка | Относительный "вес", определяющий положение языка в списке.
    *Формат даты | Краткий формат даты для данного языка. Например, DD.MM.YYYY.
    *Формат даты и времени | Полный формат даты для данного языка (со временем). Например, DD.MM.YYYY HH:MI:SS
    *Кодировка | Кодировка страниц для данного языка.
    Направление текста Направление текста на данном языке:
    • Слева направо;
    • Справа налево.

    *Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком языков.
Применить | Применение внесённых изменений. Продолжение редактирования языка.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Почтовые шаблоны

В этом разделе

  • Контекстная панель
    Список шаблонов

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

    Перейти к форме Почтовые шаблоны можно из административного меню: Настройки -> Настройки продукта -> Почтовые события -> Почтовые шаблоны.

    Шаблоны почтовых сообщений различаются по типам сообщений и сайтам, для которых шаблоны предназначены.

    Каждый шаблон почтового сообщения может содержать два типа данных: неизменяемые данные (константы) и изменяемые данные (параметры).

    • Неизменяемые данные не изменяются от письма к письму по этому шаблону. Другими словами, все получатели письма получат эти данные в таком виде, в котором они занесены в шаблон письма. Примером неизменяемых данных является подпись внизу письма "С уважением, служба поддержки".
    • Изменяемые данные меняются от письма к письму в зависимости от разных условий. Другими словами, каждый получатель письма получит те данные, которые предназначены именно ему. Примером изменяемых данных является e-mail адрес получателя данного письма. Доступные для данного типа сообщения изменяемые данные перечислены в форме редактирования шаблона почтового сообщения в секции Доступные поля.

    Контекстная панель

    Кнопка | Описание
Добавить шаблон | Переход к форме создания нового почтового шаблона.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список шаблонов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора шаблонов, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные операции над шаблоном:
    • Изменить - изменение почтового шаблона;
    • Добавить копию - копирование почтового шаблона;
    • Удалить - удаление почтового шаблона.
    ID | Идентификатор почтового шаблона.
    Дата изм. | Дата и время последнего изменения шаблона.
    Акт. | Признак активности. Если шаблон не активен, то данный шаблон не будет использоваться для генерации почтовых сообщений.
    Сайт | Идентификатор сайта, для отправки почтовых сообщений с которого используется данный шаблон.
    Тип почтового события | Код и название типа почтового события, при возникновении которого будет сгенерировано почтовое сообщение на основе данного шаблона.
    Тема | Тема почтового сообщения. При генерации сообщения подставляется в поле Тема.

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


Создание и редактирование почтового шаблона

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

    • Данная форма предназначена для создания нового или изменения уже существующего почтового шаблона.

    Контекстная панель

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

    Поля формы

    Поле | Описание
    Последнее обновление | Дата последнего изменения почтового шаблона.
    Активен | Флаг активности шаблона. Если шаблон не активен, то данный шаблон не будет использоваться для генерации почтовых сообщений.
    *Сайт | Сайт (или сайты), для отправки почтовых сообщений с которого используется данный шаблон.
    Тип почтового события | Код и название типа почтового события, при возникновении которого будет сгенерировано почтовое сообщение на основе данного шаблона.
    *От кого ** | Адрес отправителя почтового сообщения.
    *Кому** | Адрес получателя почтового сообщения.
    Скрытая копия** | Адрес получателя скрытой копии сообщения.
    Тема** | Тема почтового сообщения.
    Тип тела сообщения Формат тела сообщения:
    • Текст - текстовый формат;
    • HTML - тело сообщения будет представлено в HTML формате.
    Тело сообщения**
    Поле для создания информационной части (текста) сообщения.
    Доступные поля
    В данной секции представлены шаблоны переменных (изменяемых данных), которые могут быть подставлены в поля сообщения, отмеченные **.

    Например, в поле От кого может быть подставлен шаблон #DEFAULT_EMAIL_FROM#. Это значит, что в качестве адреса отправителя сообщения будет подставляться e-mail адрес, указанный в настройках соответствующего сайта или Главного модуля.

    * - Поля, обязательные для заполнения.

    ** - Значения данных полей могут быть заданы с помощью шаблонов, представленных в секции Доступные поля.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений.
Применить | Применение внесённых изменений. Продолжение редактирования почтового шаблона.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Типы почтовых событий

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список шаблонов

    • С помощью формы Типы почтовых событий можно добавлять новые типы почтовых событий, просматривать и изменять существующие, удалять ненужные. Каждый почтовый шаблон привязывается к определённому типу почтового события. Тип определяет набор специальных полей (placeholder'ов), которые могут быть использованы в почтовом шаблоне. В момент создания почтового события (т.е. готового сообщения) эти поля будут инициализированы конкретными значениями.

    Перейти к форме Типы почтовых событий можно из административного меню: Настройки -> Настройки продукта -> Почтовые события -> Типы почтовых событий.

    Форма поиска

    Поле | Описание
Найти | Это поле позволяет найти требуемые типы почтовых шаблонов по наиболее типичным критериям, выбираемым в списке: тип шаблона, его название или описание.
ID типа почтового события | Поиск типов почтовых событий по ID.
ID шаблона | Поиск типов почтовых событий по ID шаблона.

    Для того чтобы отобрать типы постовых событий по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех типов нажмите кнопку "Отменить".

    Контекстная панель

    Кнопка | Описание
Добавить тип | Переход к форме создания нового типа.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список шаблонов

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора типов, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные операции над шаблоном:
    • Изменить - изменение типа почтового события;
    • Удалить - удаление почтового шаблона.
    ID | Идентификаторы типа почтового события для каждого из языков, по которым тип определён.
    Язык | Выведены идентификаторы языков, для которых тип определён.
    Тип | Кодовое название типа почтового события (латинскими буквами без пробелов).
    Название | Название типа почтового события на текущем языке системы.
    Описание | Описание типа почтового события на текущем языке системы.
    Шаблоны | Перечислены ID шаблонов, относящихся к данному типу.

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


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

В этом разделе

  • Контекстная панель
  • Поля формы
  • Тип события
  • Шаблоны
    •
  • Кнопки управления

    • Данная форма предназначена для создания нового или изменения уже существующего типа почтового события.

    Контекстная панель

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

    Поля формы

    Тип события
    Поле | Описание
    *Тип почтового события | Кодовое название типа почтового события (латинскими буквами без пробелов).
    Для каждого из установленных в системе языков:
    ID | Идентификатор типа события для каждого из языков.
    Сортировка | Индекс сортировки, определяющий положение типа события в общем списке.
    Название | Осмысленное название типа события.
    Описание Определяется набор специальных полей (placeholder'ов) которые могут быть использованы в почтовом шаблоне, например,
    #ID# - ID
    #IBLOCK_ID# - ID информационного блока

    * Поля обязательные для заполнения.

    Шаблоны

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком типов почтовых событий.
Применить | Применение внесённых изменений. Продолжение редактирования почтового шаблона.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Модули

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

Поле | Описание
Название модуля | Название модуля.
Версия | Текущая версия модуля.
Дата обновления | Дата последнего обновления модуля.
Статус Текущий статус модуля:
  • Установлен;
  • Не установлен.
Действия Доступные действия над модулем:
  • Удалить;
  • Установить.

Обратите внимание, что некоторые модули при деинсталляции предлагают сохранить (не удалять) накопленные ими данные. Если в дальнейшем вы планируете использовать эти данные, то при деинсталляции модуля следует отметить поле "Сохранить таблицы".


Автокеширование

В этом разделе

  • Кеширование компонентов
  • Очистка файлов кеша
    •

    Кеширование компонентов

    Автокеширование стало одной из основных технологий, вошедших в «1С-Битрикс: Управление сайтом 6.0» и Компоненты 2.0. Использование технологии автокеширования позволяет быстро подготовить сайт и компоненты проекта к работе в условиях стрессовых нагрузок или адаптировать сайт к работе на виртуальном хостинге. Методология разработки Компонента 2.0 включает обязательное требование поддержки технологии Автокеширования для разработчиков.

    На странице Настройки кеширования можно включить либо отключить автокеширование на сайте.

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

    Обратите внимание: при использовании режима "Автокеширования", обновление информации, выводимой компонентами, происходит в соответствии с параметрами отдельных компонентов.

    Для того чтобы обновить содержимое закешированных объектов на странице, вы можете:

    1. Перейти на нужную страницу и обновить ее содержимое, используя специальную кнопку в административной панели для очистки закешированой информации.

    2. В режиме Редактирования сайта использовать кнопки для очистки кеша в панели отдельных компонентов.

    3. Необходимо перейти к настройкам выбранных компонентов и перевести их в режим работы без кеширования.

    Примечание: При включении режима автокеширования компонентов, компоненты с настройкой кеширования "Авто" будут переведены в режим работы с кешированием.

    Компоненты с настройкой кеширования "Кешировать" и временем кеширования больше нуля, всегда работают в режиме кеширования.

    Компоненты с настройкой кеширования "Не кешировать" или временем кеширования равным нулю, всегда работают без кеширования.

    Очистка файлов кеша

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

    Поле | Описание
Только устаревшие | Файлы, содержащие устаревшую информацию.
Все | Все файлы кэша.
Меню | Меню может быть закешировано, если происходят проверки доступа к различным пунктам меню, разделам. Данный пункт позволяет очистить этот кеш.
Весь управляемый | Все файлы раздела /bitrix/cash/

    Для удаления выбранных файлов нажмите кнопку "Очистить".

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


Список мастеров

В данном разделе

Контекстная панель
Список правил

На странице Настройки -> Настройки продукта -> Список мастеров представлены все мастера, имеющиеся в системе. Мастер - это специализированный функционал, состоящий из нескольких шагов, за время выполнения которых происходит настройка системы для решения определённой задачи.

Контекстная панель

Кнопка | Описание
Загрузить мастер | Переход к форме импорта мастера.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список мастеров

Поле | Описание
Действие Действия над мастерами:
  • Установить - запуск мастера;
  • Скачать - служит для скачивания мастера на локальный компьютер;
  • Удалить - удаление мастера.
ID | Полное имя мастера.
Название | Название мастера.
Описание | Краткое описание возможностей мастера.
Версия | Версия мастера.


Импорт мастера

В данном разделе

Контекстная панель
Форма загрузки

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

Контекстная панель

Кнопка | Описание
Список мастеров | Переход на страницу со списком мастеров.

Форма загрузки - вкладка "Импорт мастера"

Поле | Описание
Файл с мастером для загрузки (*.gz) | С помощью кнопки Обзор... выбирается файл с сервера или локального компьютера для загрузки.

Кнопка "Загрузить" служить для загрузки мастера в систему.


Настройки

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Настройки модулей

Меню страницы

Форма настройки модуля
Настройки
Авторизация
Система обновлений
Доступ
Кнопки управления
Служебные процедуры
Публичная часть

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

Перейти к форме настройки модулей можно, нажав кнопку [image] на административной панели, либо из административного меню: Настройки -> Настройки продукта -> Настройки модулей.

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

Форма настройки модуля

Закладка "Настройки"

На данной вкладке выполняется настройка общих параметров Главного модуля.

Поле | Описание
Системные настройки
Язык по умолчанию для административной части | Определяет, какой язык используется для административной части по умолчанию.
Название сайта | Название, используемое для всех сайтов по умолчанию.
URL сайта (без http://) | Web-адрес, используемый по умолчанию в качестве адресов сайтов, работающих под управлением системы (вводится без http://). Например: www.mysite.com
Имя префикса для названия cookies (без точек и пробелов) | Строка, добавляемая к имени cookie.
Использовать общие файлы cookies для всех доменов. Используется для модулей Статистика, Реклама, Опросы, Форумы и некоторых других модулей.

Установка флага в это поле также дает возможность организовать "сквозную" авторизацию на сайтах, работающих под управлением системы.
Посылать в заголовке статус 200 на 404 ошибку | Если опция включена, при отправке ответа Страница не найдена в случае ошибочного запроса будет отправлен статус операции ОК.
Режим вывода ошибок (error_reporting) Определяет, какие сообщения об ошибках в работе системы будут выводиться на экран (обычно используется для отладки).
  • Только ошибки - выводить сообщения только об ошибках;
  • Ошибки и предупреждения- выводить сообщения об ошибках, а также предупреждения о возможности возникновения ошибки;
  • Не выводить- не показывать сообщения об ошибках.
Использовать визуальный редактор для редактирования шаблонов сайта | При отмеченной опции будет возможно редактировать шаблон сайта в визуальном HTML редакторе.
Почта
E-Mail адрес или список адресов через запятую, на который будут дублироваться все исходящие сообщения | Все почтовые сообщения сайта будут дублироваться на указанный e-mail адрес (адреса).
Отправлять в письме идентификаторы почтового события и шаблона | В каждом письме будут присутствовать данные, уникально идентифицирующие это письмо.
Дублировать E-Mail адрес в заголовок Адрес получателя сообщений с сайта по умолчанию. Значение данного поля используется, например, при формировании сообщений автоматической рассылки.

Отметьте этот флаг, если письма с сайта приходят без поля TO.
E-Mail администратора сайта (отправитель по умолчанию) | По умолчанию в качестве e-mail адреса отправителя письма с сайта будет подставляться этот адрес.
Конвертировать символы новой строки Unix формата в Windows формат при отправке email | Если опция включена, переводы строк конвертируются из односимвольного формата UNIX в двухсимвольный Windows (CR+LF).
Конвертировать 8-битные символы в заголовке письма | Если символы с кодом выше 127 (т.е. 8-битные) в заголовках отправляемых с сайта писем отображаются некорректно, включите эту опцию. В этом случае все подобные символы в заголовке будут переданы в кодировке Base64.
Файлы
Ограничение дискового пространства (Мб) | При необходимости вы можете задать ограничение (в Мб) на дисковое пространство.
Папка по умолчанию для загрузки файлов | Папка, в которую будут попадать файлы (например, картинки) при загрузке на сайт. Путь к папке указывается относительно корня сайта.
Сохранять исходные имена загружаемых файлов Если опция отключена, при загрузке файлов на сайт (например, изображений) оригинальные имена этих файлов сохранены не будут. Файлам будут автоматически присваиваться имена, состоящие из случайных символов.

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

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

Данная возможность введена для обеспечения кроссплатформенной совместимости.
Карта сайта
Тип меню для нулевого уровня карты сайта | Название типа меню, пункты которого будут использоваться в качестве вершин карты сайта.
Тип меню для остальных уровней карты сайта | Название типа меню, пункты которого будут использоваться в качестве ветвей карты сайта.

Закладка "Авторизация"

Поле | Описание
Позволять ли пользователям регистрироваться самостоятельно? | Определяет, могут ли посетители самостоятельно регистрироваться на сайте.
При регистрации добавлять в группу | Группа, в которую пользователь будет автоматически попадать при регистрации.
Разрешить запоминание авторизации | Определяет, выводить ли флажок "Запомнить меня на этом компьютере" в форме авторизации.
Использовать защищенное хранение авторизации в cookies | Определяет, будет ли использоваться шифрация при сохранении идентификационной информация в файлах cookies.
Распространять авторизацию на все домены | Установка флага в это поле позволяет организовать "сквозную" авторизацию на всех сайтах, работающих под управлением системы. Т.е. авторизация пользователя в одном домене автоматически будет распространяться на все домены всех сайтов. Предварительно необходимо разрешить распространение файлов cookies на все домены.
Использовать CAPTCHA при регистрации | Использовать специальный текст для различия человека и программы при создании запроса на регистрацию в системе.
Использовать Компоненты 2.0 для авторизации и регистрации | При отмеченной опции для авторизации и регистрации будут использованы Компоненты 2.0.

Закладка "Система обновлений"

Поле | Описание
Лицензионный ключ | Лицензионный ключ данной копии продукта.
Имя сервера, содержащего обновления | Имя сервера, с которого выполняется обновление продукта (должно быть равно bitrix.ru).
Адрес прокси для системы обновлений | Адрес прокси-сервера, через который выполняется доступ к серверу обновлений (используется, например, для корпоративных сетей).
Порт прокси для системы обновлений | Адрес порта, по которому выполняется доступ к системе обновлений через прокси-сервер.
Имя пользователя прокси | Имя пользователя для доступа к прокси-серверу.
Пароль прокси | Пароль для доступа к прокси-серверу.
Усиленная проверка корректности установки обновлений | Флаг в этом поле позволяет выполнять проверку корректности установки обновлений. При копировании файлов из промежуточной папки /updates/ в папки модулей будет выполняться проверка контрольной суммы. Если полученная контрольная сумма не соответствует исходной, то выводится сообщение о некорректной установке обновлений.
Загружать только стабильные обновления | При отмеченной опции в системе обновлений будут загружаться только стабильные версии. При снятой опции - бета-версии.

Закладка "Доступ"

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

Поле | Описание
По умолчанию | Уровень доступа к Главному модулю для всех групп пользователей, для которых установлено право доступа "по умолчанию".
[Группа пользователей] Изменение настроек доступа для конкретной группы. Возможно назначение следующих прав доступа к Главному модулю:
  • закрыт- запрет на доступ;
  • изменение своего профайла- право на просмотр и изменение собственного профайла;
  • просмотр всех данных модуля - доступ к просмотру файлов модуля без права на изменение;
  • просмотр всех данных модуля и изменение своего профайла - доступ к просмотру файлов модуля с правом на изменение собственного профайла;
  • запись- полный доступ к управлению модулем.

Кнопки управления

Кнопка | Описание
Сохранить | Сохранение внесённых изменений.
Сбросить | Отмена внесённых изменений. Возврат первоначальных значений параметров.
По умолчанию | Установка значений свойств модуля равными значениям по умолчанию.

Служебные процедуры

Закладка "Публичная часть"

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

Поле | Описание
Доступ к публичной части открыт/закрыт | Сообщение о текущем состоянии доступа к публичной части сайта.

С помощью кнопки "Закрыть доступ пользователей/Открыть доступ для всех" посетителям может быть разрешен или запрещён доступ к публичной части сайта.


Настройка интерфейса

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

Управление оформлением административного раздела осуществляется на странице Настройка интерфейса пользователя (Настройки -> Настройки продукта -> Интерфейс).

Закладка "Настройки"

Поле | Описание
Персональные настройки
*Визуальная тема интерфейса | В данном поле отображается список доступных тем: указывается название темы и имя папки, в которой хранятся файлы темы. В поставку продукта входит визуальная тема По умолчанию (.default).
Разрешить контекстное меню в списках | Для того чтобы отображалось контекстное меню в списках (таблицах отчета), необходимо отметить данную опцию.
Показывать контекстное меню по нажатию | Если разрешено показывать контекстное меню в списках, то необходимо выбрать способ его вызова: по клику правой кнопки мыши или по клику правой кнопки мыши+Ctrl.
Общие настройки
Установить данные настройки по умолчанию для всех пользователей | При отмеченной опции выбранная тема будет использоваться по умолчанию для всех пользователей.

* - Поле, обязательное для заполнения.

Закладка "Удаление"

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

Для сохранения настроек нажмите "Применить".


Пользовательские поля

В этом разделе

  • Форма поиска
  • Контекстная панель
  • Список полей
    •

    С помощью формы Пользовательские поля (Настройки -> Настройки продукта -> Пользовательские поля) можно добавлять новые поля, просматривать и изменять существующие, удалять ненужные. В продукте реализована возможность добавления пользовательских свойств для

    • Пользователей;
    • Разделов информационных блоков;
    • Блогов;
    • Форумов.

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

    Форма поиска

    Поле | Описание
    ID | Поиск поля по ID записи.
    Объект | Поиск свойства по объекту, например, USER, USER_PROPERTY, BLOG_POST и т.д.
    Название поле | Поиск поля по названию. Название начинается с UF_.
    Тип данных Поиск поля по типу данных. Предлагается следующий набор типов данных:
    • Целое число
    • Дата/Время
    • Файл
    • Строка
    • Список
    • Число
    • Да/Нет
    XML_ID | Поиск по индексу XML_ID
    Множ. | Поиск по признаку, является ли поле множественным, т.е. можно ли задать несколько значений одного поля.
    Обяз. | Поиск по признаку, является ли поле обязательным для заполнения.
    Фильтр | Если "нет", то будут отобраны поля, для которых установлено "не показывать в фильтре".
    Показ. | Поиск по признаку, показывать ли данное поле в списке по месту применения.
    Редакт. | Поиск по признаку, можно ли редактировать данное поле пользователем.
    Поиск | Поиск по признаку, участвуют ли значения поля в поиске.

    Контекстная панель

    Поле | Описание
Добавить | Переход к форме добавления поля.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список полей

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора полей, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные операции над полем:
    • Изменить - изменение поля;
    • Удалить - удаление поля.
    ID | Уникальный идентификатор поля.
    Объект | Данное поле заполняется автоматически при переходе к созданию поля с места применения (например из формы редактирования пользователя, значение объекта - USER). Либо заполняется вручную при создании поля со страницы Пользовательские поля.
    Название поля | Код поля. Можно задать только для нового поля. Начинается с UF_. Задается только латинскими буквами.
    Тип данных Один из доступных типов данных:
    • Целое число
    • Дата/Время
    • Файл
    • Строка
    • Список
    • Число
    • Да/Нет
    Сорт. | Индекс сортировки, определяющий положение поля в общем списке.


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

В этом разделе

  • Контекстная панель
  • Форма редактирования
    •

    Контекстная панель

    Поле | Описание
Список | Переход к списку полей.
Добавить | Переход к добавлению нового поля. Отображается при редактировании существующего поля.
Удалить | Удаление редактируемого поля.

    Форма редактирования

    Поле | Описание
    ID | Уникальный идентификатор поля. Присваивается после сохранения.
    *Тип данных Выбирается один из возможных типов данных:
    • Целое число
    • Дата/Время
    • Файл
    • Строка
    • Список
    • Число
    • Да/Нет

    Обратите внимание: параметр можно задать только для нового поля, после сохранения изменить его нельзя.

    *Объект | Код объекта, к которому относится поле. Например, для пользователя объектом является USER, для раздела инфоблока объект строится так: IBLOCK_#SECTION_ID#_SECTION.
    *Код поля | Код самого поля. Можно задать только для нового поля. Начинается с UF_.
    XML_ID | Указывается индекс XML_ID.
    Сортировка | Индекс сортировки, определяющий положение поля в общем списке.
    Множественное | Является ли значение поля множественным. Указывается только для нового поля.
    Обязательное | Является ли поле обязательным для заполнения.
    Показывать в фильтре списка Выбирается одна из возможностей:
    • не показывать - поле не будет показано в фильтре;
    • точное совпадение - поле будет показано в фильтре. Для нахождения элемента в списке по данному полю требуется точное совпадение;
    • поиск по маске - поле будет показано в фильтре. Для поиска элемента в списке по данному полю можно использовать маску;
    • поиск по подстроке - поле будет показано в фильтре.
    Не показывать в списке | При отмеченной опции поле не будет отображаться в списке элементов в месте применения.
    Не разрешать редактирование пользователем | При отмеченной опции значение поля нельзя редактировать, только вычислять и устанавливать через API.
    Значения поля участвуют в поиске | При отмеченной опции значения поля будут участвовать в поиске в публичной части после переиндексации сайта.
    Дополнительные настройки поля (зависят от типа)
    Целое число
    Значение по умолчанию | Укажите, если требуется, значение поля по умолчанию.
    Размер поля ввода для отображения | Укажите размер поля, каким он будет отображен в форме, где используется данное поле. По умолчанию введено 20.
    Минимальное значение (0 - не проверять) | Укажите, если требуется, минимальное значение поля. При вводе значения поля это будет проверяться. Введите 0, чтобы не проверялось минимальное значение.
    Максимальное значение (0 - не проверять) | Укажите, если требуется, максимальное значение поля. При вводе значения поля будет это проверяться. Введите 0, чтобы не проверялось максимальное значение.
    Дата/Время
    Значение по умолчанию Выбирается один из возможных вариантов:
    • нет - значения по умолчанию не будет;
    • текущая дата - значением по умолчанию будет текущая дата на момент заполнения;
    • также значение по умолчанию может быть установлено вручную с использованием календаря.
    Файл
    Размер поля ввода для отображения | Укажите размер поля, каким он будет отображен в форме, где используется данное поле. По умолчанию введено 20.
    Максимальные ширина и высота для отображения в списке | Поле используется для изображений. Если размер изображения больше заданного, то изображение будет уменьшено (<img src="..." width="<w>" height="<h>">).
    Максимально допустимый размер для показа в списке (0 - не ограничивать) | Ограничение указывается в байтах. Если больше указанного, то в списке будет выведена просто ссылка, а не показываться картинка.
    Максимально допустимый размер файла для загрузки (0 - не проверять) | Поле служит для ограничения размера файла. Задайте максимальный размер файла в байтах. 0 - неограниченный размер.
    Расширения | Введите допустимые расширения файлов через запятую.
    Строка
    Значение по умолчанию | Можно определить значение по умолчанию.
    Размер поля ввода для отображения | Укажите размер поля, каким он будет отображен в форме, где используется данное поле. По умолчанию введено 20.
    Количество строчек поля ввода | Укажите количество строк поля ввода. По умолчанию равно 1.
    Минимальная длина строки (0 - не проверять) | Есть возможность ограничить размер строки по минимальному значению. Если 0, то не ограничивать.
    Максимальная длина строки (0 - не проверять) | Есть возможность ограничить размер строки по максимальному значению. Если 0, то не ограничивать.
    Регулярное выражение для проверки | Можно ввести регулярное выражение для ограничения вводимых значений поля. Регулярное выражение необходимо ограничить любыми удобными символами, например, /^T.+N$/ либо #^T.+N$#.
    Список
    Внешний вид | Указывается тип внешнего вида: Список или Флажки
    Высота списка | Указывается высота списка
    Пункты списка задаются после сохранения изменений (по кнопке Применить) на закладке Список.
    Число
    Значение по умолчанию | Можно определить значение по умолчанию.
    Размер поля ввода для отображения | Укажите размер поля, каким он будет отображен в форме, где используется данное поле. По умолчанию введено 20.
    Минимальное значение (0 - не проверять) | Можно установить минимальное допустимое значение. Если установлено 0, то не проверять.
    Максимальное значение (0 - не проверять) | Можно установить максимальное допустимое значение. Если установлено 0, то не проверять.
    Да/Нет
    Значение по умолчанию | Устанавливается, что будет значением по умолчанию, да или нет.
    Внешний вид Выбирается один из возможных внешних видов поля:
    • Флажок;
    • Радио кнопки;
    • Выпадающий список.
    Языковые настройки
    Язык | Подпись в форме редактирования | Заголовок в списке | Подпись фильтра в списке | Сообщение об ошибке (не обязательное) | Помощь
[1] | [2] | [3] | [4] | [5] | [6]
    Язык [1] | Перечислены все языки, установленные в системе.
    Подпись в форме редактирования [2] | Можно определить для каждого из установленных языков подпись поля в форме редактирования. Если поле пусто в форме редактирования будет выведен код поля.
    Заголовок в списке [3] | Можно определить для каждого из установленных языков подпись поля в списке, т.е. в отчетной форме. Если поле пусто в списке поле будет представлено кодом (в случае, если настроено, что поле должно отображаться в списке).
    Подпись фильтра в списке [4] | Можно определить для каждого из установленных языков подпись поля в фильтре, т.е. как поле будет отображено в форме поиска. Если поле пусто в фильтре поле будет представлено кодом (в случае, если настроено, что поле должно отображаться в фильтре).
    Сообщение об ошибке (не обязательное) [5] | Сообщение об ошибке, которое будет выводиться в форме, где применяется поле. Действует для типа данных Строка, например, при несоответствии введенного значения регулярному выражению, определённому для поля.
    Помощь [6] | Поле для ввода сообщений помощи. Поле ведется внутри системы, но пока нигде не выводится. Вы можете вывести его самостоятельно там, где необходимо.


Компонент Карта сайта

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Карта сайта"

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:main.map","",Array(
     "LEVEL" => "3",
     "COL_NUM" => "1",
     "SHOW_DESCRIPTION" => "Y",
     "SET_TITLE" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "3600"
     )
);?>

Описание параметров

Настройки кеширования
CACHE_TYPE
Тип кеширования:
  • A - Авто: действует при включенном кешировании в течение заданного времени;
  • Y - Кешировать: для кеширования необходимо определить только время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
CACHE_TIME
Время кеширования, указанное в секундах.
Дополнительные настройки
SET_TITLE
[Y|N] При выборе значения "Y" будет установлен заголовок страницы Карта сайта.
Настройки компонента
LEVEL
Максимальный уровень вложенности разделов при показе в карте сайта.
COL_NUM
Количество колонок карты сайта.
SHOW_DESCRIPTION
[Y|N] При выборе значения "Y" будут выведены описания разделов, если они заданы.


Вставка включаемой области

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Вставка включаемой области"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
    "AREA_FILE_SHOW" => "page",
    "AREA_FILE_SUFFIX" => "inc",
    "AREA_FILE_RECURSIVE" => "N",
    "EDIT_MODE" => "html",
    "EDIT_TEMPLATE" => "page_inc.php"
)
);?>

Описание параметров

Параметры компонента
AREA_FILE_SHOW
Показывать включаемую область. Возможные значения sect (показывать для раздела, область будет являться включаемой для всего раздела), page (показывать для страницы, область будет являться включаемой только для текущей страницы).
AREA_FILE_SUFFIX
Суффикс имени файла включаемой области. Поле предназначено для указания суффикса, который будет добавляться к именам файлов включаемых областей. Страницы с таким суффиксом будут восприниматься как включаемые области.
AREA_FILE_RECURSIVE
[Y|N] Рекурсивное подключение включаемых областей разделов. Настройка доступна при установленном параметре Показывать включаемую область (AREA_FILE_SHOW) в значение "для раздела" (sect). При установленном флаге включаемые области разделов будут подключаться рекурсивно, т.е. если в папке более низкого уровня есть своя включаемая область, то она будет показана. Если же текущий раздел не имеет своей включаемой области, то рекурсивно до корня сайта будут проверяться все разделы до самого верхнего и будет выведена первая встретившаяся включаемая область.
EDIT_MODE
Режим редактирования по умолчанию. Доступны три значения "как HTML (html)", "как PHP (php)", "как текст (text)". Режим редактирования, выбранный в данном поле, будет использоваться при переходе к редактированию включаемой области страницы/раздела из публичной части.
EDIT_TEMPLATE
Шаблон области по умолчанию. Доступны все шаблоны страниц, созданные в системе. Они располагаются в разделе /bitrix/templates/.default/page_templates/. В данном поле вы можете указать любой другой файл в системе, указав полный путь в файлу-шаблону.


Выбор сайта

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Выбор сайта"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:main.site.selector",
".default",
Array(
    "SITE_LIST" => array(0=>"*all*",),
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "3600"
    )
);?>

Описание параметров

Источник данных
SITE_LIST
Список сайтов. В данном поле можно выбрать сайты, ссылки на которые будут выведены данным компонентом в публичном разделе.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах. По умолчанию поле содержит 3600 сек.


Меню

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Меню"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:menu",
"horizontal_multilevel",
Array(
    "ROOT_MENU_TYPE" => "top",
    "MAX_LEVEL" => "3",
    "CHILD_MENU_TYPE" => "left",
    "USE_EXT" => "Y"
    )
);?>

Описание параметров

Основные параметры
ROOT_MENU_TYPE
Тип меню для первого уровня. Указывается один из заданных в системе (в настройках модуля Управление структурой) типов меню. Также можно указать код другого типа меню латинскими буквами.
Дополнительные настройки
MAX_LEVEL
Уровень вложенности меню. Принимает значения от 1 до 4. Только те шаблоны меню, которые являются многоуровневыми, принимают значения, отличные от 1.
CHILD_MENU_TYPE
Тип меню для остальных уровней. Аналогично с типом меню для первого уровня, определяется тип меню для остальных уровней. В выпадающем списке выбирается один из заданных в системе (в настройках модуля Управление структурой) типов меню. Также можно указать другой тип меню латинскими буквами.
USE_EXT
[Y|N] Подключать файлы с именами вида .тип_меню.menu_ext.php. Если опция отмечена, то при вызове меню из шаблона в каждом разделе будет происходить проверка на наличие в данном разделе файла с именем .тип_меню.menu_ext.php. В таком файле определяется массив параметров, который может быть выведен в качестве пунктов меню указанного типа.
Например, компонент Пункты меню позволяет определить массив, состоящий из разделов определенного инфоблока.


Меню

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Навигационная цепочка"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:breadcrumb",
".default",
Array(
    "START_FROM" => "0",
    "PATH" => "",
    "SITE_ID" => ""
)
);?>

Описание параметров

Дополнительные настройки
START_FROM
Номер пункта, начиная с которого будет построена навигационная цепочка. В поле может быть задано числовое значение, определяющее уровень вложенности раздела на сайте, начиная с которого начнется построение навигационной цепочки. Например, 0 (ноль) в данном поле означает, что построение навигационной цепочки начнется от корня сайта. В случае если заполнено поле Путь, для которого будет построена навигационная цепочка, то номер пункта считается в данном пути.
PATH
Путь, для которого будет построена навигационная цепочка (по умолчанию, текущий путь). В данном поле можно переопределить путь, для которого будет построена навигационная цепочка. Если поле не заполнено, то навигационная цепочка будет строиться для текущего пути, в противном случае для пути, определенном в данном поле.
SITE_ID
Cайт. В списке перечислены все сайты, созданные в системе. Параметр устанавливается в случае многосайтовой версии, когда DOCUMENT_ROOT у сайтов разный.


Меню

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Пункты меню"

Компонент создан в качестве примера выборки информации из инфоблоков для создания пунктов меню. Страницу, созданную с использованием этого компонента необходимо назвать .тип_меню.menu_ext.php , где в тип_меню указывается тот тип меню из определенных в системе, куда будут выводиться создаваемые пункты меню.

Пример вызова

...
$aMenuLinksExt = $APPLICATION->IncludeComponent(
"bitrix:menu.sections",
"",
Array(
    "ID" => $_REQUEST["ELEMENT_ID"],
    "IBLOCK_TYPE" => "books",
    "IBLOCK_ID" => "30",
    "SECTION_URL" => "/e-store/books/index.php?SECTION_ID=#ID#",
    "CACHE_TIME" => "3600"
)
);
...

Описание параметров

Основные параметры
ID
ID элемента для подсветки пункта меню.
IBLOCK_TYPE
Тип информационного блока
IBLOCK_ID
Код информационного блока
SECTION_URL
URL, ведущий на страницу с содержимым раздела
Источник данных
DEPTH_LEVEL
Сколько уровней вложенности выводить
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах. По умолчанию поле содержит 3600 сек.


Список избранного

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список избранного
    •

    Управление избранными страницами осуществляется на странице Список избранного в административном разделе сайта: Настройки -> Избранное

    Также на страницу Список избранного можно перейти по ссылке административной панели Избранное -> Организовать избранное...

    Форма Список избранного предназначена для:

    • просмотра списка избранного;
    • редактирования избранных ссылок;
    • создания и удаления избранных ссылок.

    Фильтр

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

    Параметр | Описание
    Заголовок ссылки | Поиск ссылок по заголовку. Допустимо использование сложного поиска.
    URL ссылки | Поиск избранного по URL ссылок. Допустимо использование сложного поиска.
    ID | Идентификатор ссылки избранного. Соответствует полю ID списка избранного. Допустимо использование сложного поиска.
    Язык интерфейса Определяется, какому языку будут соответствовать избранные ссылки в результатах поиска:
    • все - будут отображаться избранные ссылки, соответствующие всем языкам системы.
    • далее в выпадающем списке перечислены все языки, установленные в системе. По каждому из них можно осуществлять поиск.
    Дата изменения | Позволяет отобрать избранные ссылки, параметры которых были изменены в течение интересующего вас периода.
    Кем изменено | Позволяет отобрать избранные ссылки по пользователю, который изменил параметры избранного. Допустимо использование сложного поиска.
    Кем создано | Позволяет отобрать избранные ссылки по пользователю, который их создал. Допустимо использование сложного поиска.
    Описание | Допустимо использование сложного поиска.
    Общая ссылка Определяется, какие ссылки будут отображаться в результатах поиска:
    • да - общие для всех пользователей;
    • нет - ссылки, не являющиеся общими для всех;
    • все - все ссылки (и общие, и необщие).
    Принадлежит пользователю | Позволяет отобрать избранные ссылки по пользователю, который является их владельцем. Допустимо использование сложного поиска.
    Требуются права на модуль | Позволяет установить один из модулей системы, права на доступ к которому требуются для перехода по избранным ссылкам.

    Для того чтобы отобрать избранные ссылки по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех ссылок нажмите кнопку "Отменить".

    Контекстная панель

    Пункт | Описание
Добавить | Переход к форме создания новой избранной ссылки.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список групп пользователей

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора избранных ссылок, к которым предполагается применить какое-либо правило или действие.
    Действие Действия над группой пользователей:
    • Изменить - переход к редактированию ссылки;
    • Удалить - удаление избранной ссылки.
    Заголовок | Заголовок избранной ссылки. Представлен в виде ссылки на избранную страницу.
    Ссылка | Ссылка на избранную страницу. По данной ссылке осуществляется переход к редактированию параметров избранной ссылки.
    Сорт. | Индекс сортировки. Определяет положение ссылки в общем списке.
    Язык | Язык интерфейса, на котором будет доступна избранная ссылка.
    Общая | "Да", если ссылка является общей для всех пользователей. "Нет", если не является.
    Владелец | ID, логин и имя пользователя, который является владельцем ссылки. ID представлено в виде ссылки на форму редактирования параметров пользователя.
    Модуль | Права на доступ к какому модулю необходимы, чтобы данная ссылка была доступна.
    ID | Идентификатор избранной ссылки.


Создание и редактирование избранного

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • Форма создания/редактирования избранного предназначена для настройки параметров существующей или вновь создаваемой ссылки.

    Для того чтобы пользователь имел право добавлять страницы административного раздела в избранное, он должен:

    • Иметь доступ к административному разделу сайта;
    • Иметь уровень доступа Изменение своего профайла в настройках главного модуля.

    Контекстная панель

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

    Форма редактирования

    Поле | Описание
Изменено | Дата и время последнего изменения ссылки. А также ID, логин и имя пользователя, который внес изменения. ID представлено в виде ссылки на страницу с формой редактирования параметров пользователя. Отображается в режиме редактирования ссылки.
Создано | Дата и время создания ссылки. А также ID, логин и имя пользователя, который создал ссылку. ID представлено в виде ссылки на страницу с формой редактирования параметров пользователя. Отображается в режиме редактирования ссылки.
*Наименование | Наименование ссылки, которое будет отображаться в списке избранного.
*Ссылка | Путь к избранной странице.
Порядок сортировки | Относительный "вес" ссылки. Определяет положение ссылки в общем списке.
Доступна на языке интерфейса | Устанавливается, на каком языке интерфейса будет доступна создаваемая ссылка.
Комментарий | Произвольный комментарий к создаваемой ссылке.
Настройки администратора
Эта часть формы отображается при редактировании избранной ссылки администратором сайта.
Ссылка общая для всех пользователей | Опция определяет, отображать ли создаваемую ссылку для всех пользователей, имеющих доступ к административном разделу или только владельцу ссылки. Если данная опция отмечена, то доступно поле Доступна при наличии прав на модуль, а поле Принадлежит пользователю закрыто.
Принадлежит пользователю | Доступно для ввода при снятой опции Ссылка общая для всех пользователей. С помощью кнопки ... можно выбрать одного из пользователей системы. По умолчанию в данное поле вписывается создатель ссылки.
Доступна при наличии прав на модуль | Если опция Ссылка общая для всех пользователей отмечена, то в данном поле можно установить один из модулей системы, и только при наличии прав доступа к этому модулю ссылка будет доступна. Можно выбрать пункт (не проверять).

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров ссылки. Переход на страницу со списком избранного.
Применить | Сохранение параметров ссылки. Продолжение редактирования.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Управление пользователями

Система 1С-Битрикс: Управление сайтом позволяет создавать произвольное количество групп пользователей с разными правами доступа к ресурсам сайта. С помощью настройки прав доступа, вы можете:

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

Система 1С-Битрикс: Управление сайтом обладает широким спектром возможностей для организации совместного управления сайтом, что позволяет сократить время на его поддержку. С помощью настроек прав доступа можно организовать управление сайтом одновременно нескольким пользователям - администраторами сайта. Администраторы, в свою очередь, могут распределять определённые обязанности по управлению сайтом между другими сотрудниками компании, обладающими меньшими правами на доступ к ресурсам сайта.

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


Список пользователей

В данном разделе

Фильтр
Контекстная панель
Список пользователей

Форма Список пользователей находится в административной части сайта: Настройки -> Пользователи -> Список пользователей. Данная форма содержит полный список пользователей сайта и позволяет:

  • добавлять новых пользователей сайта;
  • переходить к управлению параметрами и правами доступа пользователей;
  • удалять пользователей сайта.

Фильтр

Форма фильтра используется для выбора из списка пользователей в соответствии с указанными условиями. Нижеследующая таблица описывает параметры, по которым может выполняться поиск.

Параметр | Описание
ID | Идентификатор пользователя. Соответствует полю ID в списке пользователей. Допустимо использование сложного поиска.
Дата изменения | Позволяет отобрать пользователей, параметры которых были изменены в течение интересующего вас периода.
Последняя авторизация | Позволяет осуществить поиск пользователей по дате последней авторизации.
Активен Определяется, какие пользователи будут участвовать в поиске:
  • активные;
  • неактивные;
  • все (активные и неактивные).
Логин | Поле позволяет осуществить отбор пользователей по логину. Допустимо использование сложного поиска.
E-Mail | Служит для отбора пользователей по адресу электронной почты. Допустимо использование сложного поиска.
Фамилия, имя, отчество | Служит для отбора пользователей по имени. Допустимо использование сложного поиска.
Поля профайла | Позволяет осуществлять поиск пользователей по другим полям профиля: телефон, номер ICQ и пр. Допустимо использование сложного поиска.
Группы | Список групп, пользователей из которых следует отобрать. Для выбора нескольких групп удерживайте клавишу Ctrl.

Для того чтобы отобрать пользователей по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех групп нажмите кнопку "Отменить".

Контекстная панель

Кнопка | Описание
Добавить пользователя | Переход к форме создания нового пользователя.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список пользователей

Поле | Описание
Колонка флажков | Поле предназначено для выбора пользователей, к которым предполагается применить какое-либо правило или действие.
Действие Действия над пользователями:
  • Изменить - переход к редактированию пользователя;
  • Добавить копию - создание копии пользователя;
  • Удалить - удаление пользователя.
Логин | Логин (имя входа) пользователя.
Активность | Признак активности пользователя. Блокировка администратора сайта невозможна.
Дата изменения | Дата последней модификации информации о пользователе.
Имя | Имя пользователя.
Фамилия | Фамилия пользователя.
E-mail | Адрес электронной почты пользователя.
Последняя авторизация | Дата последней авторизации пользователя
ID | Идентификатор пользователя.


Создание и редактирование пользователя

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Пользователь
  • Группы
  • Личные данные
  • Работа
  • Блог
  • Форум
  • Обучение
  • Заметки
  • Доп. свойства
    •
  • Кнопки управления
    •

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

    Контекстная панель

    Кнопка | Описание
Список пользователей | Переход на страницу со списком пользователей сайта.
Добавить | Переход на страницу с формой создания нового пользователя. Кнопка отображается при редактировании существующего пользователя.
Копировать | Копирование редактируемого пользователя.
Удалить | Удаление редактируемого пользователя.

    Форма редактирования

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

    Закладка Пользователь

    Данная форма служит для настройки общих параметров пользователя.

    Поле | Описание
Дата обновления | Информационное поле, содержащее дату и время последнего изменения параметров данного пользователя. Отображается в режиме редактирования пользователя.
Последняя авторизация | Дата и время последней авторизации (входа в систему) данного пользователя. Отображается в режиме редактирования пользователя.
Активен | Признак активности пользователя. Неактивные пользователи не могут входить в систему с использованием своих учетных данных.
Имя | Имя пользователя.
Фамилия | Фамилия пользователя.
Отчество | Отчество пользователя.
*E-Mail | Обязательное поле. Адрес электронной почты пользователя, на который отсылаются все уведомления с сайта.
*Логин (мин. 3 символа) | Обязательное поле. Логин пользователя, т.е. имя входа в систему.
Новый пароль (мин. 6 символов) | Поле, предназначенное для изменения текущего пароля пользователя. При изменении пароля требуется продублировать его в следующем поле.
Подтверждение нового пароля | Поле для подтверждения нового пароля пользователя. Содержимое этого поля должно в точности соответствовать содержимому предыдущего поля.
Тип авторизации | Данное поле отображается, если на сайте есть внешний источник авторизации (напр., форум). Это поле указывает точку проверки, посредством которой происходит авторизация пользователя.
Сайт по умолчанию для уведомлений | Сайт в системе, от имени и с использованием текстовых ресурсов которого будет производиться уведомление пользователя о каких-либо событиях.
Оповестить пользователя | Если флаг установлен, при нажатии кнопки "Сохранить" пользователю будет выслано сообщение об изменении его профайла.

    * - Поля, обязательные для заполнения.

    Закладка Группы

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

    Поле | Описание
    Группа пользователей | Название группы, к которой может быть выполнена привязка пользователя.
    Период активности Дата начала и конца периода, на который осуществляется привязка пользователя к группе. После окончания периода активности пользователь будет автоматически удален из данной группы.

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

    Например, вы хотите предоставить новому пользователю право на доступ к закрытому форуму сайта сроком на 1 месяц. Для этого:
    • осуществите привязку данного пользователя к соответствующей группе, установив флажок в поле с названием группы (например, Закрытый форум);
    • затем, установите Период активности, по истечении которого пользователь будет удален из группы. В поле "С" задается дата начала (например, 06.12.2008), а в поле "По" - дата окончания (например, 06.01.2008) периода активности.

    Закладка Личные данные

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

    Поле | Описание
Профессия | Личные данные пользователя.
WWW-страница
ICQ
Пол
Дата рождения (DD-MM-YYYY)
Фотография
Телефоны
Телефон | Контактная информация.
Факс
Мобильный
Пейджер
Почтовый адрес
Страна | Почтовый адрес.
Область/край
Город
Почтовый индекс
Улица, дом
Почтовый ящик
Дополнительные заметки | Произвольный комментарий.

    Закладка Работа

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

    Поле | Описание
Наименование компании | Информация о месте работы пользователя
WWW-страница
Департамент/Отдел
Должность
Направления деятельности
Логотип компании
Телефоны
Телефон | Контактная информация.
Факс
Пейджер
Почтовый адрес
Страна | Почтовый адрес места работы пользователя.
Область/край
Город
Почтовый индекс
Улица, дом
Почтовый ящик
Дополнительные заметки | Произвольный комментарий.

    Закладка Блог

    Профайл форума
    Разрешено писать Если флаг установлен, пользователь имеет право создавать сообщения (в т.ч. отвечать) в блогах.

    Примечание: правом на создание своего блога обладает пользователь, который:
    • не ведет блог на данном сайте;
    • пользователь входит в группу, обладающую правами на создание блогов.
    Псевдоним | Указывается псевдоним пользователя, он должен быть уникальным.
    Интересы | Интересы пользователя.
    Аватар | Картинка, отображаемая в блоге для пользователя. Максимально допустимый размер аватара указывается в настройках модуля Блоги.

    Закладка Форум

    В данной форме задаются параметры профайла пользователя для форума.

    Профайл форума
Разрешено писать | Если флаг установлен, пользователь имеет право создавать сообщения (в т.ч. отвечать) в форуме.
Показывать имя | Если флаг установлен, в форуме отображается имя пользователя.
Пояснение | Короткое (2-3 слова) пояснение, отображаемое в форуме.
Интересы | Интересы пользователя.
Подпись | Подпись пользователя для сообщений.
Аватар | Картинка, отображаемая в форуме для пользователя. Максимально допустимый размер аватара указывается в настройках модуля Форум.

    Закладка Обучение

    Поле | Описание
Разрешить публичный доступ к профайлу студента | При отмеченной опции все пользователи смогут просматривать информацию о данном пользователе.
Резюме | Резюме пользователя.
Transcript # | Автоматически приписываемый пользователю уникальный идентификатор. Используется для ссылки на страницу с резюме пользователя.

    Также на данной закладке присутствуют ссылки на Сертификаты и Журнал данного пользователя.

    Закладка Заметки

    Поле | Описание
Заметки администратора | Произвольный комментарий администратора.

    Закладка Дополнительные свойства

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

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров пользователя. Переход на страницу со списком пользователей.
Применить | Сохранение параметров пользователя. Продолжение редактирования.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Группы пользователей

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список групп пользователей
    •

    Управление группами пользователей осуществляется на странице Группы пользователей в административном разделе сайта: Настройки -> Пользователи -> Группы пользователей. Форма Группы пользователей предназначена для:

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

    Фильтр

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

    Параметр | Описание
    ID | Идентификатор группы пользователей. Соответствует полю ID списка групп. Допустимо использование сложного поиска.
    Изменен | Позволяет отобрать группы пользователей, параметры которых были изменены в течение интересующего вас периода.
    Активность Определяется, какие группы пользователей будут отображаться в результатах поиска:
    • активные;
    • неактивные;
    • все (активные и неактивные).
    Название | Название отбираемых групп пользователей. Допустимо использование сложного поиска.
    Описание | Позволяет осуществить отбор групп пользователей по их описанию. Допустимо использование сложного поиска.
    Пользователей | Служит для отбора групп пользователей по количеству пользователей, относящимся к данным группам. Задается в виде числового диапазона.

    Для того чтобы отобрать группы пользователей по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех групп нажмите кнопку "Отменить".

    Контекстная панель

    Пункт | Описание
Добавить группу | Переход к форме создания новой группы пользователей.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список групп пользователей

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора групп пользователей, к которым предполагается применить какое-либо правило или действие.
    Действие Действия над группой пользователей:
    • Изменить - переход к редактированию группы;
    • Добавить копию - создание копии группы пользователей;
    • Удалить - удаление группы пользователей.
    Примечание: Удаление групп Администратор и Everyone невозможно.
    ID | Идентификатор группы пользователей.
    Дата изменения | Дата последней модификации группы.
    Активность Признак активности группы. Если группа неактивна, все пользователи в составе группы полностью блокируются. Существуют две группы пользователей, блокировка которых невозможна: Администраторы и Everyone.
    • Группа Администраторы всегда активна и предназначена для пользователей, осуществляющих администрирование сайта.
    • Группа Everyone виртуально содержит всех не авторизовавшихся посетителей сайта.
    Сортировка | Относительный "вес" группы пользователей. Определяет порядок вывода групп в списке.
    Название | Осмысленное название группы пользователей.
    Пользователей | Количество пользователей в группе.


Создание и редактирование группы

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Параметры
  • Безопасность
  • Доступ
    •
  • Кнопки управления

    • Форма создания/редактирования группы пользователей предназначена для настройки параметров существующей или вновь создаваемой группы пользователей.

    Контекстная панель

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

    Форма редактирования

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

    Закладка Параметры

    На данной закладке выполняется настройка основных параметров группы пользователей.

    Поле | Описание
    Последнее обновление | Информационное поле, содержащее дату и время последнего изменения данной группы. Отображается в режиме редактирования группы пользователей.
    Пользователей | Количество пользователей в данной группе. Отображается в режиме редактирования группы пользователей.
    Активна | Признак активности группы. Если группа неактивна, все пользователи, относящиеся к данной группе, блокируются.
    Порядок сортировки | Относительный "вес" группы пользователей. Определяет положение группы в списке.
    *Наименование | Обязательный параметр. Укажите здесь произвольное и, в то же время, осмысленное имя группы. Например, Рекламодатели.
    Описание | Произвольное описание группы.
    Пользователи в группе
    Данная форма служит для привязки уже зарегистрированных пользователей к текущей группе, а также для определения периода, на который пользователь привязывается к группе.
    Поле | Описание
Пользователь | ID, логин и имя пользователя, привязываемого к текущей группе. ID пользователя представлен в виде ссылки для перехода к форме редактирования параметров пользователя.
Период активности | Дата начала и конца периода, на который осуществляется привязка пользователя к текущей группе. После окончания периода активности пользователь будет автоматически удален из данной группы. Если пользователь привязывается к группе на неограниченный срок, то в этом поле указывается только дата начала периода активности.

    * - Поля, обязательные для заполнения.

    Закладка Безопасность

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

    Поле | Описание
    Предопределённые настройки уровня безопасности Механизм управление уровнем безопасности позволяет защитить сайт от XSS/CSS атак. В данном поле можно выбрать один из предусмотренных в системе уровней безопасности. Необходимые значения параметров безопасности будут автоматически подставлены в соответствующие поля. Доступны следующие предопределённые уровни безопасности:
    • Не переопределять. При выборе данного уровня ко всем группам пользователей будут применены предустановленные параметры безопасности:
      • для администраторов сайта будет применен повышенный уровень безопасности;
      • для остальных групп настройка уровня безопасности должна быть выполнена администратором сайта.

      Для того чтобы выполнить выборочное изменение значений параметров, снимите флаг "Не переопределять" рядом с нужными полями.

    • Низкий;
    • Обычный;
    • Повышенный.
    Для пользователей, принадлежащих к нескольким группам, по каждому из пунктов политики безопасности будет действовать самое строгое правило из настроенных для этих групп.
    Время жизни сессии (минут) | Длительность сессии в минутах. Применяется для исключения неправильной настройки времени жизни сессии в файле php.ini на хостинге.
    Маска сети для привязки сессии | Включение данной защиты делает бесполезным перехват файла cookies с информацией о сессии. Данный тип защиты является важнейшим при защите от XSS/CSS атак.
    Максимальное количество компьютеров, на которых может быть одновременно запомнена авторизация | Количество компьютеров, на которых разрешено одновременное запоминание авторизации пользователя. Для администраторов системы рекомендованное значение поля равно 1.
    Маска сети для привязки сохраненной авторизации | Предотвращает возможность использования файла хэша, похищенного с компьютера пользователя, с целью проникновения на сайт. Рекомендуется использовать с другими правилами по времени и числу авторизаций.
    Срок хранения авторизации, запомненной на компьютере пользователя (минут) | Длительность запоминания авторизации пользователя в минутах.
    Срок действия контрольного слова для восстановления пароля (минут) | Данное правило определяет время хранения контрольного слова для восстановления пароля и позволяет минимизировать риски взлома сайта через механизм восстановления при перехвате писем.

    Закладка Доступ

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

    Поле | Описание
Модуль | Модуль системы.
Уровень прав доступа | Поле для установки прав группы пользователей на доступ к модулю. При выборе уровня доступа по умолчанию, данной группе пользователей присваивается стандартный уровень доступа, устанавливаемый в настройках главного модуля. Изменение доступа по умолчанию в настройках главного модуля приведет к автоматическому изменению прав доступа группы к модулям, для которых выбран уровень доступа по умолчанию.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров группы пользователей. Переход на страницу со списком групп.
Применить | Сохранение параметров группы пользователей. Продолжение редактирования.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Уровни доступа

В этом разделе

  • Фильтр
  • Контекстная панель
  • Список уровней доступа
    •

    Управление уровнями доступа осуществляется на странице Уровни доступа в административном разделе сайта: Настройки -> Пользователи -> Уровни доступа. На данной странице представлен список всех имеющихся уровней доступа: системных и созданных вами. Системные уровни доступа доступны только для просмотра, отредактировать и удалить их невозможно.

    Фильтр

    Форма фильтра используется для выбора из списка уровней доступа в соответствии с указанными условиями. Нижеследующая таблица описывает параметры, по которым может выполняться поиск.

    Параметр | Описание
ID | Идентификатор уровня доступа.
Буква | Буква уровня доступа.
Модуль | Данное поле позволяет отобразить уровни доступа только к Главному модулю либо только к модулю Управление структурой, либо все уровни доступа.
Признак системности | Данное поле позволяет отобразить только системные уровни доступа либо только несистемные (созданные вами), либо все уровни доступа.
Привязка | Позволяет осуществить отбор уровней доступа, привязанных к модулю, либо к папкам и файлам, либо все уровни доступа.

    Для того чтобы отобрать уровни доступа по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех уровней нажмите кнопку "Отменить".

    Контекстная панель

    Пункт | Описание
Добавить уровень доступа | Переход к форме создания нового уровня доступа.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список уровней доступа

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора уровней доступа, к которым предполагается применить какое-либо правило или действие.
    Действие Действия над уровнями:
    • Посмотреть - переход к просмотру параметров уровня доступа. Данный пункт меню отображается только для системных уровней доступа. Просмотр системного уровня осуществляется на странице редактирования уровня;
    • Изменить - переход к редактированию уровня доступа. Данный пункт меню отображается только для несистемных уровней доступа;
    • Добавить копию - создание копии уровня доступа;
    • Удалить - удаление уровня доступа. Данный пункт меню отображается только для несистемных уровней доступа.
    ID | Идентификатор уровня доступа.
    Название | Название уровня доступа.
    Буква | Буква уровня доступа.
    Описание | Произвольное описание уровня.
    Модуль | Модуль, к которому относится данный уровень: Главный модуль (main) или Управление структурой (fileman).
    Признак системности | Уровень доступа является системным или созданным пользователем.
    Привязка | Указывается к чему привязан уровень: к модулю или файлам и папкам.


Создание и редактирование уровня доступа

В этом разделе

  • Контекстная панель
  • Закладка "Параметры"
  • Закладка "Включаемые операции"
    •
  • Кнопки управления

    • Форма создания/редактирования уровня доступа предназначена для настройки параметров существующего или вновь создаваемого уровня доступа. Также данная форма используется для просмотра параметров системных уровней доступа.

    Контекстная панель

    Кнопка | Описание
Список уровней доступа | Переход на страницу со списком уровней доступа.
Добавить | Переход на страницу с формой создания нового уровня доступа. Кнопка отображается при редактировании существующего уровня.
Копировать | Копирование редактируемого уровня.
Удалить | Удаление редактируемого уровня доступа.

    Закладка "Параметры"

    На данной закладке выполняется настройка основных параметров уровня доступа.

    Поле | Описание
*Название | Осмысленное название уровня доступа.
*Модуль | Указывается модуль, к которому относится уровень доступа.
Системный | Отметка о том, что уровень является системным или нет.
Привязка | Выберите привязку уровня к файлам и папкам или же ко всему модулю.
Буква | Буква уровня доступа.
Описание | Произвольное описание уровня.

    * - Поля, обязательные для заполнения.

    Закладка "Включаемые операции"

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

    Поле | Описание
[Название операции] | Для возможности выполнения данной операции при этом уровне доступа необходимо, чтобы она была отмечена флагом.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров уровня доступа. Переход на страницу со списком уровней.
Применить | Сохранение параметров уровня доступа. Продолжение редактирования.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Настраиваемая регистрация

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Настраиваемая регистрация"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:main.register",
"",
Array(
    "USER_PROPERTY_NAME" => "",
    "SEF_MODE" => "Y",
    "SHOW_FIELDS" => Array("NAME","LAST_NAME"),
    "REQUIRED_FIELDS" => Array("LAST_NAME"),
    "AUTH" => "Y",
    "USE_BACKURL" => "Y",
    "SUCCESS_PAGE" => "register_ok.php",
    "SET_TITLE" => "Y",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "3600",
    "SEF_FOLDER" => "/register/",
    "VARIABLE_ALIASES" => Array(
    )
)
);?>

Описание параметров

Дополнительно
USER_PROPERTY_NAME
Имя пользовательского свойства.
Основные параметры
SHOW_FIELDS
Поля, которые показывать в форме. В данном поле можно выбрать поля, которые будут выведены в дополнение к стандартному набору в форме регистрации. Стандартными полями, обязательными для заполнения являются:
  • Логин;
  • Пароль;
  • Подтверждение пароля;
  • Адрес e-mail.
В списке для выбора перечислены поля из формы редактирования параметров пользователя: имя, фамилия, отчество, профессия и другие личные данные.
REQUIRED_FIELDS
Поля, обязательные для заполнения. В этом поле перечислены те же параметры, что и в предыдущем пункте. Выбранные здесь поля будут обязательными для заполнения в форме.
Управление адресами страниц
CHECK_DATES
[Y|N] Включить поддержку ЧПУ. При отмеченном флаге становятся доступными поля настройки адресов:
SEF_FOLDER
Каталог ЧПУ (относительно корня сайта).
Дополнительные настройки
AUTH
[Y|N] Автоматически авторизовать пользователей. При установленной опции после регистрации пользователь будет автоматически авторизован на сайте. В противном случае после регистрации пользователю будет предоставлена к заполнению форма авторизации.
USE_BACKURL
[Y|N] Отправлять пользователя по обратной ссылке, если она есть. При наличии в адресной строке параметра backurl пользователь будет перенаправлен по указанной в этом параметре ссылке после заполнения формы регистрации.
SUCCESS_PAGE
Страница окончания регистрации. В данном поле есть возможность указать ссылку на любую страницу на сайте, которая будет финальной страницей процедуры регистрации, и пользователь будет туда перенаправлен в случае успешной регистрации. Если пользователь зарегистрирован и авторизован, то при переходе на страницу регистрации он попадет на страницу окончания регистрации.
Примечание: один из параметров (обратную ссылку или страницу окончанию регистрации) лучше заполнить. Если отмечены оба параметра, то пользователь будет переведен по обратной ссылке.
SET_TITLE
Устанавливать заголовок страницы. При отмеченной опции в качестве заголовка страницы будет установлено Регистрация нового пользователя.
USER_PROPERTY
Показывать дополнительные свойства. Если заданы пользовательские свойства, то в данном поле их можно указать.


Параметры пользователя

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Параметры пользователя"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:main.profile",
".default",
Array(
    "USER_PROPERTY_NAME" => "доп. свойства",
    "SET_TITLE" => "Y",
    "USER_PROPERTY" => array(0=>"UF_USER",)
)
);?>

Описание параметров

Дополнительно
USER_PROPERTY_NAME
Название закладки с доп. свойствами. Укажите название закладки в публичной части, в составе которого будут выведены пользовательские свойства.
Дополнительные настройки
SET_TITLE
[Y|N] Устанавливать заголовок страницы. При установленной опции заголовком страницы будет Профиль пользователя.
USER_PROPERTY
Показывать дополнительные свойства. Если заданы пользовательские свойства, то в данном поле их можно указать.


Форма авторизации

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма авторизации"

Данный компонент служит для вывода формы авторизации. Используется обычно в шаблоне дизайна сайта. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:system.auth.form","",Array(
     "REGISTER_URL" => "register.php",
     "PROFILE_URL" => "profile.php"
     )
);?>

Описание параметров

Дополнительно
REGISTER_URL
Адрес страницы регистрации пользователей.
PROFILE_URL
Адрес страницы профиля пользователя.


Поиск

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

При формировании поискового запроса возможно использование языка запросов.

Язык запросов

Обычно запрос представляет из себя просто одно или несколько слов, например:

свежая рыба треска

По такому запросу находится информация, в которой встречаются все слова запроса.

Логические операторы позволяют строить более сложные запросы, например:

свежая рыба или пылесос

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

свежая рыба не скумбрия

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

Логические операторы

Оператор | Синонимы | Описание
И | And, &, + | Оператор логическое "и". Подразумевается, его можно опускать: запрос свежая рыба полностью эквивалентен запросу свежая и рыба.
Или | Or, | | Оператор логическое "или" позволяет искать товары, содержащие хотя бы один из операндов.
Не | Not, ~ | Оператор логическое "не" ограничивает поиск товарами, не содержащими слово, указанное после оператора.
( ) |  | Круглые скобки задают порядок действия логических операторов. При формировании строки запроса убедитесь, что для каждой открывающейся скобки есть парная закрывающаяся.
" " |  | Поиск точной фразы. Обычно используется для поиска цитат.


Переиндексация сайта

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

Форма Переиндексация сайта доступна на странице Настройки -> Поиск -> Переиндексация. Данная форма позволяет пересоздать поисковый индекс, задав требуемые параметры и ограничения.

Форма ручной переиндексации сайта - вкладка "Переиндексация"

Поле | Описание
Переиндексировать только измененные | Если эта опция включена, при создании индекса будет обновляться/добавляться информация о модифицированных/созданных с момента последней индексации документах и страницах. Если вы хотите переиндексировать сайт полностью, отключите эту опцию.
Шаг | Интервал между шагами индексации, в секундах. Если поле оставлено пустым или указано значение "0", то индексация будет совершена за один шаг.
Сайт | Сайт, документы которого требуется переиндексировать.
Модуль | Список позволяет выбрать, какую информацию следует переиндексировать: всю, только статические файлы, данные информационных блоков или форумы.

Для того чтобы начать переиндексацию, нажмите кнопку Переиндексировать. Для остановки переиндексации - кнопку Остановить, а для продолжения Продолжить.


Создание Google Sitemap

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

Форма Создание Google Sitemap доступна на странице Настройки -> Поиск -> Google Sitemap

Форма "Создание Google Sitemap" - вкладка "Google Sitemap"

Поле | Описание
Сайт | Сайт, для которого требуется создать sitemap.
Шаг | Продолжительность каждого шага создания sitemap, указанная в секундах.
Максимальное количество документов для обработки на одном шаге | Укажите максимальное количество документов, которое будет обрабатываться на одном шаге.

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

Внимание!
При создании файлов Google Sitemap все файлы вида sitemap_*.xml, расположенные в корневой папке выбранного сайта, будут перезаписаны.

После создания карты сайта будет отображена страница, содержащая адрес sitemap для передачи Google, а также краткие инструкции.


Правила сортировки результатов

В этом разделе

  • О правилах сортировки результатов поиска
  • Управление правилами сортировки
  • Фильтр
  • Список правил
    •
  • Обновление поискового индекса

    • О правилах сортировки результатов поиска

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

    Вместе с тем очень часто требуется при выводе результатов поиска отдать предпочтение документам той или иной тематики. Например, может потребоваться "поднять" в результатах поиска товары, которые требуют скорейшего сбыта. Для достижения подобных целей служит специальный механизм, при помощи которого можно задать требуемый вес (ранг, page, rank) желаемым страницам. При отображении результатов поиска, страницы, соответствующие заданным правилам сортировки, будут отображены в самом начале списка, в соответствии с весами, указанными в правилах.

    Фиксированный вес может быть присвоен:

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

    Форма Список правил сортировки отображает все существующие правила сортировки, позволяет добавить новые правила, а также пересоздать существующий поисковый индекс. Перегенерация индекса требуется, если вы добавили, удалили или изменили какое-либо правило сортировки. Таким образом, назначение или изменение правил сортировки делится на два этапа:

    • первый этап: управление правилами сортировки - создание, правка или удаление правил;
    • второй этап: обновление поискового индекса для вступления новых правил в силу.

    Шаг1. Управление правилами сортировки

    Фильтр

    Фильтр используется для задания параметров отбора правил сортировки, отображаемых в списке. Нижеследующая таблица описывает поля фильтра.

    Поле | Описание
    ID | Системный идентификатор правила. Это поле обычно представляет интерес для разработчиков.
    Сайт | Сайт, на котором действует искомое правило.
    Модуль | Модуль, к элементам которого применимо искомое правило.
    Параметр 1 Параметр искомого правила. В зависимости от выбранного модуля, параметр может определять:
    • имя файла;
    • тип информационного блока;
    • форум.

    Для того чтобы отобразить только требуемые правила, нажмите кнопку Найти. Для отображения всех сообщений нажмите кнопку Отменить.

    Контекстная панель

    Кнопка | Описание
Добавить | Служит для добавления нового правила.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

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

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

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора правил, к которым предполагается применить какое-либо правило или действие.
    Меню
    действий     		При нажатии на кнопку действий конкретного правила, отображает меню, позволяющее Изменить или Удалить правило.
    ID | Системный идентификатор правила.
    Сайт | Сайт, на котором действует данное правило.
    Модуль | Модуль, к элементам которого применимо данное правило.
    Параметр 1 Первый параметр правила. В зависимости от выбранного модуля, параметр может определять:
    • для статических файлов - не используется;
    • для модуля Информационных блоков - тип информационного блока;
    • для модуля Форумов - форум.
    Параметр 2 Второй параметр правила. Может определять:
    • для статических файлов - не используется;
    • для модуля Информационных блоков - информационный блок;
    • для модуля Форумов - тему форума.
    Параметр 3 Третий параметр правила. Может определять:
    • для статических файлов - имя файла;
    • для модуля Информационных блоков - элемент информационного блока;
    • для модуля Форумов - текст в сообщении темы форума.
    Вес | Вес (индекс сортировки) правила. Документы, соответствующие критериям правила, будут расположены в списке результатов поиска с соответствии с индексом сортировки. Чем меньше значение веса, тем выше в списке будет отображен документ.

    Шаг2. Обновление поискового индекса

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


Добавление правила сортировки результатов

В этом разделе

  • Контекстное меню
  • Свойства правила
  • Кнопки управления

    • Эта форма предназначена для создания нового или изменения существующего правила сортировки результатов поиска.

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

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

    "модуль Информационные блоки :: тип блока Каталог :: блок Телефоны Nokia :: сорт. 1"

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

    Контекстное меню

    Ссылка | Описание
Список | Ссылка на страницу со списком правил сортировки.
Добавить | Ссылка на страницу создания нового правила. Отображается только при редактировании существующего правила.
Удалить | Удаляет текущее правило. Отображается только при редактировании существующего правила.

    Свойства правила - вкладка "Правило"

    Поле | Описание
    Сайт | Выберите сайт, в пределах которого должно действовать данное правило. Правило не будет применяться к результатам поиска на других сайтах.
    Модуль Модуль, к элементам которого применимо данное правило. Система позволяет определять правила, которые будут применяться к:
    • статическим файлам сайта. Область действия правила ограничивается обязательно указываемым в параметре 3 полным путём к требуемому файлу;
    • информационным блокам. Область действия правила может быть ограничена: определённым типом блоков, определённым информационным блоком, а также элементом блока. Можно создать правило без ограничений по типам или элементам информационных блоков. В таком случае правило сортировки будет распространятся на все типы и элементы всех информационных блоков.
    • форумам. Область действия правила может быть ограничена: форумом, определённой темой форума, а также сообщением. Правило сортировки будет распространятся на все сообщения всех форумов, если не указаны ни один из трех параметров правила (форум, тема, сообщение) .
    Параметр 1 Первый параметр правила. В зависимости от выбранного модуля, параметр может определять:
    • для статических файлов - не используется;
    • для модуля Информационных блоков - тип информационного блока, к которому применимо правило;
    • для модуля Форумов - форум, к которому применимо правило.
    Параметр 2 Второй параметр правила. Может определять:
    • для статических файлов - не используется;
    • для модуля Информационных блоков - информационный блок, к которому применимо правило;
    • для модуля Форумов - тему форума, к которому применимо правило.
    Параметр 3 Третий параметр правила. Может определять:
    • для статических файлов - имя файла;
    • для модуля Информационных блоков - элемент информационного блока;
    • для модуля Форумов - текст в сообщении темы форума.
    Вес | Вес (индекс сортировки) правила. Документы, соответствующие критериям правила, будут расположены в списке результатов поиска с соответствии с индексом сортировки. Чем меньше значение веса, тем выше в списке будет отображен документ.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохраняет изменения и открывает список правил.
Применить | Применение внесённых изменений. Редактирования продолжается.
Отменить | Отмена внесённых изменений. Переход к списку правил.


Настройки

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Поиск: настройки модуля

Работа модуля поиска настраивается на странице Настройки -> Настройки продукта -> Настройки модулей -> Поиск. Здесь же возможно осуществить ручную переиндексацию сайта.

Контекстная панель

Кнопка | Описание
Переиндексация сайта | Открывает форму, позволяющую пересоздать поисковый индекс.
Google sitemap | Открывает форму для создания карты сайта для передачи Google.

Вкладка "Настройки"

Максимальный размер индексируемого документа в килобайтах
Проиндексированы будут только те документы, размер которых не превышает указанное число.
Маска включения
Файлы, которые соответствуют хотя бы одной из масок включения, будут проиндексированы поиском. Файлы, имена которых не соответствуют ни одной из указанных масок, поиском не индексируются.
Маска исключения
Файлы, которые соответствуют хотя бы одной из масок исключения, не будут проиндексированы поиском.
Использовать морфологию
Активирует функцию морфологического поиска. Если эта опция активна, при создании индекса (и, соответственно, при поиске) будут учтены все формы индексируемых слов. Например, при индексации слова телефон, база данных индекса будет учитывать различие в падежных окончаниях (телефона, телефону и т.д.), а также его множественное число (телефоны, телефонов, телефонам и т.д.). Соответственно, при поиске по запросу телефон будут найдены страницы, содержащие не только слово телефон, но и слова телефона, телефону, телефоны, телефонов, телефонам и т.д.
Символы, по которым не производится разделение документа на слова (при морфологическом анализе)
Алгоритм морфологического анализа разбивает предложения на слова, используя стандартные символы-разделители (пробел, точка, запятая и т.п.). В то же время, существуют символы, которые, не будучи буквами, все же являются частями слов (например, дефис в слове: ликеро-водочный). Укажите здесь символы, которые морфологический анализатор должен рассматривать как части слов.
Максимальное количество документов в результатах поиска
Количество документов для показа из всего результата поиска.
Код свойства страницы, в котором хранятся теги
Указывается код свойства страницы, в котором будут храниться теги.


Облако тегов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Облако тегов"

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

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:search.tags.cloud",
"",
Array(
    "FONT_MAX" => "50",
    "FONT_MIN" => "10",
    "COLOR_NEW" => "3E74E6",
    "COLOR_OLD" => "C0C0C0",
    "PERIOD_NEW_TAGS" => "",
    "SHOW_CHAIN" => "Y",
    "COLOR_TYPE" => "Y",
    "WIDTH" => "100%",
    "SORT" => "NAME",
    "PAGE_ELEMENTS" => "150",
    "PERIOD" => "",
    "URL_SEARCH" => "/search/index.php",
    "TAGS_INHERIT" => "Y",
    "CHECK_DATES" => "N",
    "arrFILTER" => "all",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "3600"
    )
);?>

Описание параметров

Дополнительно
FONT_MAX
Максимальный размер шрифта в пикселах (px). Устанавливается максимальный размер шрифта написания тегов.
FONT_MIN
Минимальный размер шрифта в пикселах (px). Устанавливается минимальный размер шрифта написания тегов.
COLOR_NEW
Цвет более позднего тега (пример: "C0C0C0"). Указывается код цвета тех тегов, дата создания которых наиболее поздняя.
COLOR_OLD
Цвет более раннего тега (пример: "FEFEFE"). Указывается код цвета тех тегов, дата создания которых наиболее ранняя.
PERIOD_NEW_TAGS
Период, в течение которого считать тег новым (дней).
SHOW_CHAIN
[Y|N] Показывать цепочку навигации. При установленной опции будет показана цепочка навигации. Опция работает при установленной опции TAGS_INHERIT.
COLOR_TYPE
[Y|N] Плавное изменение цвета. При отмеченной опции переход между цветами COLOR_NEW и COLOR_OLD будет плавным.
WIDTH
Ширина облака тегов (пример: "100%" или "100px", "100pt", "100in"). Указанная в данном поле величина определяет ширину области облака тегов.
Основные параметры
SORT
Сортировка тегов. Доступны два варианта значений: по имени (NAME), по популярности (CNT).
PAGE_ELEMENTS
Количество тегов. Параметр ограничивает количество выводимых тегов.
PERIOD
Период выборки тегов (дней).
URL_SEARCH
Путь к странице поиска (от корня сайта). По умолчанию задан путь /search/index.php. Страница поиска может быть создана с помощью компонента Стандартная страница поиска.
TAGS_INHERIT
[Y|N] Сужать область поиска.
Источник данных
CHECK_DATES
[Y|N] Искать только в активных по дате документах. При отмеченной опции поиск будет осуществляться только в активных по дате документах.
arrFILTER
Ограничение области поиска. С помощью данного поля можно ограничить область поиска статическими файлами (main), либо форумами(forum), либо одним из типов инфоблоков, определенных в системе, либо блогами. Можно также выбрать несколько из перечисленных источников информации либо выбрать пункт Не ограничивать.
Если выбрать:
  1. [main]Cтатические файлы, то появляется для заполнения поле Путь к файлу начинается с любого из перечисленных, в котором можно указать путь к разделу или файлу, где будет осуществлен поиск, например, /about/. Если поле пусто, то поиск осуществляется во всех статических файлах системы.
  2. [forum]Форумы. Ниже отображается поле со всеми форумами, созданными на сайте. Среди них можно выбрать один или несколько форумов либо выбрать вариант (все), тогда поиск будет осуществлен во всех форумах системы.
  3. один из типов инфоблоков (например, [iblock_news] Новости). При нажатии ОК станут доступны все инфоблоки, созданные внутри выбранного типа. Среди них можно выбрать один или несколько инфоблоков либо выбрать вариант (все), тогда поиск будет осуществлен во всех инфоблоках этого типа.
  4. [blog]Блоги. При данном ограничении поиск будет осуществлен только в рамках блогов.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах. По умолчанию поле содержит 3600 сек.


Облако тегов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Стандартная страница поиска"

Компонент служит для создания страницы поиска. Этот компонент можно использовать как самостоятельно для создания страницы поиска, так и в сочетании с компонентом Форма поиска. Вне зависимости от настроек поиск в системе осуществляется в соответствии с правами пользователя.

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:search.page",
"tags",
Array(
    "RESTART" => "N",
    "CHECK_DATES" => "N",
    "arrWHERE" => array(0=>"forum",1=>"iblock_news",2=>"iblock_articles",3=>"iblock_books",4=>"blog",),
    "arrFILTER" => array(0=>"no",),
    "SHOW_WHERE" => "Y",
    "PAGE_RESULT_COUNT" => "10",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "3600"
    )
);?>

Описание параметров

Источник данных
RESTART
[Y|N] Искать без учета морфологии (при отсутствии результата поиска).
CHECK_DATES
Искать только в активных по дате документах. Если опция установлена, то поиск будет осуществляться только в документах, активных по дате.
arrWHERE
Значения для выпадающего списка "Где искать". В данном поле можно выбрать разделы из модулей форум, информационные блоки, блоги.
COLOR_OLD
Ограничение области поиска. С помощью данного поля можно ограничить область поиска статическими файлами (main), либо форумами(forum), либо одним из типов инфоблоков, определенных в системе, либо блогами. Можно также выбрать несколько из перечисленных источников информации либо выбрать пункт Не ограничивать.
Если выбрать:
  1. [main]Cтатические файлы, то появляется для заполнения поле Путь к файлу начинается с любого из перечисленных, в котором можно указать путь к разделу или файлу, где будет осуществлен поиск, например, /about/. Если поле пусто, то поиск осуществляется во всех статических файлах системы.
  2. [forum]Форумы. Ниже отображается поле со всеми форумами, созданными на сайте. Среди них можно выбрать один или несколько форумов либо выбрать вариант (все), тогда поиск будет осуществлен во всех форумах системы.
  3. один из типов инфоблоков (например, [iblock_news] Новости). При нажатии ОК станут доступны все инфоблоки, созданные внутри выбранного типа. Среди них можно выбрать один или несколько инфоблоков либо выбрать вариант (все), тогда поиск будет осуществлен во всех инфоблоках этого типа.
  4. [blog]Блоги. При данном ограничении поиск будет осуществлен только в рамках блогов.
Внешний вид
SHOW_WHERE
[Y|N] Показывать выпадающий список "Где искать". Если опция установлена, то в публичном разделе будет выведен выпадающий список с вариантами ограничения поиска, указанными в поле Значения для выпадающего списка "Где искать".
PAGE_RESULT_COUNT
Количество результатов на странице. Число, указанное в данном поле определяет количество результатов поиска, которое будет выведено на одной странице, остальные ссылки будут выведены с помощью постраничной навигации.
Настройки кеширования
CACHE_TYPE
Тип кеширования. Доступны следующие значения:
  • А - Авто
    Автоматическое кеширование. Действует при включенном автокешировании на странице Настройки кеширования (Настройки -> Настройки продукта -> Автокеширование) и при установленном времени кеширования в поле CACHE_TIME (сек.).
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть установлено. Настройки автокеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит, независимо от настроек автокеширования (Настройки -> Настройки продукта -> Автокеширование)
CACHE_TIME
Время кеширования в секундах. По умолчанию поле содержит 3600 сек.


Облако тегов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма ввода тегов"

Компонент предназначен для вывода формы ввода тегов.

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:search.tags.input",
"",
Array(
    "PAGE_ELEMENTS" => "10",
    "SORT_BY_CNT" => "Y",
    "TEXT" => "",
    "TMPL_IFRAME" => "Y",
    "NAME" => "TAG",
    "VALUE" => "тег",
    "arrFILTER" => "iblock_news",
    "arrFILTER_iblock_news" => "all"
    )
);?>

Описание параметров

Дополнительно
PAGE_ELEMENTS
Количество записей в выпадающем списке.
SORT_BY_CNT
[Y|N] Сортировать по популярности.
TEXT
Дополнительные свойства. Код дополнительного свойства.
TMPL_IFRAME
[Y|N] Вставлять фрейм в шаблон компонента.
Основные параметры
NAME
Имя поля ввода. По умолчанию поле содержит TAG.
PERIOD
Содержимое поля ввода. Указывается значение по умолчанию.
URL_SEARCH
Ограничение области поиска. С помощью данного поля можно ограничить область поиска статическими файлами (main), либо форумами(forum), либо одним из типов инфоблоков, определенных в системе, либо блогами. Можно также выбрать несколько из перечисленных источников информации либо выбрать пункт Не ограничивать.
Если выбрать:
  1. [main]Cтатические файлы, то появляется для заполнения поле Путь к файлу начинается с любого из перечисленных, в котором можно указать путь к разделу или файлу, где будет осуществлен поиск, например, /about/. Если поле пусто, то поиск осуществляется во всех статических файлах системы.
  2. [forum]Форумы. Ниже отображается поле со всеми форумами, созданными на сайте. Среди них можно выбрать один или несколько форумов либо выбрать вариант (все), тогда поиск будет осуществлен во всех форумах системы.
  3. один из типов инфоблоков (например, [iblock_news] Новости). При нажатии ОК станут доступны все инфоблоки, созданные внутри выбранного типа. Среди них можно выбрать один или несколько инфоблоков либо выбрать вариант (все), тогда поиск будет осуществлен во всех инфоблоках этого типа.
  4. [blog]Блоги. При данном ограничении поиск будет осуществлен только в рамках блогов.


Облако тегов

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Форма поиска"

Компонент служит для вывода формы поиска. В поставляемом продукте форма поиска подключается в шаблоне дизайна и отображается на всех страницах сайта. В строке ввода формы Поиск по сайту вводится поисковая фраза или слово и после нажатия кнопки Поиск пользователь перенаправляется на страницу Поиска (созданную с помощью компонента Стандартная страница поиска bitrix:search.page).

Пример вызова

<?$APPLICATION->IncludeComponent(
"bitrix:search.form",
".default",
Array(
    "PAGE" => "/search/"
)
);?>

Описание параметров

Шаблоны ссылок
PAGE
Страница выдачи результатов поиска (доступен макрос #SITE_DIR#). В этом параметре необходимо указать путь к странице поиска.


Модуль валют

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

Модуль валюты позволяет управлять валютами и их курсами. Модуль валют необходим для работы модулей торгового каталога и интернет-магазина.

Система позволяет гибко управлять валютами цены. Список валют определяется администратором сайта. Для каждой валюты могут быть установлены номиналы, курсы (с возможностью загрузки с сайта Центрального Банка РФ), формат вывода для каждого сайта.


Валюты

В этом разделе

  • Контекстная панель
  • Список валют

    • Форма Валюты (Настройки -> Валюты -> Список валют) служит для управления валютами системы. Валюты в системе используются для работы интернет-магазина.

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

    Контекстная панель

    Кнопка | Описание
Курсы валют | Переход к форме настройки курсов валют.
Добавить валюту | Переход к форме создания новой валюты.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

    Список валют

    Поле | Описание
    Колонка флажков | Поле предназначено для выбора валют, к которым предполагается применить какое-либо правило или действие.
    Действия Доступные действия над валютой:
    • Изменить- редактирование валюты;
    • Удалить- удаление валюты.
    Сорт. | Относительный "вес", влияющий на положение валюты в общем списке.
    Валюта | Трехбуквенное обозначение валюты (например, RUB, EUR, USD).
    Название | Полное название валюты.
    Номинал | Номинал, или количество валюты, для которого устанавливается обменный курс. Обычно равен номиналу, устанавливаемому ЦБ РФ. Для большинства валют номинал будет равен 1 (например, 30.5 RUB за 1 USD). У некоторых валют он будет отличен от 1 (например, 14.25 RUB за 1000 BYR).
    Курс по умолчанию | Курс валюты, который будет использоваться при конвертации валют, если в форме "Курсы валют" другие курсы не заданы.


Создание и редактирование валюты

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

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

    Контекстная панель

    Кнопка | Описание
Список | Переход на страницу со списком валют.
Создать | Переход к форме создания новой валюты. Кнопка отображается при редактировании существующей валюты.
Удалить | Удаление редактируемой валюты.

    Форма редактирования

    Поле | Описание
*Валюта | Трехбуквенное обозначение валюты (например, RUB, EUR, USD).
Номинал | Номинал, или количество валюты, для которого устанавливается обменный курс. Обычно равен номиналу, устанавливаемому ЦБ РФ. Для большинства валют номинал будет равен 1 (например, 30.5 RUB за 1 USD). У некоторых валют он будет отличен от 1 (например, 14.25 RUB за 1000 BYR).
*Курс по умолч. | Курс валюты, который будет использоваться при конвертации валюты, если в форме "Курсы валют" для данной валюты не задан другой курс. Для базовой валюты курс должен быть равен 1. Для остальных валют курс устанавливается относительно базовой валюты. Другими словами, при добавлении валюты поставьте напротив этой валюты сумму, которую дают за нее в базовой валюте. Например, установите курс для RUB в 1, тогда курс для USD может быть равен 30.5, а для EUR - 34.2. Подробнее о курсах валют смотрите раздел помощи Курсы валют.
Индекс сортировки | Относительный "вес", влияющий на положение валюты в общем списке.
Настройки валют для языков (English, Russian и т.д.)
Название | Полное название валюты для данного языка.
Шаблон формата | Шаблон, по которому суммы в данной валюте будут выводиться на экран. При выборе шаблона вывода в нижеследующие поля будут подставлены значения по умолчанию. При необходимости вы можете изменить значения этих полей.
*Строка формата для вывода валюты | Формат для вывода суммы в данной валюте на экран. Все символы строки формата выводятся как есть, за исключением символа "#". Символ "#" заменяется при выводе на реальную сумму (например, строка формата # руб за 1 шт. может быть выведена как 18 586,95 руб за 1 шт.). Формат вывода суммы зависит от описанных ниже полей.
Десятичная точка при выводе | Символ-разделитель целой и дробной части числа.
Разделитель тысяч при выводе | Символ-разделитель тысяч целой части числа. Для разработчиков. Обратите внимание, что для обозначения символа-разделителя можно использовать шестнадцатеричное значение, например, xA0.
Количество десятичных знаков | Количество знаков в дробной части числа (например, количество копеек для RUB).

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком валют.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров валюты.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Курсы валют

В этом разделе

Форма поиска
Контекстная панель
Список курсов валют

Форма Курсы валют (Настройки -> Валюты -> Курсы валют) служит для управления курсами валют. С помощью этой формы вы легко можете поддерживать список курсов валют на все интересующие вас даты. То есть, вы можете вести своего рода дневник курсов валют. Эта информация может пригодиться вам в дальнейшем, например, при обзоре заказов, сделанных в магазине за определённый период.

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

Форма поиска

Поля формы служат для задания параметров поиска интересующих вас курсов валют.

Поле | Описание
Валюта | Определяет, выводить ли все курсы валют в списке или только курсы выбранной валюты.
Дата | Диапазон дат, курсы на которые следует показать. Вы можете выбрать либо количество дней от текущей даты, либо установить диапазон дат с помощью календарей.

Для того чтобы отобрать курсы валют по заданным критериям поиска, нажмите кнопку "Найти". Для отображения всех курсов нажмите кнопку "Отменить".

Контекстная панель

Кнопка | Описание
Создать курс валют | Переход к форме создания нового курса валюты.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список курсов валют

Поле | Описание
Колонка флажков | Поле предназначено для выбора курсов валют, к которым предполагается применить какое-либо правило или действие.
Действия Действия над курсом валюты:
  • Изменить- редактирование курса валюты;
  • Удалить- удаление курса валюты.
Валюта | Валюта, для которой установлен курс.
Дата | Дата, на которую установлен данный курс.
Номинал | Единица измерения валюты (см. Валюты)
Курс | Обменный курс данной валюты по отношению к базовой валюте.


Создание и редактирование курса валюты

В этом разделе

Контекстная панель
Форма редактирования
Кнопки управления

Контекстная панель

Кнопка | Описание
Список | Переход на страницу со списком курсов валют.
Создать | Переход к форме создания нового курса валюты. Кнопка отображается при редактировании существующего курса.
Удалить | Удаление редактируемого курса.

Форма редактирования

Поле | Описание
ID | Идентификатор курса валюты.
*Дата | Дата, на которую устанавливается курс валюты.
Валюта | Валюта, для которой установлен курс.
Номинал | Единица измерения валюты (см. Валюты)
*Курс | Обменный курс данной валюты по отношению к базовой валюте. Кнопка "Запросить" позволяет запросить курс валюты на указанную дату с сайта Центрального банка РФ.

* - Поля, обязательные для заполнения.

Кнопки управления

Кнопка | Описание
Сохранить | Сохранение внесённых изменений. Переход на страницу со списком курсов валют.
Применить | Сохранение внесённых изменений. Продолжение редактирования параметров курса валюты.
Отменить | Отмена выполненных изменений. Возврат первоначальных значений параметров.


Настройки

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Валюты: настройки модуля

Уровень доступа к модулю

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

Поле | Описание
По умолчанию | Уровень доступа групп пользователей, для которых установлено право "по умолчанию".
[Группа пользователей] Изменение настроек доступа для конкретной группы. Возможно назначение следующих прав доступа к модулю Валюты:
  • закрыт- запрет на доступ;
  • просмотр всех данных модуля - разрешается только просмотр файлов;
  • запись- полный доступ к ресурсам модуля.

Кнопки управления

Кнопка | Описание
Сохранить | Сохранение внесённых изменений.
Сбросить | Отмена внесённых изменений. Возврат первоначальных значений параметров.
По умолчанию | Установка значений свойств модуля равными значениям по умолчанию.


Таблица курсов валют

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Таблица курсов валют"

Данный компонент служит для отображения таблицы курсов валют в соответствии с их форматом. Компонент является стандартным и входит в дистрибутив модуля.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:currency.rates","",Array(
     "arrCURRENCY_FROM" => Array("EUR","USD"),
     "CURRENCY_BASE" => "RUB",
     "RATE_DAY" => "",
     "SHOW_CB" => "Y",
     "CACHE_TYPE" => "A",
     "CACHE_TIME" => "86400"
     )
);?>

Описание параметров

Настройки кеширования
CACHE_TYPE
Тип кеширования.
  • A - Авто
    Действует при включенном Автокешировании на странице Настройки кеширования и при установленном времени кеширования в поле CACHE_TIME.
  • Y - Кешировать
    При данном типе кеширования время кеширования (CACHE_TIME) должно быть устанолвено. Настройки кеширования не влияют на данный тип кеширования.
  • N - Не кешировать
    При выборе этого типа кеширование не происходит независимо от настроек кеширования.
CACHE_TIME
Время кеширования.
Дополнительно
arrCURRENCY_FROM
Массив 'исходных' валют для перевода. Массив валют, курсы которых отображаются.
CURRENCY_BASE
Валюта, к которой приводятся 'исходные' валюты. Базовая валюта, т.е. валюта, курсы по отношению к которой считаются.
RATE_DAY
День, на который показывать курсы валют (в формате 'Y-m-d'). Если не установлен - текущий курс.
SHOW_CB
[Y|N] Показывать курс валют с ЦБ РФ. Если "Да", то отдельной табличкой будет выведен курс ЦБ РФ.


Таблица курсов валют

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Компонент "Таблица курсов валют"

$APPLICATION->IncludeFile("currency/show_rates.php",
    Array(
        "arrCURRENCY_FROM" => Array("USD"),
        // Массив 'исходных' валют для перевода
        "CURRENCY_BASE" => "RUB",
        // Валюта, к которой приводятся 'исходные' валюты
        "RATE_DAY" => "",
        // День, на который показывать
        // курсы валют (в формате 'Y-m-d')
    "SHOW_CB"	=> "Y",	// Показывать курс валют с ЦБ РФ
        "CACHE_TIME" => "0",
        // Время кэширования (сек.)
    )
);

Компонент показывает таблицу курсов валют.

Параметры

arrCURRENCY_FROM
Массив валют, курсы которых отображаются.
CURRENCY_BASE
Базовая валюта, т.е. валюта, курсы по отношению к которой считаются.
RATE_DAY
День, на который показывать курсы валют (в формате 'Y-m-d'). Если не установлен - текущий курс.
SHOW_CB
[Y|N] Показывать курс валют с ЦБ РФ. Если "Да", то отдельной табличкой будет выведен курс ЦБ РФ.
CACHE_TIME
Период (в секундах), на который кешируется результат. Установите это поле в ноль для отключения кеширования.


AD/LDAP: общие сведения

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Общие сведения

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

Новый модуль позволяет интегрировать продукт «1С-Битрикс: Управление сайтом» с корпоративными сетями, построенными с использованием Windows Server 2000/2003, Unix, Novell.

С помощью AD / LDAP модуля , поставляемого компанией для системы «1С-Битрикс: Управление сайтом», можно установить соответствие между группами пользователей корпоративной сети и группами пользователей системы управления сайтом, что позволит организовать централизованное управление всеми группами пользователей корпоративной информационной системы.

В данном руководстве приводится описание, основные возможности и механизм работы AD/LDAP модуля системы «1С-Битрикс: Управление сайтом». Так же рассматривается механизм настройки модуля и задания соответствий групп пользователей сайта и корпоративной сети.


Основные возможности AD/LDAP

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Основные возможности

AD/LDAP модуль реализован с учётом особенностей работы LDAP (Lightweight Directory Access Protocol) и AD (Active Directory).

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

Используя данную структуру хранения данных, модуль AD/LDAP позволяет настраивать соответствие групп пользователей корпоративной сети группам пользователей сайта.

Соответствие групп пользователей задается в специальной Таблице Соответствий в административном разделе сайта. При этом возможно несовпадение имен групп пользователей сайта с именами групп пользователей корпоративной сети. Например, группе пользователей корпоративной сети Techsupport , к которой относятся сотрудники технической поддержки корпоративной сети, может быть поставлена в соответствие группа пользователей Techsupport stuff ,созданная на сайте. Теперь сотрудники службы технической поддержки корпоративнойсети смогут выполнять обязанности сотрудников службы технической поддержки сайта.

Группы пользователей внутри компании обладают правами на доступ к определённым ресурсам корпоративной сети, а сопоставленные им группы пользователей на сайте обладают правами на доступ к ресурсам сайта. Например, группа пользователей Techsupport наделена правами на доступ к почтовому серверу сети, а группа пользователей сайта Techsupport stuff обладает правами на доступ к модулю “ Техническая поддержка ” .

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

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

Таким образом, модуль AD/LDAP позволяет:

  • интегрировать систему «1С-Битрикс: Управление сайтом» в корпоративную сеть;
  • настроить соответствие групп пользователей корпоративной сети и групп пользователей сайта;
  • автоматически создавать бюджет пользователя после его регистрации исходя из Таблицы Соответствий. (Данные для создания бюджета пользователя запрашиваются из базы данных корпоративного сервера);
  • централизованно управлять изменениями бюджетов пользователей системы через корпоративный сервер.


Схема работы модуля AD/LDAP

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Схема работы модуля

Общая схема работы модуля может быть описана следующей последовательностью действий:

  1. Пользователь заходит на сайт и авторизуется (вводится логин и пароль, используемые пользователем для авторизации в корпоративной сети);
  2. Система обращается к указанному в настройках AD/LDAP серверу и проверяет наличие пользователя с указанными данными (паролем и логином) в базе пользователей на корпоративном сервере:
    • если пользователя с такими данными в корпоративной сети не существует, то система проверяет наличие данного пользователя в базе системы «1С-Битрикс: Управление сайтом» и, в случае отсутствия бюджета пользователя, запрещает ему вход на сайт;
    • если пользователь существует, то определяется группа пользователей корпоративной сети, к которой он относится, и сопоставленная ей группа пользователей сайта (с помощью Таблицы соответствий).
  3. Далее проверяется наличие бюджета данного пользователя в системе:
    • если бюджет пользователя не найден, то система получает данные о пользователе из базы данных корпоративного сервера и создает его бюджет;
    • если бюджет пользователя в системе уже был создан, т. е. пользователь уже авторизовался на сайте, то системы проверяет, были ли произведены какие-либо изменения с бюджетом пользователя на корпоративном сервере. Если да, то соответствующие изменения производятся и с бюджетом пользователя в системе управления сайтом.
  4. Пользователь получает разрешение на доступ к ресурсам сайта и авторизуется. Права пользователя определяются в зависимости от настроек группы пользователей сайта, к которой он был приписан.

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


Настройка AD/LDAP модуля

Настройка AD/LDAP модуля производится в административном разделе сайта. Создается запись с настройками модуля, в которой указываются сведения о корпоративном сервере, база данных которого будет использована для установления соответствий групп пользователей, параметры схемы сервера и соответствия групп пользователей.

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

  1. Перейдите к списку Active Directory/LDAP серверов (Настойки -> AD/LDAP)
  2. Для того, чтобы открыть страницу с формой для создания новой записи с настройками доступа, нажмите кнопку “Добавить”.
  3. В первой части закладки "Сервер" указываются сведения о корпоративном сервере и параметры доступа к базе данных групп пользователей, расположенной на нем:

    Поле | Описание
    Активен | Для того, чтобы при авторизации пользователя поиск его бюджета мог быть осуществлен в соответствии с параметрами данной записи, нужно установить флажок в поле Активен.
    Название | Задается название создаваемой записи для обращения к ней в списке.
    Описание
    В данное поле может быть добавлено произвольное описание создаваемой записи с настройками модуля.
    Мнемонический код В данном поле может быть задано произвольное мнемоническое имя создаваемой записи. Имя записи может быть использовано пользователем в качестве префикса при авторизации на сайте:

    <мнемонический_код>\<логин_пользователя>    .

    Данный префикс будет указывать на конкретную запись, в соответствии с которой должен быть осуществлен поиск бюджета пользователя на корпоративном сервере. Имя записи следует использовать, например, в том случае, если пользователь корпоративной сети имеет единые аутентификационные данные (один пароль и логин) для авторизации и несколько бюджетов, расположенных на разных серверах или в разных каталогах сервера. В этом случае с помощью мнемонического имени будет определяться запись, указывающая на сервер и корень дерева каталогов, в котором следует искать бюджет пользователя, используемый для его авторизации на сайте.
    Мнемонический код задается только латинскими символами.
    Сервер:порт | Указывается адрес корпоративного сервера с базой данных групп пользователей и порт, по которому к нему будет осуществляться обращение (389 порт является стандартным для обращения к LDAP серверу).
    Административный логин | Указывается логин для выполнения административного входа на сервер.
    Административный пароль | Указывается пароль для выполнения административного входа на сервер.
    Кнопка “Проверить” Для проверки введенных выше данных и установления пробного соединения с сервером служит кнопка “Проверить”.
    В случае если проверка была произведена успешно, сервер возвратит список доступных корней деревьев. Если же при проверке произошла ошибка, то вверху страницы будет выведена надпись красного цвета с указанием причины ошибки.
    Корень дерева | В появившемся после успешной проверки поле со списком выбирается корень дерева каталогов, в котором будет осуществляться поиск бюджетов авторизуемых пользователей.

  4. В разделе Параметры схемы сервера указываются значения параметров для схемы данных бюджетов пользователей, хранимых на сервере.
    Стандартные значения параметров как для LDAP, так и для AD сервера подставляются в поля формы автоматически.

    • Выбор типа сервера осуществляется путём нажатия ссылки с соответствующим названием в заглавии раздела.
    • Если стандартные значения данных параметров были изменены на корпоративном сервере, то соответствующие изменения нужно внести в значения параметров в форме.
  5. На закладке "Пользователи" осуществляется загрузка групп пользователей корпоративной сети и сайта в Таблицу соответствий и задание соответствий этих групп.
    • Для того, чтобы добавить названия групп пользователей в таблицу, нужно нажать кнопку “Обновить список групп”. Параллельно будет произведена проверка параметров, введенных в предыдущих разделах.

    • После обновления списка групп пользователей в данном разделе отобразится Таблица соответствий, строки которой имеют формат поле со списком.

    Поле | Описание
Группа на удаленном сервере | В столбце таблицы Группа на удаленном сервере осуществляется выбор групп пользователей корпоративной сети.
Локальная группа | В столбце Локальная группа выбираются группы пользователей сайта, которые ставятся в соответствие группам пользователей корпоративной сети. Таким образом, в одной строке таблице будет размещена группа пользователей корпоративной сети и поставленная ей в соответствие группа пользователей сайта.
Удалить | Для того чтобы удалить строку соответствия из таблицы, нужно установить флажок в поле Удалить и нажать кнопку “Применить”.
ещё | С помощью кнопки “ещё” выполняется добавление пустых строк в Таблицу соответствий.

  6. Для сохранения записи и возврата к списку серверов нажмите кнопку ”Сохранить”.
  7. После сохранения запись будет добавлена в список на странице Active Directory/LDAP серверы.

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


Перевод

Все сообщения (заголовки таблиц, ссылки, текст кнопок и т.п.), используемые в системе 1C-Битрикс: Управление сайтом, хранятся в специальных файлах. Для удобства перевода данных файлов для нескольких языков в комплект поставки системы входит модуль перевода.

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

Языковым файлом называется файл, расположенный в каталоге с именем вида /lang/. Данный каталог может быть расположен в любом месте в дереве каталогов сайта. ID языка задается на странице /bitrix/admin/lang_edit.php единожды.

Языковое сообщение - группа фраз на разных языках, имеющая один смысл. У каждого языкового сообщения есть свой идентификатор.

Пример сообщения

Сущность | Значение
Идентификатор языкового сообщения | MAIN_VERSION
Текст на русском языке | Версия системы "1C-Битрикс: Управление сайтом"
Текст на английском языке | Bitrix Site Manager Version


Перевод языковых файлов

На странице Перевод языковых файлов (Настройка -> Локализация) отображается структура каталогов, содержащих языковые файлы, в порядке расположения на диске. Для навигации по структуре каталогов можно пользоваться:

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

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

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


Перевод сообщений

В этом разделе

  • Контекстная панель
  • Поля формы
  • Кнопки управления

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

    Соответствие языка и кодировки настраивается на странице Настройки -> Настройки продукта -> Языки интерфейса (ссылка Изменить для конкретного языка).

    Вы можете редактировать языковые сообщения для показанных языков, а также удалять языковые сообщения для всех языков, установив флаг Удалить.

    Контекстная панель

    Кнопка | Описание
Список | Переход к списку файлов языковых сообщений.
Показать все сообщения/ Показать только непереведенные | Переключение между режимами показа сообщений: отображать либо все сообщения, либо только непереведенные. Режим отображения по умолчанию устанавливается в настройках модуля.

    Поля формы

    Поле | Описание
Имя файла | Имя файла языковых сообщений.
Всего сообщений | Количество языковых сообщений в файле.
Не переведено | Количество непереведенных сообщений для каждого языка.
Список сообщений
ID | Идентификатор языкового сообщения.
Удалить | Для того чтобы удалить языковое сообщение, установите флаг в это поле и нажмите кнопку "Применить".
[Язык] | Текст языкового сообщения для каждого языка. В исходных строках сообщений возможно наличие шаблонов вида "#ID#", "#COUNT#". Если в оригинале подобные шаблоны присутствуют, в переводе их также необходимо сохранить. В момент использования данного сообщения шаблон будет заменен на конкретное значение. Использование каких-либо PHP команд в языковых сообщениях запрещено. Однако, допустимо использование всех HTML-тегов.
Удалить все | Для того чтобы удалить все сообщения, установите флаг в это поле и нажмите кнопку "Применить".

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение выполненных изменений. Переход к списку файлов с языковыми сообщениями.
Применить | Сохранение выполненных изменений. Продолжение редактирования языковых сообщений.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений.


Настройки

Данная форма (Настройки -> Настройки продукта -> Настройки модулей) предназначена для задания общесистемных параметров модуля перевода.

Закладка "Настройки"

Параметр | Описание
Начальные каталоги | В данном поле вы можете задать каталоги, которые необходимо сканировать на предмет наличия в них языковых файлов. Каталоги задаются через запятую.
При редактировании показать по умолчанию только ошибки | Если флаг установлен, при открытии файла на редактирование показываются только непереведенные фразы (ошибки). Если флаг сброшен, при открытии файла показываются все фразы. Сменить режим отображения можно нажатием соответствующей кнопки на форме редактирования фраз.

Закладка "Доступ"

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

Поле | Описание
По умолчанию | Позволяет изменять настройки "по умолчанию", влияющие на все группы пользователей, имеющие настройку доступа "по умолчанию".
[Группа пользователей] Изменение настроек доступа для конкретной группы. В качестве уровней доступа возможен выбор между:
  • закрыт - доступ невозможен;
  • просмотр всех данных модуля - доступ открыт только на просмотр файлов, но не на их изменение;
  • запись - доступ открыт и на чтение, и на изменение файлов.


Проверка сайта

Форма Проверка сайта предназначена для всесторонней проверки соответствия параметров системы, на которой осуществляется функционирование 1C-Битрикс: Управление сайтом, минимальным и рекомендуемым требованиям продукта. Форма содержит информацию, сгруппированную по подразделам для облегчения восприятия. Выделяются следующие подразделы:

  • Обязательные параметры системы - параметры, критичные для нормального функционирования 1C-Битрикс: Управление сайтом.
  • Проверка доступа к диску - результаты проверки доступности дисков физической системы не только на чтение, но и на запись.
  • Рекомендуемые установки - параметры, некритичные для нормального функционирования, но которые желательно установить в рекомендуемые значения.
  • Модули сайта - установленные или доступные к установке модули.
  • Отправка сообщения в систему техподдержки - При помощи этой мини-формы можно быстро и оперативно связаться со службой технической поддержки компании 1C-Битрикс. Заполните требуемые поля формы, подробно описав суть проблемы. Многие проблемы можно решить быстрее, если к письму будет присоединена информация о ядре и расширениях PHP, получаемая вызовом функции phpinfo(), поэтому настоятельно рекомендуется оставлять эту опцию включенной.


Контроль файлов

Меню страницы

Проверка файлов
Загрузка файлов
Целостность скрипта

Страница "Контроль файлов" используется для осуществления контроля за изменением файлов в системе. Вы можете ввести известное только вам слово или строку и произвести расчёт контрольных сумм всех файлов, расположенных на вашем сайте. Введенное слово нигде не сохраняется. Полученный журнал (файл с верификационными данными) рекомендуется сохранять на локальном компьютере, чтобы исключить его потерю. В дальнейшем если при выполнении контроля файлов будет определено, что текущее состояние системы не соответствует исходному (сохраненному в файле с верификационными данными), это может означать, что проверяемые файлы могли быть подвергнуты нежелательному изменению.

Перейти на страницу контроля файлов можно из административного меню: Настройки -> Инструменты -> Контроль файлов. Для удобства работы страница разделена на закладки, на каждой из которых выполняется определённый набор действий.

Закладка "Проверка файлов"

Форма "Проверка файлов" служит для сбора информации о файлах сайта и последующей проверки неизменности этих файлов со времени последнего запуска скрипта контроля целостности файлов.

Поле | Описание
*Пароль Пароль, используемый при сборе информации о текущем состоянии системы. В дальнейшем указанный пароль будет использоваться для выполнения контроля файлов.
Пароль должен состоять только из символов латинского алфавита и цифр. Рекомендуемая длина пароля не менее 10 символов.
*Пароль ещё раз | Подтверждение пароля.
*Обработать папки В этом поле выбираются директории, участвующие в контроле.
  • Ядро продукта (папка /bitrix/modules/);
  • Служебная область (папка /bitrix/, за исключением /bitrix/modules/ и /bitrix/cache/);
  • Публичная часть (все папки сайта, за исключением /bitrix/ и /upload/).

Кнопки управления

Кнопка | Описание
Собрать информацию о файлах | Переход к сбору информации о выбранных файлах.
Проверить файлы | Выполнение проверки (контроля) файлов, информация о которых была собрана ранее. Кнопка отображается после загрузки файла с верификационными данными.

Закладка "Загрузка файла"

Форма "Загрузка файла" служит для загрузки и выгрузки файла с верификационными данными, т.е. с данными о состоянии файлов системы.

Поле | Описание
Поле с информацией о созданном файле с верификационными данными и ссылкой для выгрузки файла на локальный компьютер. Данное поле отображается после выполнения сбора информации о файлах системы.

Примечание: Для исключения возможности нежелательного изменения файл с верификационными данными рекомендуется хранить вне системы, например, на локальном компьютере.
Файл с верификационными данными | Для выполнения контроля предварительно нужно загрузить данные об исходном состоянии файлов системы. С помощью кнопки "Обзор" в данном поле указывается имя и путь к загружаемому файлу.
Распаковать из архива (tar.gz) Если на сайте доступна библиотека Zlib, то установка флага в данное поле позволяет:
  • выполнять автоматическую архивацию выгружаемого на локальный компьютер файла с верификационными данными;
  • автоматически распаковывать загружаемый в систему файл с верификационными данными.

Кнопки управления

Кнопка | Описание
Загрузить файл | Выполнение загрузки файла с верификационными данными.

Закладка "Целостность скрипта"

Форма "Целостность скрипта контроля" служит для проверки целостности самого скрипта контроля целостности файлов.

При первом запуске скрипта введите в эту форму произвольный пароль, а так же произвольное кодовое (ключевое) слово, и нажмите на кнопку "Установить новый ключ". При повторных запусках скрипта введите в этой форме заданный при установке ключа пароль.

Поле | Описание
*Пароль | Пароль для проверки целостности скрипта. Состоит из латинских букв и цифр. Рекомендуемая длина пароля не менее 10 символов.
*Пароль ещё раз | Подтверждение пароля.
*Новый ключ | Произвольное кодовое слово (отличное от пароля), для идентификации возможных изменений скрипта.

Кнопки управления

Кнопка | Описание
Установить новый ключ | Задание нового кодового слова для проверки целостности скрипта.
Проверить целостность скрипта | Выполнение проверки целостности скрипта. В сообщении о результатах проверки скрипт должен указать кодовое слово, которое вы ввели при установке ключа. Если вы не увидели своего кодового слова в сообщении о результатах проверки, то скрипт контроля целостности файлов скомпрометирован (т.е. он был изменен и его результатам доверять нельзя).

Важно! Если вы установили обновления через Систему обновлений и скрипт контроля целостности файлов при этом обновился, то необходимо заново установить ключ.


Настройки PHP

Страница Настройки PHP (Настройки -> Инструменты -> Настройки PHP) служит для отображения информации о текущих настройках PHP. Для получения информации используется функция phpinfo().


SQL запрос

Форма "SQL запрос" (Настройки -> Инструменты -> SQL запрос) предназначена для выполнения SQL запросов к базе данных. Возможно выполнение любых запросов на языке SQL.

Важно! Система не устанавливает никаких ограничений на SQL запросы, поэтому будьте крайне внимательны при выполнении запросов типа UPDATE, DELETE, DROP и т.п.

Кнопки управления

Кнопка | Описание
Выполнить запрос (alt+x) | Выполнение запроса.
Сбросить | Очистка поля для создания запроса.


Командная PHP-строка

Форма "PHP-строка" (Настройки -> Инструменты -> Командная PHP-строка) предназначена для задания PHP-скрипта, который будет выполнен на сервере.

Кнопки управления

Кнопка | Описание
Выполнить | Выполнение указанного в поле скрипта.
Очистить | Очистка поля для создания нового скрипта.


Список агентов

В данном разделе

Фильтр
Контекстная панель
Список агентов

Агенты - это технология, позволяющая запускать произвольные PHP-функции (агенты) с заданной периодичностью. В самом начале загрузки каждой страницы система автоматически проверяет, есть ли агент, который нуждается в запуске и в случае необходимости - исполняет его.

Список используемых в системе агентов приводится на странице Список агентов ( Настройки -> Инструменты -> Агенты).

Фильтр

Форма фильтра используется для выбора из списка агентов в соответствии с указанными условиями. Нижеследующая таблица описывает параметры, по которым может выполняться поиск.

Параметр | Описание
Найти | Данное поле позволяет выполнить поиск агентов по наиболее часто используемым критериям: ID агента, модуль, ID пользователя или имя агента.
ID агента | Идентификатор агента.
Модуль | Название модуля, к которому относится данный агент.
ID пользователя | Идентификатор пользователя, который запустил агент. Если необходимо отобразить только те агенты, которые запускаются системой, то в данном поле нужно указать система.
Имя агента | Поиск агента по его имени (название функции).
Активность | Данное поле позволяет отобразить только активные агенты или только неактивные агенты, или же все агенты.
Дата последнего запуска | Поиск агентов по дате их последнего запуска.
Дата следующего запуска | Поиск агентов по дате их последующего запуска.
Периодический | Данное поле позволяет отобразить только периодические агенты или только непериодические агенты, или же все агенты.

Для того чтобы отобразить агенты по заданным критериям поиска нажмите кнопку "Найти". Для отображения всех агентов нажмите кнопку "Отменить".

Контекстная панель

Кнопка | Описание
Добавить агента | Переход к форме создания нового агента.
Excel | Экспортирует данные из отображаемой таблицы в формат MS Excel.
Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы.

Список агентов

Поле | Описание
Колонка флажков | Поле предназначено для выбора агентов, к которым предполагается применить какое-либо правило или действие.
Действие Действия над агентами:
  • Изменить - переход к редактированию агента;
  • Активировать - перевод агента в активное состояние;
  • Деактивировать - перевод агента в неактивное состояние;
  • Удалить - удаление агента.
ID | Идентификатор агента.
Модуль | Название модуля, к которому относится агент.
[ID] Логин | Система или ID, логин, имя пользователя, запустившего агент.
Сортировка | Относительный "вес" агента. Чем меньше указанное число, тем выше показан в списке агент.
Функция агента | Выполняемая PHP-функция агента.
Активность | Признак активности агента.
Последний запуск | Дата и время последнего запуска агента.
Следующий запуск | Дата и время следующего запуска агента.
Периодический | Признак периодичности агента.
Интервал | Интервал запуска агента, указанный в секундах.


Создание и редактирование агента

В этом разделе

  • Контекстная панель
  • Форма редактирования
  • Кнопки управления

    • На данной странице вы можете создать нового или изменить параметры существующего агента.

    Контекстная панель

    Кнопка | Описание
Список агентов | Переход на страницу со списком агентов.
Добавить | Переход на страницу с формой создания нового агента. Кнопка отображается при редактировании существующего агента.
Удалить | Удаление редактируемого агента.

    Форма редактирования

    Поле | Описание
Дата последнего запуска | Дата и время последнего запуска агента. Данное поле отображается при редактировании агента.
*Дата и время следующего запуска | Указывается дата и время следующего запуска агента.
Активен | Признак активности агента. Если агент неактивен, то он не может быть запущен.
Модуль | Название модуля, к которому относится агент.
*Функция агента | Полное название функции агента.
ID пользователя | Задается идентификатор пользователя. Если пользователь не выбран, то владельцем агента является система.
Сортировка | Относительный "вес" агента. Чем меньше указанное число, тем выше в списке агентов будет показан данный агент.
Периодический | При отмеченной опции агент будет периодическим и вызываться через интервал, заданный в следующем параметре.
Интервал | Интервал вызова агента, задаваемый в секундах.

    * - Поля, обязательные для заполнения.

    Кнопки управления

    Кнопка | Описание
Сохранить | Сохранение параметров агента. Переход на страницу со списком агентов.
Применить | Сохранение параметров агента. Продолжение редактирования.
Отменить | Отмена внесённых изменений. Возврат первоначальных значений параметров.


Резервное копирование

В продукте «1С-Битрикс: Управление сайтом» для решения задачи переноса сайта на удаленный хостинг имеется специальный механизм резервного копирования, предоставляющий следующие возможности:

  • создание архивной версии файлов сайта (формат tar.gz);
  • исключение из архива папки, содержащей ядро продукта;
  • исключение из архива файлов, размер которых превышает некоторое заданное значение;
  • создание дампа базы данных (формат tar.gz);
  • исключение из дампа таблиц статистики и поискового индекса.

Выполнить перечисленные действия можно на странице Резервное копирование ( Настройки -> Инструменты -> Резервное копирование).

Форма копирования

Данная форма служит для задания параметров резервного копирования.

Поле | Описание
Архивировать по шагам | Данная опция позволяет архивировать данные по шагам. Если она отмечена, то необходимо указать значение следующего поля.
Шаг | Количество секунд выполнения одного шага резервного копирования.
Файлы
Архивировать публичную часть | Отмеченная опция позволяет архивировать публичную часть сайта.
Архивировать ядро | Если вам необходима резервная копия ядра, то отметьте данную опцию.
Исключить из архива файлы размером более | Файлы, размер которых превышает указанное число (в килобайтах), не будут включены в архив.
База Данных
Архивировать базу данных | При отмеченной опции будет архивирована база данных.
Исключить из архива | Данное поле позволяет исключить из архива таблиц статистики и поискового индекса.

Для начала процесса резервного копирования служит кнопка "Архивировать". Если вам необходимо будет прервать процесс копирования, то для этого воспользуйтесь кнопкой "Остановить".

Список резервных копий

Поле | Описание
Колонка флажков | Поле предназначено для выбора файлов архива, к которым предполагается применить какое-либо правило или действие.
Действие Действия над файлами архива:
  • Скачать - скачивание файла на локальный компьютер;
  • Распаковать - распаковка файла архива;
  • Удалить - удаление файла.
Имя | Имя файла архива.
Размер файла, МБ | Размер файла, указанный в мегабайтах.
Изменен | Дата и время изменения файла.

С помощью ссылки Скачать, расположенной на данной странице после таблицы со списком резервных копий, вы можете скачать скрипт восстановления restore.php.


Проверка/восстановление таблиц

Форма Проверка/восстановление таблиц служит для проверки и восстановления таблиц базы данных. Восстановление таблиц работает только для базы данных MySQL и таблиц типа MyISAM.

Внимание! Не открывайте эту страницу одновременно в нескольких копиях - это может повредить вашу базу данных. Операция может занять длительное время, если размер базы данных велик!

Кнопка Проверить/восстановить таблицы запускает процесс проверки таблиц базы данных. В результате проверки выводится таблица, в которую входят следующие поля:

Поле | Описание
Название таблицы | Выведено название проверенной/восстановленной таблицы.
Количество записей | Количество записей в таблице.
Размер таблицы (байт) | Выводится размер таблицы в байтах.
Результат проверки | Выводится статус проверки. Сообщение зеленого цвета (OK). Сообщения красного цвета выводятся при неполадках с таблицей.
Результат восстановления | Сообщение выводится в случае, если таблицу пришлось восстанавливать и проверять. Также выводится сообщение об успешности этого действия.


Система обновлений

Система обновлений служит для осуществления взаимодействия между копией продукта (клиент) и сервером обновлений. Основными видами взаимодействия являются:

  • обновление модулей продукта до последней версии (это позволяет получить новый функционал модулей и исправить в них возможные ошибки);
  • загрузка новых модулей, которые доступны в соответствии с лицензией;
  • загрузка языковых файлов (файлов переводов языкозависимых сообщений продукта на разные языки);
  • загрузка системы помощи на разных языках;
  • регистрация копии продукта с помощью лицензионного ключа;
  • загрузка исходных текстов скриптов модулей продукта;
  • добавление купонов на дополнительные сайты.

Переход к установке обновлений выполняется со страницы Обновления: Настройки -> Обновления. Также переход на страницу обновлений продукта можно осуществить по кнопке [image] панели инструментов в административном разделе.

Некоторые термины системы обновлений

Ядро продукта - каталог /bitrix/modules/ (пути везде задаются относительно корневой папки, если явно не указано противное). Часто в понятие ядра продукта включается так же структура базы данных продукта.

Служебная область - все подкаталоги каталога /bitrix/, за исключением каталогов /bitrix/modules/ (т.е. ядра продукта) и /bitrix/updates/. Часто в понятие служебной области включаются так же данные служебных таблиц базы данных (например, записи таблицы b_event_type).

Каталог системы обновлений - каталог /bitrix/updates/. Этот каталог предназначен исключительно для работы системы обновлений и не может использоваться других целях.

Публичная часть - все каталоги, относящиеся к данной копии продукта, за исключением ядра продукта, служебной области и каталога системы обновлений. Часто в понятие публичной части включаются все данные базы данных, за исключением данных служебных таблиц.

Регистрация копии продукта - снятие с данной копии продукта ограничений, которые имеет демонстрационная версия (например, ограничение по времени работы).

Лицензионный ключ - специальный ключ (последовательность символов), который подтверждает право на использование копии продукта.

Купон на дополнительный сайт - специальный ключ (последовательность символов), который подтверждает право на создание одного дополнительного сайта в рамках данной копии продукта.

Сервер обновлений - сервер, который отдает обновления продукта системе обновлений. Адрес сервера обновлений задается на странице глобальных настроек главного модуля (должен иметь значение www.bitrixsoft.ru или www.1c-bitrix.ru).

Важные замечания по работе системы обновлений

Система обновлений не изменяет публичную часть. Служебная область изменяется только в рамках необходимости, при этом существующие файлы и записи не изменяются (т.к. они уже могли быть изменены владельцем копии продукта под свои нужды). Ядро продукта может быть изменено системой обновлений сколь угодно сильно (при этом, конечно, обеспечивается обратная совместимость).

Важно! Если вы самостоятельно изменили хотя бы один файл ядра продукта или структуру базы данных, то автоматическая установка обновления может иметь непредсказуемый результат.

Система обновлений не собирает и не передает никаких конфиденциальных данных копии продукта, на которой она работает. Система обновлений обменивается с сервером обновлений исключительно техническими данными, напрямую необходимыми для корректной работы системы обновлений (например, текущие версии модулей или дата последнего обновления системы помощи).

Система обновлений производит технически сложную серьезную модификацию ядра продукта. Если эта модификация будет произведена с ошибками, то сайты, работающие на этом ядре, могут оказаться неработоспособными. Перед установкой обновлений рекомендуется убедится в наличии резервной копии как базы данных, так и скриптов ядра продукта и служебной области. Рекомендуется для проведения процедуры обновления выбирать время, когда нагрузка на сервер минимальна. При возникновении проблем с установкой обновления вам необходимо незамедлительно обратиться в службу технической поддержки компании 1С-Битрикс.

Главная страница системы обновлений (первый шаг)

После выбора в левом меню административной части сайта пункта "Обновление" вы попадаете на главную страницу системы обновлений.

Если на главной странице системы обновлений выводится сообщение о том, что лицензионный ключ не верен (или лицензия не найдена), то возможны следующие ситуации:

  • если у вас уже есть лицензионный ключ, то этот ключ необходимо ввести в соответствующее поле на главной странице системы обновлений или в соответствующее поле на странице глобальных настроек главного модуля;
  • если у вас нет лицензионного ключа, то вы можете запросить пробный лицензионный ключ. Для этого воспользуйтесь соответствующей ссылкой на главной странице системы обновлений. Полученный лицензионный ключ нужно ввести в соответствующее поле на главной странице системы обновлений или в соответствующее поле на странице глобальных настроек главного модуля.

Если на главной странице системы обновлений выводится сообщение о том, что лицензионный ключ не активирован, и предлагается к заполнению форма, то вам необходимо заполнить все поля этой формы. После этого лицензионный ключ будет активирован.

Если на главной странице системы обновлений выводится сообщение о том, что доступно обновление самой системы обновлений, то необходимо установить это обновление. До установки этого обновления остальной функционал системы будет недоступен.

Если в систему введен валидный активный лицензионный ключ и обновление самой системы обновлений не доступно, то главная страница системы обновлений предлагает на выбор набор действий, которые можно совершить согласно текущей лицензии:

  • Просмотр и загрузка обновлений - действие доступно в случае наличия на сервере обновлений новых версий доступных для текущей лицензии модулей.
  • Просмотр и загрузка языковых файлов - действие доступно в случае наличия на сервере обновлений новых версий языковых файлов.
  • Просмотр и загрузка системы помощи - действие доступно в случае наличия на сервере обновлений новых версий файлов помощи.
  • Регистрация продукта - действие доступно, если копия продукта не зарегистрирована, а текущая лицензия позволяет произвести регистрацию. Регистрацию копии продукта необходимо произвести незамедлительно после получения лицензионного ключа, так как после истечения срока пробного использования продукта восстановить работоспособность сайта будет затруднительно. Регистрация продукта выполняется в один шаг без дополнительных вопросов.
  • Загрузка исходных текстов - действие доступно, если скрипты копии продукта закодированы, а текущая лицензия позволяет получить исходные тексты скриптов. Перед загрузкой исходных текстов ядро продукта должно быть обновлено до последней версии (т.е. никакие обновления ядра продукта не должны быть доступны). Загрузка исходных текстов выполняется в один шаг без дополнительных вопросов. Обратите внимание, что в случае медленного канала или большой загрузки сервера загрузка исходных текстов может занять некоторое время.
  • Добавление дополнительного сайта - действие доступно всегда. Если у вас есть купон на получение дополнительного сайта, то вы можете применить его незамедлительно.
  • Просмотр журнала установки - журнал установки содержит информацию о 20 последних установленных обновлениях, включая информацию по статусам и ошибкам установки.


Добавление дополнительного сайта

Система 1С-Битрикс: Управление сайтом позволяет создавать несколько сайтов с применением одной копии (лицензии) продукта, размещая ядро и базу данных системы в единственном экземпляре на сервере. Максимальное количество сайтов на одной копии продукта ограничено лицензией. Если необходимо создать дополнительные сайты сверх текущего максимального количества, то следует приобрести лицензии на дополнительные сайты.

При приобретении лицензий на дополнительные сайты вам выдаются купоны на дополнительные сайты (один купон - одна дополнительная лицензия). Дополнительные лицензии (и купоны соответственно) зависят от редакции продукта. Например, для создания дополнительного сайта в продукте редакции Эксперт MySQL необходимо приобрести лицензию (купон) на дополнительный сайт для редакции Эксперт MySQL.

После получения купона вам необходимо воспользоваться ссылкой "Добавить сайт" на главной странице системы обновлений. На открывшейся странице нужно ввести полученный купон в соответствующее поле и нажать на кнопку "Получить сайт".

Если купон действителен, принадлежит соответствующей редакции продукта и не был уже применен ранее, то максимальное количество сайтов для данной копии продукта будет увеличено на одну штуку.


Обновление ядра продукта

Если доступны обновления ядра продукта, то на главной странице системы обновлений появляется ссылка на просмотр и загрузку этих обновлений.

Система обновлений производит технически сложную серьезную модификацию ядра продукта. Если эта модификация будет произведена с ошибками, то сайты, работающие на этом ядре, могут оказаться неработоспособными. Перед установкой обновлений рекомендуется убедиться в наличии резервной копии как базы данных, так и скриптов ядра продукта и служебной области. Рекомендуется для проведения процедуры обновления выбирать время, когда нагрузка на сервер минимальна. При возникновении проблем с установкой обновления вам необходимо незамедлительно обратиться в службу технической поддержки компании 1C-Битрикс.

Обратите внимание, что в случае медленного канала или большой загрузки сервера обновление ядра продукта может занять некоторое время.

Обновление ядра продукта осуществляется в несколько шагов: выбор требуемого действия (первый шаг), просмотр и загрузка выбранных обновлений (второй шаг), установка выбранных обновлений (третий шаг) и отчет об установке (четвертый шаг).

Выбор требуемого действия (первый шаг)

Этот шаг соответствует главной странице системы обновлений. Если доступны обновления ядра продукта, то на главной странице системы обновлений появляется ссылка на просмотр и загрузку этих обновлений (на второй шаг).

Просмотр и загрузка выбранных обновлений (второй шаг)

На этом шаге показывается список доступных обновлений, которые можно загрузить с сервера обновлений. По умолчанию будут загружены все доступные обновления. Если какое-либо из обновлений загружать не нужно, то можно убрать его из списка загрузки с помощью соответствующей кнопки "Удалить". Обновления, которые были убраны из списка загрузки, можно вернуть обратно в этот список с помощью соответствующей кнопки "Добавить". Обратите внимание, что в случае связанных обновлений в списке загрузки должны быть все связанные обновления либо не должно быть ни одного из них (система обновлений контролирует выполнение этого правила).

На этом шаге показывается так же общий размер выбранных для загрузки обновлений. Если размер обновлений велик и ваш хостинг не дает возможности поставить все обновления за один раз, то можно попробовать установить обновления по частям (по одному или нескольким модулям).

Внимание! Внимательно прочитайте описания обновлений модулей - они содержат важную информацию по установке обновления и предупреждают о возможных проблемах в работе.

Для перехода на третий шаг процедуры обновления ядра продукта необходимо нажать на кнопку "Далее". Это действие запустит механизм загрузки выбранных обновлений с сервера обновлений. Загрузка может занять некоторое время.

Просмотр и установка выбранных обновлений (третий шаг)

К этому шагу выбранные обновления загружены с сервера обновлений и готовы к установке. Страница показывает список доступных обновлений, которые можно установить. По умолчанию будут установлены все загруженные обновления. Если какое-либо из обновлений устанавливать не нужно, то можно убрать его из списка установки с помощью кнопки "Удалить". Обновления, которые были убраны из списка установки, можно вернуть обратно в этот список с помощью соответствующей кнопки "Добавить". Обратите внимание, что в случае связанных обновлений в списке установки должны быть все связанные обновления либо не должно быть ни одного из них (система обновлений контролирует выполнение этого правила).

Для начала установки необходимо нажать на кнопку "Установить". Это действие запустит механизм установки выбранных обновлений. Установка может занять некоторое время, которое зависит от объема обновления и текущей загруженности системы. Крайне рекомендуется для установки обновлений выбирать время, когда загруженность системы минимальна.

Отчет об установке (четвертый шаг)

На этом шаге выводится информация об итогах установки обновления и произошедших при установке ошибках.

Внимание! Не обновляйте эту страницу и не используйте кнопку "Назад" браузера.

Если страница сообщает о наличии каких-либо ошибок или если страница вообще не загрузилась корректно, вам необходимо незамедлительно проверить работоспособность сайта и выяснить причину возникновения ошибки. Если вы не можете сделать это самостоятельно, незамедлительно обратитесь в службу техподдержки компании 1С-Битрикс. Для ускорения решения проблемы мы рекомендуется приложить к обращению файл /bitrix/updates/updater.log.

Просмотреть результаты работы системы обновлений вы можете так же в журнале установки.


Просмотр и загрузка системы помощи

Если доступны обновления системы помощи продукта, то на главной странице системы обновлений появляется ссылка на просмотр и загрузку этих обновлений.

Обратите внимание, что в случае медленного канала или большой загрузки системы обновление системы помощи продукта может занять некоторое время.

Обновление системы помощи продукта осуществляется в несколько шагов: выбор требуемого действия (первый шаг), просмотр и установка системы помощи (второй шаг), отчет об установке (третий шаг).

Выбор требуемого действия (первый шаг)

Этот шаг соответствует главной странице системы обновлений. Если доступны обновления системы помощи продукта, то на главной странице системы обновлений появляется ссылка на просмотр и установку этих обновлений (на второй шаг).

Просмотр и установка помощи (второй шаг)

На этом шаге показывается список систем помощи на разных языках, которые можно загрузить с сервера обновлений. Особо выделены те языки, которые присутствуют в системе. После выбора одного из доступных обновлений и нажатия на кнопку"Загрузить" указанное обновление будет загружено с сервера обновлений и установлено. Загрузка может занять некоторое время.

Отчет об установке (третий шаг)

На этом шаге выводится информация об итогах установки обновления и произошедших при установке ошибках.

Внимание! Не обновляйте эту страницу и не используйте кнопку "Назад" браузера.

Просмотреть результаты работы системы обновлений вы можете также в журнале установки.


Просмотр и загрузка языковых файлов

Если доступны обновления языковых файлов (т.е. файлов с переводами языкозависимых сообщений продукта на какой-либо язык), то на главной странице системы обновлений появляется ссылка на просмотр и загрузку этих обновлений.

Обратите внимание, что в случае медленного канала или большой загрузки системы обновление языковых файлов продукта может занять некоторое время.

Обновление языковых файлов продукта осуществляется в несколько шагов: выбор требуемого действия (первый шаг), просмотр и установка языковых файлов (второй шаг), отчет об установке (третий шаг).

Выбор требуемого действия (первый шаг)

Этот шаг соответствует главной странице системы обновлений. Если доступны обновления языковых файлов продукта, то на главной странице системы обновлений появляется ссылка на просмотр и установку этих обновлений (на второй шаг).

Просмотр и установка языковых файлов (второй шаг)

На этом шаге показывается список наборов языковых файлов для разных языков, которые обновились с момента последней установки. Особо выделены те языки, которые присутствуют в системе. После выбора тех из доступных обновлений, которые необходимо установить, и нажатия на кнопку "Загрузить" указанные обновления будут загружены с сервера обновлений и установлены. Загрузка может занять некоторое время.

Отчет об установке (третий шаг)

На этом шаге выводится информация об итогах установки обновления и произошедших при установке ошибках.

Внимание! Не обновляйте эту страницу и не используйте кнопку "Назад" браузера.

Просмотреть результаты работы системы обновлений вы можете так же в журнале установки.


Пошаговое обновление

Если вы выбрали пошаговым режим обновления системы, то страница Система обновлений приобретает совершенно иной вид. Форма, представленная на этой странице, разбита на три закладки:

  • Установка обновлений
  • Список обновлений
  • Дополнительно

Установка обновлений

На данной закладке представлена информация об имеющихся рекомендуемых (обновления модулей) и опциональных обновлениях (языковые файлы, системы помощи). Кроме того, если выпущено обновление системы обновлений, то перед началом работы необходимо установить это обновление.

Процесс загрузки обновлений системы отображается с помощью двух индикаторов выполнения (поля типа "Progress Bar").

Список обновлений

На данной закладке в виде таблице представлен список всех обновлений. Используя колонку флажков таблицы, вы можете указать необходимые обновления для установки.

Дополнительно

Активация купонов на дополнительные сайты, включение/отключение установки бета-версий, а также подписка на получение информации об обновлениях по почте производится на данной закладке.


Компрессия

Современные технологии непрерывно развиваются и предоставляют все новые и новые средства коммуникации. На смену простым низкоскоростным устройствам, передающим информацию посредством телефонных линий (аналоговым модемам), приходят новые наукоемкие решения, позволяющие в считанные секунды отсылать большие объемы информации: цифровые асинхронные каналы на базе тех же телефонных линий, оптоволоконные и спутниковые сети. Вместе с тем, большая часть конечных получателей информации в интернете до сих пор использует низкоскоростные модемные линии в силу их дешевизны и простоты использования. Компания "1С-Битрикс" позаботилась о ваших клиентах, введя в систему "1С-Битрикс: Управление сайтом" сжатие страниц, позволяющее существенно сократить объем передаваемой информации. Сжатие реализуется модулем компрессии.

Модуль компрессирует страницы для ускорения вывода содержания сайта пользователям. Модуль в несколько раз (от 4 до 20!) уменьшает объем передаваемых HTML-данных между сайтом и браузером клиента, что существенно увеличивает скорость работы как для посетителей, так и для администраторов сайта.

Модуль не нуждается в каких-либо настройках. Эффективность работы модуля компрессии можно оценить, добавив в строке браузера параметр compress=Y. Например:

http://ourcompany.com/ru/partners/catalog.php?BID=10&compress=Y

При этом параметре внизу всех страниц будет выводиться таблица следующего вида:

Библиотека компрессии
Размер страницы | 38695
После сжатия | 7375
Коэффициент сжатия | 5.25

Примечание для разработчиков
Для оценки времени отгрузки страницы можно воспользоваться параметром show_page_exec_time=Y, при использовании которого в нижнем левом углу страницы отобразится время, затраченное на генерацию страницы (в отличие от времени, затраченного на передачу).


Введение

В этом разделе

  • Настройки - описание настроек главного модуля.
  • Основные сведения - сведения о технологиях и основных принципах заложенных в систему.
  • Классы и функции - описание классов и функций главного модуля.
    •

    Данный раздел предназначен для технических специалистов со знанием PHP и HTML. Раздел содержит сведения о технологиях и основных принципах, заложенных в систему 1С-Битрикс: Управление сайтом, описание классов и функций главного модуля.


Настройки главного модуля

Список настроек

  • Позволять ли пользователям регистрироваться самостоятельно?
  • При регистрации добавлять в группу
  • Разрешить запоминание авторизации
  • Использовать защищенное хранение авторизации в 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["SERVER_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 или текущая сессионная) будет распространяться на все домены всех сайтов портала.
По умолчанию: | N
Заголовок: | Сохранять исходные имена загружаемых файлов.
Идентификатор: | save_original_file_name
Описание: | Если данный параметр установлен (равен "Y"), то все имена всех загружаемых файлов будут сохранены в исходном виде. В противном случае, эти имена будут преобразованы в уникальные с помощью хэш функции MD5.
По умолчанию: | N
Заголовок: | Автоматически заменять невалидные символы в именах загружаемых файлов.
Идентификатор: | convert_original_file_name
Описание: | Если данный параметр установлен (равен "Y"), то в именах загружаемых файлов все невалидные символы не являющиеся символами латинского алфавита, цифрами, тирэ (-), подчеркиванием (_), точкой (.) будут преобразованы в произвольные валидные символы.
По умолчанию: | Y


Перенос сайта с локальной машины на удаленный хостинг

Для переноса сайта с локальной машины на удаленный хостинг, при помощи встроенной функции резервного копирования и скрипта restore.php, необходимо выполнить следующие действия:

  1. Проверить:
    • соответствие удаленного хостинга, минимальным техническим требованиям продукта;
    • поддерживает ли удаленный хостинг Zend Optimizer версии не ниже 2.6.0 (необходимо только для демо версии продукта);
    • наличие прав не ниже (0644 – для файлов и 0744 для папок) на все файлы в корне сайта у пользователя, под которым работает Apache (PHP).
  2. Зайти в административный раздел копируемого сайта с правами администратора: "Рабочий стол > Настройки > Инструменты > Резервное копирование". Для полного копирования сайта с локальной машины на хостинг установите следующие параметры:
    • Архивировать по шагам: Да
    • Шаг архивации: установите в соответствие с настройками параметра max_execution_time в файле php.ini (по умолчанию 30 сек.)
    • Архивировать публичную часть: Да
    • Архивировать ядро: Да
    • Исключить из архива файлы размером более: 1024 кб (при этом в архив не попадут файлы, размер которых более 1 МБ)
    • Архивировать базу данных: Да
    При архивации базы данных можно значительно уменьшить объем файла резервной копии, исключив из него статистику и поисковый индекс.

  3. Установив необходимые параметры и нажмите кнопку Архивировать.
  4. После завершения операции резервного копирования, скачайте файл архива, а также файл restore.php.

  5. Далее при помощи протоколов ftp, ssh или другого доступного вам способа перенесите эти файлы на хостинг в корневую директорию веб-сервера.
  6. В адресной строке браузера наберите: http://www.ваш_сайт.ru/restore.php
  7. В открывшемся диалоговом окне выберете файл ранее скопированного архива, язык интерфейса и укажите время шага распаковки (устанавливается в соответствие с настройками php на хостинге – по умолчанию 30 сек.). Нажмите кнопку Распаковать.

  8. После завершения распаковки файлов, при переносе системы вместе с базой данных, необходимо указать настройки соединения с базой данных. Указав необходимые параметры, нажмите кнопку Восстановить.

    После успешной распаковки, во избежание повреждения вашего сайта или утечки информации, вам обязательно необходимо удалить следующие файлы:
    • /restore.php
    • /файл резервной копии (файл с расширением .tar.gz)
    • /bitrix/backup/дамп базы (файл с расширением .sql)
    Также, возможно, потребуется настройка параметров соединения с базой данных в файле /bitrix/php_interface/dbconn.php.


Основные сведения

В данном разделе представлена общая информация по технологиям и принципам заложенным в систему:

  • Список терминов - определения основных терминов используемых в разделе "Главный модуль" руководства разработчика
  • Структура файлов - описание структуры файлов системы
  • Права доступа - описание идеалогии распределения прав доступа
  • Специальные константы - специальные константы используемые в системе
  • Специальные переменные - специальные переменные используемые в системе
  • Работа с датой и временем - примеры основных операций связанных в датой и временем
  • Навигационная цепочка - описание принципов работы с навигационной цепочкой
  • Меню - описание принципов работы с меню
  • Технологии - описание основных технологий реализованных в системе
  • Модули - описание принципов модульности и основных вопросов связанных с разработкой собственного модуля
  • Сайты - принципы многосайтовости
  • Языки - перевод скриптов системы на другие языки
  • Страницы - структура страницы
  • Компоненты - описание принципов работы с компонентами


Список терминов

  • Портал
  • Сайт
  • Шаблон сайта
  • Раздел сайта
  • Компонент 1.0
  • Компонент 2.0
  • Путь к компоненту
  • Включаемые области
  • Язык
  • Языковой файл
  • Шаблон страницы
  • Пролог
  • Эпилог
  • Тело страницы
  • Навигационная цепочка
  • Административная часть
  • Публичная часть
  • Режим редактирования сайта
  • Индексная страница (файл)
  • Мета-тэг
  • Локализация
  • Хост
  • Доменное имя (домен)
  • IP адрес
  • Accept-Language
  • Время в Unix-формате
  • Права в Unix системах
  • Путь относительно корня
  • Полный путь
  • Абсолютный путь
  • DocumentRoot
  • Сабмит
  • Сессия
  • HTML-безопасный вид
  • Связывание переменных
  • Дамп
  • cron (крон)
  • Буферизация
  • Постоянное соединение (persistent)
  • Почтовое событие
  • Тип почтового события
  • Почтовый шаблон
  • Бюджет пользователя

Термин | Описание
Портал | Один набор файлов хранящихся в каталоге /bitrix/modules/ и одна копия базы. Портал включает в себя один или более сайтов. Синонимом данного термина может служить: "экземпляр продукта", "одна инсталляция системы", "одна копия системы".
Сайт Совокупность таких понятий как:
  • учетная запись в базе данных - создаётся в административном меню "Сайты", включает в себя следующие основные параметры:
    • идентификатор - набор символов идентифицирующий сайт
    • доменное имя - одно или более доменное имя сайта
    • папка сайта - путь к каталогу в котором будет храниться публичная часть сайта
    • язык сайта
    • формат даты
    • формат времени
    • URL - протокол и доменное имя по умолчанию (например, "http://www.site.ru")
    • DocumentRoot - если многосайтовость организована по способу 2, то в данном параметре должен храниться путь в файловой системе сервера к корню сайта
    • условия подключения шаблонов - каждый сайт может иметь один или более шаблонов для отображения скриптов своей публичной части, каждый такой шаблон может быть подключен по тому или иному условию
  • публичная часть - совокупность скриптов (страниц) лежащих в "папке сайта" и принадлежащих этому сайту
  • настройки - каждый модуль может иметь ряд настроек связанных с сайтом, например, у модуля "Информационные блоки" эти настройки представляют из себя привязку информационного блока к тому или иному сайту, у модуля "Техподдержка" - привязку статуса, категории и т.п. к сайту.
Шаблон сайта Синонимом можно считать - "дизайн сайта", "скин сайта". Для показа одного сайта можно использовать несколько различных шаблонов. Строго говоря, в шаблон сайта входят:
  • учетная запись в базе данных - создаётся в административном меню "Шаблоны сайта"
  • набор файлов в каталоге /bitrix/templates/ID_шаблона/, где ID_шаблона - поле "ID" в форме редактирования шаблона сайта, ниже представлена структура данного каталога:
    • /ID модуля/ - каталог с компонентами 1.0, принадлежащими тому или иному модулю
    • /lang/ - языковые файлы принадлежащие как данному шаблону в целом, так и отдельным компонентам
    • /images/ - каталог с изображениями данного шаблона
    • /page_templates/ - каталог с шаблонами страниц и их описанием хранящимся в файле .content.php
    • /include_areas/ - каталог с файлами - содержимым включаемых областей;
    • header.php - пролог данного шаблона
    • footer.php - эпилог данного шаблона
    • styles.css - CSS стили, используемые на страницах сайта, когда используется данный шаблон
    • template_styles.css - CSS стили, используемые в самом шаблоне
    • .тип меню.menu_template.php - шаблон вывода меню соответствующего типа, если это версия 5.х
    • chain_template.php - шаблон по умолчанию для вывода навигационной цепочки (версия 5.х)
    • а также ряд других вспомогательных произвольных файлов, входящих в данный шаблон
Раздел сайта | Это ничто иное как каталог в файловой системе сервера. В "Битрикс: Управление сайтом" структура сайта - это файловая структура сервера, поэтому страницы сайта - это файлы, а разделы сайта - соответственно каталоги.
Компонент Является частью того или иного модуля, представляет из себя логически завершенный код, хранящийся в одном файле, принимающий ряд параметров, выполняющий ряд действий и выводящий какой либо результат (например, в виде HTML кода). Использование компонент является наиболее предпочтительным способом организации вывода информации как в публичной, так и в административной частях. В понятие "компонент" входят следующие элементы:
  • основной файл - подключается с помощью функции CMain::IncludeFile, представляет из себя скрипт на языке PHP реализующий логику компонента
  • языковые файлы - используются в компоненте для представления его результата на различных языках
  • описание - это PHP код используемый HTML редактором для визуального управления компонентом и его параметрами
Компонент 2.0 Компоненты являются блоками, с помощью которых строится публичная часть сайта.
Основные особенности компонентов версии 2.0:
  • В компонентах 2.0 могут быть разделены логика и представление. Для одной логики может быть несколько представлений, в том числе зависящих от шаблона текущего сайта.
    Логика - это сам компонент, представление - это шаблон вывода компонента.
  • Компоненты централизованно хранятся в одной папке. Это обеспечивает большую целостность и понятность структуры сайта. Папка доступна для обращений, а значит, компонент и его шаблоны могут легко подключать свои дополнительные ресурсы.
  • Компонент хранит все, что ему нужно для работы, в своей папке. Поэтому компоненты можно легко переносить между проектами. Компонент неделим.
  • Компоненты делятся на простые и комплексные. Простые служат для создания различных областей на одной странице (список новостей, топ элементов каталога, случайное фото и т.д.). А комплексные используются для создания полнофункциональных разделов сайта (полный каталог товаров, новостной раздел, форум и т.д.).
Путь к компоненту Используется в функции CMain::IncludeFile в качестве первого параметра и представляет из себя путь к основному файлу компонента относительно одного из следующих каталогов (в порядке убывания приоритета):
  • /bitrix/templates/ID шаблона сайта/
  • /bitrix/templates/.default/
  • /bitrix/modules/ID модуля/install/templates/
Где
ID шаблона сайта - идентификатор текущего шаблона сайта,
ID модуля - идентификатор модуля которому принадлежит компонент.
Включаемые области | Это произвольный текст (HTML код), являющийся частью содержимого страницы. С данным термином связана закладка "Редактировать сайт" на панели управления, при нажатии на которую, все включаемые области обрамляются рамкой с управляющими иконками в правом верхнем углу этой рамки.
Язык Это учетная запись в базе данных доступная для редактирования в административном меню "Языки" со следующими полями:
  • Идентификатор
  • Название
  • Формат даты
  • Формат времени
  • Кодировка
Как в публичной, так и административной частях, язык в первую очередь используется в работе с языковыми файлами.
В административной части язык определяет формат времени, даты, кодировку страниц (в публичной - данные параметры определяются настройками сайта).
Языковой файл Представляет из себя PHP скрипт, хранящий переводы языковых фраз на тот или иной язык. Данный скрипт состоит из массива $MESS, ключи которого - идентификаторы языковых фраз, а значения - переводы на соответстсвующий язык. Для каждого языка существует свой набор языковых файлов, хранящихся как правило в каталогах /lang/.
Языковые файлы как правило используются в административных скриптах модулей и в компонентах.
Для работы с языковыми файлами предназначен модуль "Перевод".
Шаблон страницы Это файл, хранящийся в одном из каталогов:
/bitrix/templates/ID шаблона сайта/page_templates/
/bitrix/templates/.default/page_templates/
Данный файл представляет из себя "заготовку" публичной страницы. Как правило используется при создании новой страницы в модуле "Управление структурой" (например, в HTML редакторе). Для задания порядка сортировки шаблонов страниц используется файл .content.php находящийся в одном из вышеуказанных каталогов.
Пролог

В общем случае, под данным термином понимается верхняя левая часть страницы.

Для публичной части, пролог соответствующего шаблона сайта хранится в файле /bitrix/templates/ID шаблона сайта/header.php.

Для административной части - пролог храниться в файле /bitrix/modules/main/interface/prolog_admin.php.

В свою очередь пролог может быть разделен на служебную и визуальную части. В служебной части подключаются все необходимые классы, создаётся соединения с базой, создаются ряд служебных экземпляров объектов таких как $USER, $APPLICATION и т.д. В визуальной части выводится верхняя левая часть страницы.

Если в публичной части необходимо подключить неразделенный пролог, то используем следующий код:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Если по тем или иным причинам необходимо разделить пролог на служебную (prolog_before.php) и визуальную (prolog_after.php) части, то используем следующие коды:

require($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/main/include/prolog_before.php");
...
require($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/main/include/prolog_after.php");
Эпилог

В общем случае под данным термином понимается нижняя правая часть страницы.

Для публичной части, эпилог соответствующего шаблона сайта хранится в файле /bitrix/templates/ID шаблона сайта/footer.php.

Для административной части - эпилог храниться в файле /bitrix/modules/main/interface/epilog_admin.php.

В свою очередь эпилог может быть разделен на служебную и визуальную части. В служебной части производится ряд таких действий как: отсылка почтовых сообщений, отработка обработчиков события OnAfterEpilog и др. В визуальной части выводится нижняя права часть страницы.

Если в публичной части необходимо подключить неразделенный эпилог, то используем следующий код:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");

Если по тем или иным причинам необходимо разделить эпилог на визуальную (epilog_before.php) и служебную (epilog_after.php) части, то используем следующие коды:

require($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/main/include/epilog_before.php");
...
require($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/main/include/epilog_after.php");
Тело страницы | Тело страницы это часть PHP/HTML кода расположенного, в скрипте между подключениями пролога и эпилога. Тело страницы не является частью шаблона сайта и представляет из себя индивидуальное содержимое публичной либо административной страницы.
Навигационная цепочка Это элемент дизайна, предназначенный в первую очередь для улучшения навигации по сайту. Навигационная цепочка выводится как правило в визуальной части пролога и состоит из заголовков разделов сайта с соответствующими ссылками на них. Помимо заголовков разделов, добавляемых автоматически, вы также можете добавлять произвольные пункты в навигационную цепочку.
Административная часть Это множество скриптов в которых подключен административный пролог и эпилог. Их подключение подразумевает:
  • данная страница не принадлежит ни одному сайту
  • в тоже время она принадлежит какому-либо модулю
  • имеет строго определённый административный интерфейс
  • все параметры локализации данной страницы зависят от выбранного текущего языка
  • на этой странице используется дополнительная проверка прав, задаваемых в настройках соответствующего модуля
Публичная часть В общем случае, под данным термином понимается множество скриптов у которых подключен пролог и эпилог одного из шаблонов сайта. Их подключение подразумевает:
  • данная страница принадлежит какому либо сайту
  • имеет интерфейс текущего шаблона сайта
  • все параметры локализации данной страницы зависят от текущего сайта
Режим редактирования сайта | Режим, при котором текущая страница публичного раздела отображается в особом виде: выделены используемые компоненты, включаемые области, редактируемые области и т.д. Каждая такая область имеет набор кнопок для быстрого перехода к редактированию данного элемента страницы.
Индексная страница (файл) Это имя файла который будет использован веб-сервером в случае если запрашиваемый URL заканчивается на слэш и не содержит в себе имени файла. Порядок в котором будут искаться индексные страницы для различных веб-серверов задаются по разному, например:
  • Apache - в файле httpd.conf, параметр DirectoryIndex
  • IIS - в свойствах сайта, закладка "Documents" -> "Enable default content page"
К сожалению в PHP значение данного параметра недоступно, поэтому для определения индексной страницы в коде необходимо пользоваться функцией GetDirIndex.
Бюджет пользователя Синонимами данного термина можно считать "регистрация пользователя", "логин пользователя". Это запись в базе данных содержащая параметры зарегистрированного пользователя с такими обязательными полями как:
  • логин
  • пароль
  • E-Mail
А также ряд дополнительных полей содержащих личную информацию о пользователе, информацию по его работе, административные заметки.
Мета-тэг | Мета-тэг это один из элементов HTML позволяющий задать информацию о странице. Указать например, кодировку страницы, ее ключевые слова, автора, задать краткое описание страницы. Как правило содержимое мета-тэгов используется в служебных целях, например, роботами поисковых систем индексирующих сайт. Мета-тэг задается внутри тэга <head>.
Локализация | Подразумевает представление информации в переводе на соответстсвующий язык, в соответстсвующей кодировке данного языка и с использованием соответстсвующих форматов представления данных, характерных для этого языка (например, дата, время, денежных единицы, числа и т.д.).
Хост | В применении к функциям главного модуля, под данным термином понимается доменное имя или IP адрес посредством которого можно обратиться к тому или иному сайту.
Доменное имя (домен) Строго говоря, это одно из полей DNS таблицы (domain name service) содержащее в себе строго структурированное имя интернет сайта, заданное по определённым правилам. Основная задача DNS таблицы - это ассоциация доменных имен с IP адресами сайтов.
Пример доменного имени: www.bitrixsoft.ru
IP адрес Это "имя" компьютера в сети заданное по правилам протоколов TCP/IP. IP адрес состоит из четырех октетов часть из которых идентифицирует подсеть в которой находиться компьютер, а часть - непосредственно этот компьютер в рамках соответствующей подсети.
Пример IP адреса: 198.63.210.79 (этому адресу в DNS таблице соответствует доменное имя - www.bitrixsoft.ru)
Accept-Language Набор языков установленных в браузере посетителя сайта.
К примеру для MS Internet Explorer их можно выставить в меню "Tools" -> "Internet Options" -> "General" -> "Languages".
Для Mozilla Firefox: "Инструменты" -> "Настройки" -> "Основное" -> "Языки".
Время в Unix-формате | Количество секунд, прошедшее с 1 января 1970 года, с точностью до микросекунды. На сегодняшний день время в Unix-формате может фиксироваться только до 2038 года.
Права в Unix системах В Unix-подобных операционных системах (являющихся доминирующими на сегодняшний день для интернет серверов) поддерживаются три вида прав - чтение, запись и выполнение, которые присваиваются каждому файлу или директории. Права эти повторяются три раза: для владельца файла, для группы пользователей, к которой владелец принадлежит, и для всех остальных пользователей. Как правило права указываются в числовом формате:
  • 4 - чтение
  • 2 - запись
  • 1 - выполнение
Сумма этих чисел дает окончательный набор прав, например, 6 - это чтение и запись, но без выполнения, 7 - все права, 5 - чтение и выполнение.
Таким образом, например, право 764 будет означать: 7 - все права для владельца файла, 6 - чтение и запись для группы пользователей, к которой принадлежит владелец файла и 4 - чтение для всех остальных пользователей.
В PHP все права задаются в виде восьмиричных чисел, поэтому их надо задавать с обязательным указанием префикса - 0. Пример: 0755.
Путь относительно корня Путь к файлу начинающийся от каталога указанного в параметре DocumentRoot в настройках веб-сервера, заданный по правилам формирования URL-адресов.

Пример: /ru/about/index.php
Полный путь Включает в себя протокол, домен, порт и путь относительно корня к странице (каталогу).

Пример: http://www.bitrixsoft.ru/ru/about/index.php
Абсолютный путь | Абсолютный путь к файлу включает в себя DocumentRoot и путь относительно корня.
DocumentRoot Путь к корню сайта в файловой системе сервера. Задается в настройках веб-сервера, например:
  • для Apache - в файле httpd.conf, параметр DocumentRoot;
  • для IIS - в свойствах сайта, закладка "Home Directory" -> "Local Path".
Сабмит | Отправка данных HTML формы на сервер.
Сессия | Под данным термином понимается сессия PHP. Сессия может открываться в момент захода на сайт и закрывается при закрытии окна браузера. Также новая сессия открывается при авторизации пользователя, если закончить сеанс авторизации (разлогиниться) - сессия закрывается. Синонимом термина сессия можно считать один "заход на сайт".
HTML-безопасный вид Как правило данный термин применяют к тексту в котором произведены следующие замены:
Исходное | Результат
< | &lt;
> | &gt;
" | &quot;
& | &amp;

Подобные замены позволяют выводить текст внутри HTML кода, не опасаясь, что он будет интерпретирован браузером как часть этого HTML кода.
Связывание переменных | В применении к SQL-запросам для Oracle версии, под данным термином подразумевается связывание имен переменных (либо полей таблицы) с их значениями. Как правило подобная технология используется для полей типа BLOB, CLOB, LONG и т.п. предназначенных для хранения больших объемов данных.
Дамп В применении к базе данных, под данным термином подразумевается выгрузка содержимого и возможно структуры таблиц в файл в определённом формате, для их возможной дальнейшей загрузки обратно в данную, либо любую другую базу. Для каждой базы данных существуют свои утилиты позволяющие сделать дамп, например, для MySQL утилита mysqldump позволяет выгрузить в формате обычных SQL запросов, для Oracle утилита exp позволяет выгрузить в своем внутреннем формате.
В применении к переменным, дамп подразумевает отображение структуры и содержимого переменной в текстовом виде.
cron (крон) | В Unix-подобных операционных системах утилита cron позволяет организовать запуск скриптов по четко указанному расписанию.
Буферизация | Под термином "буферизация" в PHP понимается такой режим при котором весь исходящий поток данных из PHP скрипта (например, HTML код) запоминается предварительно в памяти и не отдается в "поток", т.е. не отсылается браузеру пользователя. Буферизацию в PHP можно включить с помощью функции ob_start. В дальнейшем буферизацию можно отключить, например, с использованием функции ob_end_flush, при этом все накопленные данные будут отосланы браузеру. Буферизация позволяет произвольно манипулировать исходящим потоком данных, на этом принципе основана технология отложенных функций.
Постоянное соединение (persistent) | При создании соединения с базой в памяти создаётся дескриптор данного соединения. Если соединение обычное, то после отработки скрипта это дескриптор удаляется, если соединение "постоянное" он остается и может быть использован другими процессами при необходимости. Достоинством "постоянного" соединения является то, что, как правило, времени на него требуется меньше, но в то же время есть недостаток - количество открытых "постоянных" соединений ограничивается в настройках базы данных и при превышении этого лимита посетитель не сможет зайти на сайт пока не освободятся новые соединения.
Почтовое событие Это почтовое сообщение, имеющее свой тип и отправляемое по соответствующему почтовому шаблону. Почтовое событие инициализирует поля типа почтового события конкретными значениями. Порядок расположения этих полей в письме, а также текст письма определяется почтовым шаблоном.
Для создания почтового события предназначен класс CEvent.

Используется в Почтовой системе.

Почтовый шаблон Определяет текст почтового сообщения, а также порядок расположения полей (placeholder'ов) заданных в типе почтового события.
Почтовые шаблоны доступны в административном меню "Настройки системы" -> "Почтовые шаблоны".
Для манипуляции почтовыми шаблонами предназначен класс CEventMessage.

Используется в Почтовой системе.

Тип почтового события Определяет набор специальных полей (placeholder'ов) которые могут быть использованы в почтовом шаблоне. В момент создания почтового события эти поля будут инициализированы конкретными значениями.
Для манипуляции типами почтовых событий предназначен класс CEventType.

Используется в Почтовой системе.


Структура файлов

1С-Битрикс: Управление сайтом Отправить отзыв

Структура файлов системы

Вся система целиком лежит в каталоге /bitrix/, в него входят следующие подкаталоги и файлы:

  • /admin/ - административные скрипты
  • /cache/ - файлы кэша
  • /help/ - система помощи
  • /images/ - изображения используемые как системой в целом, так и отдельными модулями
  • /modules/ - каталог с модулями системы, каждый подкаталог которого имеет свою строго определённую структуру
  • /php_interface/ - вспомогательный служебный каталог, в него входят следующие каталоги и файлы:
    • /include/ - подкаталог содержащий вспомогательные редактируемые скрипты различных модулей:
      • /catalog_export/ - скрипты экспорта принадлежащие модулю "Торговый каталог"
      • /statistic/ - обработчики CSV файлов содержащих события для загрузки в модуль "Статистика"
      • add_top_panel.php - файл подключаемый при выводе панели управления, в нем можно добавить произвольные кнопки для панели
    • dbconn.php - параметры соединения с базой
    • init.php - дополнительные параметры портала
    • after_connect.php - подключается сразу же после создания соединения с базой
    • dbconn_error.php - подключается при ошибке в момент создания соединения с базой
    • dbquery_error.php - подключается при ошибке в момент выполнения SQL запроса
    • /ID сайта/init.php - дополнительные параметры сайта; файл подключается сразу же после определения специальной константы c идентификатором сайта - SITE_ID
  • /templates/ - каталог с шаблонами сайтов и компонентами, в него входят следующие подкаталоги:
    • /.default/ - подкаталог с общими файлами используемыми тем или иным шаблоном по умолчанию, структура данного каталога аналогична нижеописанной структуре каталога содержащего конкретный шаблон
    • /ID шаблона сайта/ - подкаталог с шаблоном сайта, в него входят следующие подкаталоги и файлы:
      • /ID модуля/ - каталог с компонентами принадлежащими тому или иному модулю
      • /lang/ - языковые файлы принадлежащие как данному шаблону в целом, так и отдельным компонентам
      • /images/ - каталог с изображениями данного шаблона
      • /page_templates/ - каталог с шаблонами страниц и их описанием хранящимся в файле .content.php
      • header.php - пролог данного шаблона
      • footer.php - эпилог данного шаблона
      • styles.css - CSS стили шаблона
      • .тип меню.menu_template.php - шаблон вывода меню соответствующего типа
      • chain_template.php - шаблон по умолчанию для вывода навигационной цепочки
  • /tools/ - при инсталяции в этот каталог копируются дополнительные страницы, которые могут быть непосредственно использованы на любых страницах сайта: помощь, календарь, показ изображения и т.п.
  • /updates/ - каталог автоматически создаваемый системой обновлений
  • header.php - стандартный файл подключающий в свою очередь конкретный пролог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части
  • footer.php - стандартный файл подключающий в свою очередь конкретный эпилог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части
  • license_key.php - файл с лицензионным ключом
  • spread.php - файл используемый главным модулем для переноса куков посетителя на дополнительные домены различных сайтов
  • redirect.php - файл используемый модулем "Статистика" для фиксации событий перехода по ссылке
  • bx.php - файл по умолчанию используемый модулем "Реклама" для фиксации событий клика по баннеру
  • stop_redirect.php - файл используемый модулем "Статистика" для выдачи какого либо сообщения посетителю попавшему в стоп-лист
  • activity_limit.php - файл используемый модулем "Статистика" для выдачи сообщения роботу при превышении им лимита активности
  • rss.php - файл используемый модулем "Информационные блоки" для выдачи RSS контента

В зависимости от используемой редакции некоторые каталоги и файлы могут отсутствовать


Права доступа

В системе "Битрикс: Управление сайтом" поддерживается два уровня разграничения прав доступа:
  • Уровень 1. Доступ на файлы и каталоги.
  • Уровень 2. Права в рамках логики модуля.

Уровень 1. Доступ на файлы и каталоги.

Данный уровень прав проверяется в прологе, задается с помощью специального файла ".access.php", содержащего PHP массив следующего формата:

$PERM[файл/каталог][ID группы пользователей] = "ID права доступа";
Где
  • файл/каталог - имя файла или каталога для которых назначаются права доступа
  • ID группы пользователей - ID группы пользователей на которую распространяется данное право (допустимо также использование символа - "*", что означает - "для всех групп").
  • ID права доступа - на сегодняшний день поддерживаются следующие значения (в порядке возрастания):
    • D - запрещён (при обращении к файлу доступ будет всегда запрещён)
    • R - чтение (при обращении к файлу доступ будет разрешен)
    • U - документооборот (файл может быть отредактирован в режиме документооборота)
    • W - запись (файл может быть отредактирован непосредственно)
    • X - полный доступ (подразумевает право на "запись" и модификацию прав доступа)

В административной части сайта, при наличии модуля "Управление структурой" права доступа можно назначать в специально предназначенной для этого форме (пункт меню "Структура сайта" -> "Управление" -> "Доступ").

Если пользователь принадлежит нескольким группам, то берется максимальное право из всех прав доступа заданных для этих групп.

Если для текущего файла или каталога явно не задан уровень прав, то берется уровень прав заданный для вышележащих каталогов.

Пример:

Файл /dir/.access.php

<?
   $PERM["index.php"]["2"] = "R";
   $PERM["index.php"]["3"] = "D";
?>

При попытке открытия страницы /dir/index.php пользователь принадлежащий группе ID=3 будет иметь право доступа D (запрещено), пользователь из группы ID=2 будет иметь право R (чтение). Пользователь, принадлежащий обоим группам будет иметь максимальный уровень доступа - R (чтение).

Пример:

Файл /.access.php

<?
   $PERM["admin"]["*"] = "D";
   $PERM["admin"]["1"] = "R";
   $PERM["/"]["*"] = "R";
   $PERM["/"]["1"] = "W";
?>
Файл /admin/.access.php

<?
   $PERM["index.php"]["3"] = "R";
?>

При доступе к странице /admin/index.php пользователь принадлежащий группе ID=3 будет иметь доступ, а пользователю принадлежащему группе ID=2 будет в доступе отказано. При доступе к странице /index.php все посетители будут иметь доступ.

Уровень 2. Права в рамках логики модуля.

Если речь идет об обычных статичных публичных страницах, то к ним применяется только уровень 1 доступа на файлы и каталоги.

Если пользователь имеет на файл как минимум право R ("чтение") и если данный файл является функциональной частью того или иного модуля, то проверяется 2-ой уровень прав задаваемый в настройках соответствующего модуля.

Пример:
При заходе на страницу "Список обращений" в техподдержке, администратор видит все обращения, сотрудник техподдержки - только те за которые ответственнен, а обычный пользователь - только свои обращения. Так работает право в рамках логики модуля "Техподдержка".

На сегодняшний день используются две методологии разграничения прав доступа 2-го уровня:

  • права
  • роли

Отличие их заключается в том, что если пользователь обладает несколькими правами, то выбирается максимальное. Если же пользователь обладает несколькими ролями, то он соответственно будет обладать суммарными возможностями этих ролей.

Роли сейчас поддерживаются в двух модулях: "Техподдержка" и "Реклама". Во всех остальных модулях и везде используются права.

Пример:
  • Права. Если вы принадлежите группам для которых в модуле "Статистика" заданы права "Полный административный доступ" и например, "Просмотр статистики без финансовых показателей", то вы будете обладать максимальным правом - "Полный административный доступ".
  • Роли. Если вы принадлежите к группам для которых в модуле "Техподдержка" заданы роли "Клиент техподдержки" и "Демо-доступ", то вы одновременно будете обладать возможностями этих двух ролей. Т.е. вы сможете видеть все обращения в режиме демо-доступа и одновременно с этим можете создавать свои обращения как клиент техподдержки.


Константы

1С-Битрикс: Управление сайтом Отправить отзыв

Специальные константы

  • SITE_ID
  • SITE_DIR
  • SITE_SERVER_NAME
  • 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
  • NOT_CHECK_PERMISSIONS
  • ONLY_EMAIL
  • BX_CRONTAB
  • BX_FILE_PERMISSIONS
  • BX_DIR_PERMISSIONS
  • SM_SAFE_MODE
  • DIRECTORY_INDEX
  • MYSQL_TABLE_TYPE
  • DBPersistent
  • BX_VALID_FILENAME_SYMBOLS
Имя константы | Тип | Описание
SITE_ID А
Т
И 		Идентификатор текущего сайта.
SITE_DIR | А | Поле "Папка сайта" в настройках сайта. Как правило используется в случае организации многосайтовости по способу 1.
SITE_SERVER_NAME | А | Поле "URL сервера" в настройках текущего сайта.
SITE_CHARSET | А | Поле "Кодировка" в настройках текущего сайта.
FORMAT_DATE | А | Для публичной части, в данной константе хранится формат даты из настроек текущего сайта. Для административной части - формат даты текущего языка.
FORMAT_DATETIME | А | Для публичной части, в данной константе хранится формат времени из настроек текущего сайта. Для административной части - формат времени текущего языка.
LANGUAGE_ID | А | Если это публичная часть, то в данной константе храниться поле "Язык" из настроек текущего сайта, если административная часть, то в данной константе храниться идентификатор текущего языка.
LANG_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 Т
И
С 		Инициализация этой константы каким-либо значением приведет к запрету следующих действий модуля "Статистика", выполняемых ежедневно при помощи технологии агентов:
  • перевод на новый день;
  • очистка устаревших данных статистики;
  • отсылка ежедневного статистического отчета.
Пример:
define("NO_AGENT_STATISTIC", true);
NOT_CHECK_PERMISSIONS Т
И
С 		Если инициализировать данную константу значением "true" до подключения пролога, то это отключит проверку прав первого уровня.

Пример:
define("NOT_CHECK_PERMISSIONS", true);
ONLY_EMAIL Т
И
С 		Если на странице задана константа ONLY_EMAIL и email из настроек почтового шаблона с ее значением не совпадает, то письмо не отсылать. То есть отсылка письма будет происходить только в том случае если значение данной константы будет соответствовать адресу отправителя в настройках шаблона.

Пример:
define("ONLY_EMAIL", "admin@site.ru");
BX_CRONTAB Т
И
С 		Если данная константа инициализирована значением "true", то функция проверки агентов на запуск будет отбирать только те агенты для которых не критично количество их запусков (т.е. при добавлении этого агента параметр period=N). Как правило данная константа используется для организации запуска агентов на cron'е.

Пример:
define("NO_KEEP_STATISTIC", 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_VALID_FILENAME_SYMBOLS Т
А
С 		Определяет множество допустимых символов в имени загружаемых файлов в формате регулярных вырежений. Если установлена опция save_original_file_name (Сохранять исходные имена загружаемых файлов) и файл содержит недопустимые символы, то в зависимости от настроек опции convert_original_file_name (Автоматически заменять невалидные символы в именах загружаемых файлов) название файла будет переименовано или при загрузке файла будет выводится ошибка. По умолчанию: \x20-\x21\x2B-\x2E\x30-\x39\x41-\x5A\x5F\x61-\x7A\x7B\x7C\x7E.

Обозначения типов констант:

  • А (авто) - константа инициализируется системой в прологе автоматически
  • Т (страница) - константу можно определить на любой публичной странице до подключения пролога
  • И (инициализация) - константу можно определить в одном из следующих файлов:
    • /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" или "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", то это отключает кэширование на текущей странице.

Только для пользователей авторизованных с административными правами.

Пример:
http://www.site.ru/?clear_cache=Y
clear_cache_session Т Если значение данной переменной - "Y", то это отключает кэширование в рамках сессии. Для включения кэширования - достаточно один раз присвоить этой переменной значение "N".

Только для пользователей авторизованных с административными правами.

Пример:
http://site.ru/?clear_cache_session=Y
http://site.ru/?clear_cache_session=N
compress Т Если значение данной переменной - "Y", то внизу страницы в рамках сессии будет выведена рамка показывающая информацию по сжатию данной страницы модулем "Компрессия": размер страницы до сжатия, размер страницы после сжатия, коэфициент сжатия. Для отключения вывода данной информации - достаточно один раз присвоить этой переменной значение "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", то это позволит отключить отработку агентов статистики в рамках сессии. Для включения отработки агентов в данной сесси - достаточно один раз присвоить этой переменной значение "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 - дополнительные параметры сайта
  • Т (страница) - переменную можно задать в параметрах страницы при открытии ее в браузере


Работа с датой и временем

Для работы с датой и временем используются следующие функции:

  • CDatabase::CharToDateFunction
  • CDatabase::DateToCharFunction
  • CDatabase::CurrentDateFunction
  • CDatabase::CurrentTimeFunction
  • CDataBase::DateFormatToPHP
  • CDataBase::FormatDate
  • ConvertDateTime
  • MakeTimeStamp
  • ConvertTimeStamp
  • CDataBase::IsDate
  • CDataBase::CompareDates
  • AddToTimeStamp
  • ParseDateTime
  • getmicrotime

При задании формата даты и времени используются следующие обозначения :

  • YYYY - год
  • MM - месяц
  • DD - день
  • HH - часы
  • MI - минуты
  • SS - секунды

Методы используемые в 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::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
?>


Навигационная цепочка

В этом разделе

  • Что это такое
  • Как задается
  • Вывод
  • Внешний вид
  • Примеры шаблонов
  • Дополнительные ссылки
    •

    Что это такое

    Навигационная цепочка - это элемент дизайна, предназначенный в первую очередь для упрощения навигации по сайту. Наглядно показывает глубину вложенности текущего раздела сайта:

    Как задается

    Навигационная цепочка состоит из заголовков разделов сайта с соответствующими ссылками на них. Заголовок раздела сайта задается в служебном файле .section.php, который находится в соответствующем разделе. В данном файле могут быть использованы следующие переменные:

    • $sSectionName - заголовок раздела
    • $sChainTemplate - абсолютный путь к шаблону навигационной цепочки (данная переменная используется крайне редко)

    Пример файла .section.php:

<?
$sSectionName = "О компании";
$sChainTemplate = $_SERVER["DOCUMENT_ROOT"]."/ru/about/chain_template.php";
?>

    Визуально задать заголовок раздела сайта вы можете с помощью модуля "Управление структурой" в административном меню "Структура сайта" -> "Управление", зайдя в свойства того или иного раздела. Либо из публичной части сайта воспользовавшись панелью управления и кнопкой "редактирование свойств каталога".

    Помимо заголовков разделов сайта, добавляемых автоматически в навигационную цепочку, вы можете добавить произвольный пункт с помощью функции CMain::AddChainItem.

    Вывод цепочки навигации

    Вывод навигационной цепочки осуществляется как правило в визуальной части пролога с помощью функции CMain::ShowNavChain, использующей технологию отложенных функций.

    Внешний вид

    Для определения внешнего вида навигационной цепочки используется специальный PHP файл называемый "шаблоном навигационной цепочки". Путь к этому файлу вы можете задать явно при выводе навигационной цепочки, либо будет использован следующий алгоритм его поиска:

    1. Сбор пунктов навигационной цепочки ведется начиная от корня сайта и заканчивая текущим разделом. Для каждого очередного раздела подключается файл .section.php. Если в данном файле будет инициализирована переменная $sChainTemplate, то ее значение будет использовано в качестве пути к шаблону навигационной цепочки. В процессе перебора разделов, каждое последующее значение этой переменной перетирает предыдущее, таким образом, чем "глубже" раздел в иерархии разделов сайта, тем "важнее" его переменная $sChainTemplate.
    2. Если после сбора пунктов навигационной цепочки путь к шаблону не определён, то проверяется существование файла:
      /bitrix/templates/ID текущего шаблона сайта/chain_template.php
      Если такой файл существует, то путь к нему и принимается за путь к шаблону навигационной цепочки, в противном случае используется значение по умолчанию:
      /bitrix/templates/.default/chain_template.php

    Шаблон навигационной цепочки при ее выводе будет подключаться каждый раз на очередной пункте цепочки. Поэтому основная его задача - обеспечить внешний вид только одного пункта цепочки.

    Основными переменными используемыми в шаблоне являются:

    • $sChainProlog - HTML код выводимый перед навигационной цепочкой
    • $sChainBody - HTML код определяющий внешний вид одного пункта навигационной цепочки
    • $sChainEpilog - HTML код выводимый после навигационной цепочки
    • $strChain - HTML код всей навигационной цепочки собранный к моменту подключения шаблона
    Вышепредставленные переменные будут хранить в себе HTML код который определит внешний вид навигационной цепочки.

    Также в шаблоне будут доступны следующие дополнительные переменные:

    • $TITLE - заголовок очередного пункта навигационной цепочки
    • $LINK - ссылка на очередном пункте навигационной цепочки
    • $arCHAIN - копия массива элементов навигационной цепочки
    • $arCHAIN_LINK - ссылка на массив элементов навигационной цепочки
    • $ITEM_COUNT - количество элементов массива навигационной цепочки
    • $ITEM_INDEX - порядковый номр очередного пункта навигационной цепочки

    Примеры шаблонов

<?
// простейший шаблон выводящий стандартную цепочку

// HTML код выводимый перед навигационной цепочкой
$sChainProlog = "";

// HTML код определяющий внешний вид одного пункта навигационной цепочки
$sChainBody = "";
if (strlen($LINK)>0)
    $sChainBody .= "<a href=\"".$LINK."\" class='chainitem'>".$TITLE."</a>";
else
    $sChainBody .= "<font class='chainitem'>".$TITLE."</font>";

// HTML код выводимый после навигационной цепочки
$sChainEpilog = "";
?>

<?
// шаблон выводящий инвертированную навигационную цепочку без ссылок
// может быть использован например, в тэге <title>
// для повышения качества индексации сайта поисковыми системами

$sChainEpilog = "";

// если массив пунктов цепочки определён то
if (is_array($arCHAIN))
{
    // пройдемся по пунктам цепочки
    reset($arCHAIN);
    foreach($arCHAIN as $item)
    {
        // если это первый пункт то
        if (strlen($sChainEpilog)<=0)
            $sChainEpilog = $item["TITLE"];
        else // иначе
            $sChainEpilog = $item["TITLE"]." :: ".$sChainEpilog;
    }
}
?>

    Дополнительные ссылки

    • CMain::ShowNavChain
    • CMain::AddChainItem
    • CMain::GetNavChain


Меню

1С-Битрикс: Управление сайтом Отправить отзыв

Меню. Версия продукта 5.х

В этом разделе

  • Что это такое
  • Файлы меню
  • Примеры файлов меню
  • Вывод меню
  • Примеры вывода меню
  • Шаблон меню
  • Активность пункта меню
  • Примеры шаблонов меню
  • Дополнительные ссылки
    •

    Что это такое

    Меню - это элемент дизайна, являющийся основным средством навигации по сайту. Меню может быть различных типов, при этом каждый тип выводится в своем месте в дизайне сайта:

    Файлы меню

    Меню привязывается к разделу сайта с помощью служебного PHP файла с именем .тип меню.menu.php. Данный файл располагается в соответствующем разделе сайта. В нем могут использоваться следующие стандартные переменные:

    • $sMenuTemplate - абсолютный путь к шаблону меню (данная переменная используется крайне редко)
    • $aMenuLinks - массив, каждый элемент которого описывает очередной пункт меню. Структура данного массива:

      Array
(
    [0] => пункт меню 1
        Array
            (
                [0] => заголовок пункта меню
                [1] => ссылка на пункте меню
                [2] => массив дополнительных ссылок для подсветки пункта меню:
                    Array
                        (
                            [0] => ссылка 1
                            [1] => ссылка 2
                            ...
                         )
                [3] => массив дополнительных переменных передаваемых в шаблон меню:
                    Array
                        (
                            [имя переменной 1] => значение переменной 1
                            [имя переменной 2] => значение переменной 2
                            ...
                         )
                [4] => условие, при котором пункт меню появляется
                       это PHP выражение, которое должно вернуть "true"
            )
    [1] => пункт меню 2
    [2] => пункт меню 3
    ...
)

    Визуально управлять пунктами меню вы можете с помощью модуля "Управление структурой". В административном меню "Структура сайта" -> "Управление" необходимо будет выбрать нужный вам каталог, затем кликнуть по ссылке "Добавить меню" и выбрать нужный вам тип меню, при этом вам будет доступно два режима модификации меню: "упрощённый" и "расширенный".

    Данный процесс можно упростить воспользовавшись в публичной части сайта панелью управления. Необходимо будет кликнуть на кнопку "показать включаемые области", а затем воспользоваться кнопкой "редактировать пункты меню" рядом с интересующим вас меню.

    Иногда возникает задача когда нужно задать пункты меню программно (например, когда вы хотите вывести в меню разделы каталога хранящегося в модуле "Информационные блоки"). Для этого необходимо использовать служебные файлы с именем .тип меню.menu_ext.php. Эти файлы необходимо располагать в интересующем вас разделе сайта. Основная задача подобных файлов - это манипуляция массивом $aMenuLinks. Данные файлы не редактируются визуально в модуле "Управление структурой", поэтому они не смогут быть случайно перетерты при визуальном редактировании меню.

    Если вы планируете использовать файлы .тип меню.menu_ext.php, то при выводе меню с помощью функций CMain::GetMenuHtml, CMain::GetMenuHtmlEx, обратите внимание на необходимость установки второго параметра этих функцией в значение "true" (по умолчанию этот параметр равен "false").

    Если в текущем разделе сайта меню явно не задано (т.е. в этом каталоге отсутствует файл меню), то будет использовано меню первого вышестоящего раздела в котором это меню будет обнаружено, т.е. меню является иерархически наследуемым.
    К примеру посетитель находится в разделе /ru/company/about/. Для показа меню типа left файл меню будет искаться в следующей последовательности:
    1. /ru/company/about/.left.menu.php
    2. /ru/company/.left.menu.php
    3. /.left.menu.php
    Если в одном из каталогов будет найдено меню, то поиск останавливается и в последующих каталогах уже не ищется.

    Примеры файлов меню

<?
// пример файла .left.menu.php

$aMenuLinks = Array(
    Array(
        "Телефоны",
        "/catalog/phone/",
        Array("/catalog/phone/index.php", "/catalog/phone/compare.php"),
        Array(),
        ""
    ),
    Array(
        "Аксессуары",
        "/catalog/accessory/",
        Array("/catalog/accessory/index.php"),
        Array(),
        ""
    ),
    Array(
        "Только для администраторов",
        "/catalog/admin/",
        Array("/catalog/admin/index.php", "/catalog/admin/edit.php"),
        Array("PARAM_1" => "Y"),
        "\$GLOBALS["USER"]->IsAdmin()"
    )
);
?>

<?
// пример файла .left.menu_ext.php

if (CModule::IncludeModule("iblock")):

    $CACHE_TIME = "0";
    $IBLOCK_TYPE = "catalog";   // тип инфо-блока
    $IBLOCK_ID = 22;            // ID инфо-блока
    $CACHE_TIME = 86400;        // время кэширования

    $aMenuLinksNew = array();
    $ROOT_SECTION_ID = 0;
    $CACHE_ID = __FILE__.$IBLOCK_ID;
    $obMenuCache = new CPHPCache;
    if($_GET["SECTION_ID"]>0)
        $CACHE_ADD .= "|SECTION_ID=".$_GET["SECTION_ID"];
    elseif($_GET["ID"]>0)
        $CACHE_ADD .= "|ELEMENT_ID=".$_GET["ID"];
    else
        $CACHE_ADD = "";

    // если массив закэширован то
    if($obMenuCache->InitCache($CACHE_TIME, $CACHE_ID.$CACHE_ADD, "/"))
    {
        // берем данные из кэша
        $arVars = $obMenuCache->GetVars();
        $aMenuLinksNew = $arVars["aMenuLinksNew"];
    }
    else
    {
        $CACHE_ADD = "";
        if($_GET["SECTION_ID"]>0)
        {
            $res = CIBlockSection::GetNavChain($IBLOCK_ID, $_GET["SECTION_ID"]);
            if($ar_res = $res->Fetch())
            {
                $ROOT_SECTION_ID = $ar_res["ID"];
                $CACHE_ADD = "|SECTION_ID=".$_GET["SECTION_ID"];
            }
        }
        elseif($_GET["ID"]>0)
        {
            $res = CIBlockElement::GetElementGroups($_GET["ID"]);
            if($ar_res = $res->Fetch())
            {
                $CACHE_ADD = "|ELEMENT_ID=".$_GET["ID"];
                $res = CIBlockSection::GetNavChain(
                    $IBLOCK_ID,
                    $ar_res["IBLOCK_SECTION_ID"]
                    );
                $ar_res = $res->Fetch();
                $ROOT_SECTION_ID = $ar_res["ID"];
            }
        }

        // иначе собираем разделы
        $rsSections = GetIBlockSectionList(
            $IBLOCK_ID,
            0,
            array("SORT" => "ASC", "ID" => "ASC"),
            false,
            array("ACTIVE"=>"Y")
            );
        while ($arSection = $rsSections->Fetch())
        {
            $aMenuLinksNew[] = array(
                $arSection["NAME"],
                SITE_DIR."catalog/accessory/section.php?SECTION_ID=".$arSection["ID"],
                ($ROOT_SECTION_ID==$arSection["ID"] ? Array("/") : Array())
            );
        }
    }
    // сохраняем данные в кэше
    if($obMenuCache->StartDataCache($CACHE_TIME, $CACHE_ID.$CACHE_ADD, "/"))
    {
        $obMenuCache->EndDataCache(Array("aMenuLinksNew" => $aMenuLinksNew));
    }

    $aMenuLinks = array_merge($aMenuLinksNew, $aMenuLinks);
endif;
?>

    Вывод меню

    Вывод меню осуществляется в визуальной части пролога, либо эпилога. Существует два принципиально разных способа вывода меню:

    • Способ 1. Шаблон меню подключается только один раз для всех пунктов меню. Для вывода меню этим способом используются функции:
      • CMain::GetMenuHtmlEx
      • CMenu::GetMenuHtmlEx (для использования этой функции необходимо предварительно инициализировать соответстсвующий объект класса CMenu)
    • Способ 2. Шаблон меню подключается на каждый пункт меню. Для вывода меню этим способом используются функции:
      • CMain::GetMenuHtml
      • CMenu::GetMenuHtml (для использования этой функции необходимо предварительно инициализировать соответстсвующий объект класса CMenu)

    Примеры вывода меню

<?
// выведем меню типа "top"
echo $APPLICATION->GetMenuHtmlEx("top");
?>

<?
// выведем меню типа "left" с поддержкой файлов .тип меню.menu_ext.php
echo $APPLICATION->GetMenuHtml("left", true);
?>

<?
// выводим меню типа "left"
// с поддержкой файлов .тип меню.menu_ext.php
// с четким указанием шаблона и
// каталога для которого будет построено меню

$obMenu = $APPLICATION->GetMenu(
    "left",
    true,
    "/bitrix/php_interface/".SITE_ID."/left.menu_template.php",
    SITE_DIR
    );
echo $obMenu->GetMenuHtml();
?>

    Шаблон меню

    Внешний вид меню определяется шаблоном. Шаблон представляет из себя PHP файл. Путь к этому файлу вы можете задать явно в момент вывода меню, либо будет использован следующий алгоритм его поиска:

    1. Как было упомянуто выше, меню является иерархически наследуемым. Т.е. если в текущем разделе сайта меню явно не задано (т.е. в этом каталоге отсутствует файл меню), то будет использовано меню первого вышестоящего раздела в котором это меню будет обнаружено.

      К примеру посетитель находится в разделе /ru/company/about/. Для показа меню типа left файл меню будет искаться в следующей последовательности:
      1. /ru/company/about/.left.menu.php
      2. /ru/company/.left.menu.php
      3. /.left.menu.php
      Если в одном из каталогов будет найдено меню, то поиск останавливается и в последующих каталогах уже не ищется.

      В каждом из этих файлов может быть инициализирована переменная $sMenuTemplate предназначенная для хранения пути к шаблону меню. Если файл, путь к которому указан в этой переменной, физически существует, то он и будет принят в качестве шаблона меню.

    2. Если в процессе поиска файла меню путь к шаблону меню не был определён, то проверяется существование файла:
      /bitrix/templates/ID текущего шаблона сайта/.тип меню.menu.php
      Если такой файл существует, то путь к нему и принимается за путь к шаблону меню, в противном случае используется значение по умолчанию:
      /bitrix/templates/.default/.тип меню.menu.php

    В зависимости от того какой способ вывода меню используется, в шаблоне будут доступны различные наборы переменных:

    • При использовании способа 1 в шаблоне доступны:
      • $sMenu - HTML определяющий внешний вид всего меню
      • $arMENU_LINK - ссылка на исходный массив пунктов меню (синоним - $MENU_ITEMS)
      • $arMENU - копия массива пунктов меню, в котором каждый пункт меню в свою очередь представляет из себя массив, использующий следующие ключи:
        • TEXT - заголовок пункта меню
        • LINK - ссылка на пункте меню
        • SELECTED - активен ли пункт меню в данный момент, возможны следующие значения:
          • true - пункт меню выбран
          • false - пункт меню не выбран
        • PERMISSION - право доступа на страницу указанную в LINK для текущего пользователя, возможны следующие значения:
          • D - доступ запрещён
          • R - чтение (право просмотра содержимого файла)
          • U - документооборот (право на редактирование файла в режиме документооборота)
          • W - запись (право на прямое редактирование)
          • X - полный доступ (право на прямое редактирование файла и право на изменение прав доступа на данный файл)
        • ADDITIONAL_LINKS - массив дополнительных ссылок для подсветки меню
        • ITEM_TYPE - флаг указывающий на тип ссылки указанной в LINK, возможны следующие значения:
          • D - каталог (LINK заканчивается на "/")
          • P - страница
          • U - страница с параметрами
        • ITEM_INDEX - порядковый номер пункта меню
        • PARAMS - ассоциативный массив параметров пунктов меню
    • При использовании способа 2 в шаблоне доступны:
      • $sMenuProlog - HTML который будет добавлен перед меню
      • $sMenuEpilog - HTML который будет добавлен после меню
      • $sMenuBody - HTML определяющий внешний вид одного пункта меню
      • $arMENU_LINK - ссылка на исходный массив пунктов меню (синоним - $MENU_ITEMS)
      • $arMENU - копия массива пунктов меню (структура данного массива соответстсвует вышеописанной)
      • $TEXT - заголовок пункта меню
      • $LINK - ссылка на пункте меню
      • $SELECTED - активен ли пункт меню в данный момент, возможны следующие значения:
        • true - пункт меню выбран
        • false - пункт меню не выбран
      • $PERMISSION - право доступа на страницу указанную в $LINK для текущего пользователя, возможны следующие значения:
        • D - доступ запрещён
        • R - чтение (право просмотра содержимого файла)
        • U - документооборот (право на редактирование файла в режиме документооборота)
        • W - запись (право на прямое редактирование)
        • X - полный доступ (право на прямое редактирование файла и право на изменение прав доступа на данный файл)
      • $ADDITIONAL_LINKS - массив дополнительных ссылок для подсветки меню
      • $ITEM_TYPE - флаг указывающий на тип ссылки указанной в $LINK, возможны следующие значения:
        • D - каталог ($LINK заканчивается на "/")
        • P - страница
        • U - страница с параметрами
      • $ITEM_INDEX - порядковый номер пункта меню
      • $PARAMS - ассоциативный массив параметров пунктов меню

    Активность пункта меню

    На основе ссылки на пункте меню ($LINK) и массива дополнительных ссылок ($ADDITIONAL_LINKS) будет определяться какой пункт меню активен (выделен, подсвечен). Если пункт меню активен, то в шаблоне меню будет доступна переменная $SELECTED=true.

    С точки зрения определения активности, ссылки на пункте меню можно условно разделить на следующие типы:

    • Ссылка на каталог ($ITEM_TYPE=D). Такие ссылки всегда заканчивается символом "/". Ссылки этого типа будут подсвечены если посетитель находится внутри каталога на любой странице, с любыми параметрами.
    • Ссылка на страницу ($ITEM_TYPE=P). Такие ссылки всегда заканчиваются именем файла страницы. Эти ссылки подсвечиваются когда посетитель находится на данной странице с любыми параметрами.
    • Ссылка на страницу с параметрами ($ITEM_TYPE=L). Такие ссылки заканчиваются именем файла страницы, знаком "?" и парами переменная=значение разделенные через знак &. Эти ссылки подсвечиваются только, когда посетитель находится на данной странице и определённые в параметрах переменные имеют соответствующее значение (порядок не имеет значения).

    Ниже представлен пример активности пункта меню (символ "X") при различных комбинациях текущей страницы и ссылки на пункте меню:

    Текущая страница | Ссылка на пункте меню
 | /dir/ | /dir/index.php | /dir/index.php?par1=val1
/dir/page.php | X |  |
/dir/index.php | X | X |
/dir/index.php?par1=val1 | X | X | X
/dir/index.php?par1=val2 | X | X |

    Ссылка на пункте меню может быть как абсолютная, так и относительная. Если ссылка относительная, то она всегда считается относительно того каталога в которой находится данный файл меню.

    Например, при следующих условиях:

    • файл меню находится в каталоге /dir/ и один из пунктов меню определён относительной ссылкой index.php
    • пользователь находится на странице /dir/subdir/index.php
    • при этом, в подкаталоге /dir/subdir/ нет своего файла меню, иначе отображался бы он (см. подробнее "Файлы меню")
    При этих уловиях данный пункт меню не будет подсвечиваться, т.к. он будет предварительно переведен в абсолютный вид - /dir/index.php относительно того каталога где находится содержащий его файл меню. Соответственно и ссылка в меню будет указывать на страницу по этому абсолютному меню.

    Примеры шаблонов меню

    Файл шаблона меню .left.menu_template.php используемого при выводе меню по способу 1 с использованием функции CMain::GetMenuHtmlEx:

<?
if (is_array($arMENU) && count($arMENU)>0)
{
    $sMenu = "<table border='0' cellpadding='0' cellspacing='0' width='100%'>";

    foreach($arMENU as $arMENU_ITEM)
    {
        extract($arMENU_ITEM);

        // если ссылка на пункте меню указывает на каталог то
        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'></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'></td>";
            }
        }

        // если пункт меню активен то
        if ($SELECTED)
            $strtext = "leftmenuact";
        else
            $strtext = "leftmenu";

        // если параметр SEPARATOR=Y, то
        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;'";

        // если есть доступ на страницу на которую указывает пункт меню то
        if ($PERMISSION > "D")
        {
            $sMenu .= '<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 // иначе
        {
            $sMenu .= '<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>';

        }
    }

    $sMenu .= '<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>';
}
?>

    Аналогичный файл шаблона меню .left.menu_template.php,
    но используемого при выводе меню по способу 2 с использованием функции CMain::GetMenuHtml:

<?
$sMenuProlog = "<table border='0' cellpadding='0' cellspacing='0' width='100%'>";

// если ссылка на пункте меню указывает на каталог то
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'></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'></td>";
    }
}

// если пункт меню активен то
if ($SELECTED)
    $strtext = "leftmenuact";
else
    $strtext = "leftmenu";

// если параметр SEPARATOR=Y, то
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;'";

// если есть доступ на страницу на которую указывает пункт меню то
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>';

}

$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>';
?>

    Для обоих вышепредставленных шаблонов результат вывода меню будет одинаковый:

    Дополнительные ссылки

    • CMain::GetMenuHtmlEx
    • CMain::GetMenuHtml
    • Класс CMenu
    • CMenu::GetMenuHtmlEx
    • CMenu::GetMenuHtml


Меню

1С-Битрикс: Управление сайтом Отправить отзыв

Меню. Версия продукта 6.х

В этом разделе

  • Что это такое
  • Файлы меню
  • Примеры файлов меню
  • Вывод меню
  • Примеры вывода меню
  • Шаблон меню
  • Пример шаблона меню
    •

    Что это такое

    Меню - это элемент дизайна, являющийся основным средством навигации по сайту. Меню может быть различных типов, при этом каждый тип выводится в своем месте в дизайне сайта:

    Файлы меню

    Меню привязывается к разделу сайта с помощью служебного PHP файла с именем .тип меню.menu.php. Данный файл располагается в соответствующем разделе сайта. В нем могут использоваться следующие стандартные переменные:

    • $sMenuTemplate - абсолютный путь к шаблону меню (данная переменная используется крайне редко)
    • $aMenuLinks - массив, каждый элемент которого описывает очередной пункт меню. Структура данного массива:

      Array
(
    [0] => пункт меню 1
        Array
            (
                [0] => заголовок пункта меню
                [1] => ссылка на пункте меню
                [2] => массив дополнительных ссылок для подсветки пункта меню:
                    Array
                        (
                            [0] => ссылка 1
                            [1] => ссылка 2
                            ...
                         )
                [3] => массив дополнительных переменных передаваемых в шаблон меню:
                    Array
                        (
                            [имя переменной 1] => значение переменной 1
                            [имя переменной 2] => значение переменной 2
                            ...
                         )
                [4] => условие, при котором пункт меню появляется
                       это PHP выражение, которое должно вернуть "true"
            )
    [1] => пункт меню 2
    [2] => пункт меню 3
    ...
)

    Визуально управлять пунктами меню вы можете с помощью модуля "Управление структурой".

    Для создания файла .тип меню.menu.php выполните следующие действия:

    • В административном разделе выберите пункт Контент -> Структура сайта -> Файлы и папки (либо название одного из сайтов системы).
    • Далее выберите нужный каталог и кликните по кнопке [image] контекстной панели.
    • В открывшейся форме можно выбрать тип меню, ввести пункты меню и установить другие параметры.
    • При этом вам будет доступно два режима модификации меню: "упрощённый" и "расширенный", переключение между которыми производится с помощью кнопок контекстной панели.

    Данный процесс можно упростить, воспользовавшись в публичной части сайта панелью управления.

    • Перейдите на закладку
    • затем воспользуйтесь кнопкой "редактировать пункты меню" рядом с интересующим вас меню:

    Иногда возникает задача, когда нужно задать пункты меню программно (например, когда вы хотите вывести в меню разделы каталога хранящегося в модуле "Информационные блоки"). Для этого необходимо использовать служебные файлы с именем .тип меню.menu_ext.php. Эти файлы необходимо располагать в том разделе сайта, где вы хотите вывести это меню. Основная задача подобных файлов - это манипуляция массивом $aMenuLinks. Данные файлы не редактируются визуально в модуле "Управление структурой", поэтому они не смогут быть случайно перетерты при визуальном редактировании меню. При создании этого файла используйте компонент 2.0 Пункты меню (bitrix:menu.sections) [image].

    Если в текущем разделе сайта меню явно не задано (т.е. в этом каталоге отсутствует файл меню), то будет использовано меню первого вышестоящего раздела в котором это меню будет обнаружено, т.е. меню является иерархически наследуемым.
    К примеру посетитель находится в разделе /ru/company/about/. Для показа меню типа left файл меню будет искаться в следующей последовательности:
    1. /ru/company/about/.left.menu.php
    2. /ru/company/.left.menu.php
    3. /.left.menu.php
    Если в одном из каталогов будет найдено меню, то поиск останавливается и в последующих каталогах уже не ищется.

    Примеры файлов меню

<?
// пример файла .left.menu.php

$aMenuLinks = Array(
  Array(
    "Каталог курсов",
    "index.php",
    Array(),
    Array(),
    ""
  ),

  Array(
    "Мои курсы",
    "mycourses.php",
    Array(),
    Array(),
    "\$GLOBALS['USER']->IsAuthorized()"
  ),

  Array(
    "Журнал обучения",
    "gradebook.php",
    Array(),
    Array(),
    "\$GLOBALS['USER']->IsAuthorized()"
  ),

  Array(
    "Анкета специалиста",
    "profile.php",
    Array(),
    Array(),
    "\$GLOBALS['USER']->IsAuthorized()"
  ),
);
?>

<?
// пример файла .left.menu_ext.php

if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

global $APPLICATION;

$aMenuLinksExt = $APPLICATION->IncludeComponent(
    "bitrix:menu.sections",
    "",
    Array(
        "ID" => $_REQUEST["ELEMENT_ID"],
        "IBLOCK_TYPE" => "books",
        "IBLOCK_ID" => "30",
        "SECTION_URL" => "/e-store/books/index.php?SECTION_ID=#ID#",
        "CACHE_TIME" => "3600"
    )
);

$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);

?>

    Вывод меню

    Вывод меню осуществляется в визуальной части пролога, либо эпилога. Для вывода меню используется компонент 2.0 Меню (bitrix:menu) [image].

    В настройках компонента указывается:

    • указывается шаблон компонента, определяющий внешний вид меню;
    • меню какого типа будет выводиться; указывается один из заданных в системе типов меню;
    • уровень вложенности меню;
    • тип меню для уровней ниже первого;
    • если требуется, устанавливаем опцию подключать файлы с именами вида .тип_меню.menu_ext.php.

    Примеры вызова меню

<?
// выведем меню типа "top"
$APPLICATION->IncludeComponent(
    "bitrix:menu",
    "horizontal_multilevel",
    Array(
        "ROOT_MENU_TYPE" => "top",
        "MAX_LEVEL" => "3",
        "CHILD_MENU_TYPE" => "left",
        "USE_EXT" => "Y"
    )
);
?>

<?
// выведем меню типа "left"
$APPLICATION->IncludeComponent(
    "bitrix:menu",
    ".default",
    Array(
        "ROOT_MENU_TYPE" => "left",
        "MAX_LEVEL" => "1",
        "CHILD_MENU_TYPE" => "left",
        "USE_EXT" => "Y"
    )
);?>

    Шаблон меню

    Внешний вид меню определяется шаблоном. Шаблон меню по структуре совпадает с шаблонами других компонентов 2.0. Общая информация по ним находится в разделах Шаблоны вывода и Шаблоны вывода компонента 2.0.

    Если шаблон компонента располагается в папке, то она может содержать целый набор подпапок и файлов: файл стилей, файл с Java-скриптами, файл, описывающий шаблон для редактора и т.д. Основным же среди них является файл, который и является собственно шаблоном - template.php. Расширение этого файла может быть другим (например, *.ext) и зависит от используемого движка шаблонизации. Здесь рассмотрим php шаблон.

    В php шаблоне для вывода меню используется массив $arItem - копия массива пунктов меню, в котором каждый пункт в свою очередь представляет собой массив, использующий следующие параметры:
    • TEXT - заголовок пункта меню;
    • LINK - ссылка на пункте меню;
    • SELECTED - активен ли пункт меню в данный момент, возможны следующие значения:
      • true - пункт меню выбран;
      • false - пункт меню не выбран;
    • PERMISSION - право доступа на страницу, указанную в LINK для текущего пользователя. Возможны следующие значения:
      • D - доступ запрещён;
      • R - чтение (право просмотра содержимого файла);
      • U - документооборот (право на редактирование файла в режиме документооборота);
      • W - запись (право на прямое редактирование);
      • X - полный доступ (право на прямое редактирование файла и право на изменение прав доступа на данный файл);
    • ADDITIONAL_LINKS - массив дополнительных ссылок для подсветки меню;
    • ITEM_TYPE - флаг, указывающий на тип ссылки, указанной в LINK, возможны следующие значения:
      • D - каталог (LINK заканчивается на "/");
      • P - страница;
      • U - страница с параметрами;
    • ITEM_INDEX - порядковый номер пункта меню;
    • PARAMS - ассоциативный массив параметров пунктов меню. Параметры задаются в расширенном режиме редактирования меню.

    Пример шаблона меню

    Приведем пример шаблона графического меню (на базе картинок). Адреса картинок хранятся в параметрах пункта меню, задаваемы в расширенном режиме редактирования меню.

<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?if (!empty($arResult)):?>
    <table cellpadding="2" cellspacing="2" width="100%">
    <?foreach($arResult as $arItem):?>
    <?if ($arItem["PERMISSION"] > "D"):?>
        <tr>
        <?if ($arItem["SELECTED"]):?>
            <td><a href="<?=$arItem["LINK"]?>"><img src="<?=$arItem[PARAMS][SRC2]?>"
            width="18" height="18" border="0"></a></td>
        <?else:?>
            <td><a href="<?=$arItem["LINK"]?>"><img src="<?=$arItem[PARAMS][SRC1]?>"
            width="18" height="18" border="0"></a></td>
        <?endif?>
        </tr>
        <?endif?>
    <?endforeach?>
    </table>
<?endif?>
?>


Обработка адресов

Понятие обработки адресов

Обработка адресов (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>

Поддержка компонентов 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. В этом скрипте запрошеный адрес может быть проанализирован и выполнены требуемые действия.


Понятие мастера

Под мастером обычно понимают программу, которая предлагает пользователю пройти последовательность сменяющихся диалогов (шагов). Мастера помогают выполнить какую-то одну задачу, и пользователь последовательно выполняет действия, предлагаемые мастером, переходя от текущего до следующего непосредственно за ним шага (или возвращается к предыдущему, если нужно внести какие-нибудь исправления). Кроме того, мастера также поддерживают нелинейную навигацию, под которой подразумевается, что вы можете пропустить шаг, основываясь на данных, полученных от пользователя.

В общем случае существует 2 модели программирования мастера:

  • Фиксация по мере выполнения действий – на каждом шаге выполняется элементарная операция, которую нельзя отменить.
  • Фиксация в конце работы мастера – на каждом шаге мастера осуществляется сбор данных для операции, выполняемой в самом конце работы мастера.

Начиная с версии 6.5.2, продукт предоставляет механизм (API) для создания мастеров.


Физическое расположение мастеров

Все мастера находятся в папке /bitrix/wizards/. Системные (поставляемые разработчиками продукта) мастера находятся в директории /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 необходимо создать объект мастера (экземпляр класса CWizardBase) и затем добавить в него объекты шагов 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#} – область кнопок навигации, макрос будет заменен кнопками навигации.

Чтобы воспользоваться методами класса 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 - выделяет текст красным цветом.
Подробнее см. Мастер создания нового пользователя

Примеры

Пример шаблона мастера для использования его в административном разделе (высота таблицы совпадет с высотой всплывающего окошка на странице Список мастеров.)

<?
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;
    }
}


Запуск мастера

Запуск мастера из административного раздела

На странице Списка мастеров (Административный раздел -> Настройки -> Настройки продукта -> Список мастеров) в колонке Действия необходимо выбрать пункт Установить. Запустится 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-Битрикс: Управление сайтом» представляет собой:

  • шаблоны сайта;
  • компоненты;
  • публичные файлы;
  • демо-данные (информационные блоки, веб-формы, опросы и др.).

Упрощённый механизм создания мастера сайта представляет собой следующую последовательность шагов:
Приветствие -> Выбор типа сайта -> Выбор группы шаблонов -> Выбор шаблона сайта -> Выбор сервисов -> Готовность к установке -> Установка сайта -> Установка шаблона -> Установка сервисов -> Установка завершена -> Установка прервана.

  • Шаг Приветствие – первый шаг мастера;
  • Шаг Выбор типа сайта предлагает выбрать один тип сайта из списка, определяется файлом .sites.php;
  • Шаг Выбор группы шаблонов предлагает выбрать одну группу шаблонов сайта из списка, определяется файлом .templates.php;
  • Шаг Выбор шаблона сайта предлагает выбрать один шаблон сайта из списка, определяется файлом .templates.php и директорией templates, находящейся в папке мастера;
  • Шаг Выбор сервисов предлагает выбрать устанавливаемые на сайт сервисы, определяется файлом .services.php;
  • Шаг Готовность к установке – промежуточный шаг между шагами выбора и шагами установки, суммирует все данные, установленные пользователем в шагах выбора;
  • Шаг Установка сайта выполняет копирование файлов, зависящих от выбранного типа сайта;
  • Шаг Установка шаблона копирует выбранный шаблон в директорию /bitrix/templates/, регистрирует его в системе как шаблон по умолчанию для сайта по умолчанию, копирует дополнительные файлы, зависящие от выбранного шаблона;
  • Шаг Установка сервисов копирует файлы выбранных сервисов;
  • Шаг Установка завершена является конечным шагом мастера;
  • Шаг Установка прервана является конечным шагом мастера, переход на этот шаг осуществляется по нажатию кнопки "Отмена" в шагах выбора.

Шаги Приветствие, Готовность к установке, Установка завершена и Установка прервана всегда присутствуют в цепочке шагов мастера создания сайта. Остальные шаги могут отсутствовать. Кроме того, после шагов Выбор типа сайта, Выбор шаблона сайта, Выбор сервисов, Установка сайта, Установка шаблона, Установка сервисов можно добавить свои пользовательские шаги.

Физическое расположение мастера создания сайта такое же, как и у обычного мастера. Если в директории мастера есть файл wizard.php, то мастер состоит из тех шагов, которые описаны в этом файле. Если файла wizard.php нет, то считается, что это мастер создания сайта, в папке мастера ищутся файлы описания и на их основе генерируются шаги.


Структура файлов мастера создания сайта

Папка мастера создания сайта может содержать следующие файлы и папки:

  • Файл .description.php, содержащий название, описание, а также ряд других характеристик мастера. Этот файл должен всегда присутствовать в папке мастера.

  • Файл .sites.php, описывающий шаги Выбор типа сайта и Установка сайта. Тип сайта – сущность, которая может объединять группы шаблонов, шаблоны, сервисы. От выбора типа сайта может зависеть дальнейший выбор группы шаблонов, шаблонов сайта и сервисов. Этот файл может отсутствовать в папке мастера.

  • Файл .templates.php, описывающий шаги Выбор группы шаблонов, Выбор шаблона и Установка шаблона. В файле .templates.php можно описать зависимости шаблона от типа сайта, определить группы шаблонов. Этот файл может отсутствовать в папке мастера.

  • Подпапка templates, содержащая шаблоны сайта. Если в этой папке есть шаблоны, то шаги Выбор шаблона и Установка шаблона добавятся в мастер автоматически. В файле .templates.php описываются шаблоны, находящиеся в подпапке templates. Эта директория может отсутствовать в папке мастера.

  • Файл .services.php, описывающий шаги Выбор сервисов и Установка сервисов. Этот файл может отсутствовать в папке мастера. Под сервисом понимается совокупность программных модулей (публичных файлов, компонентов, данных), направленных на реализацию конкретного функционала сайта. Примерами сервисов могут быть доска объявлений, фотогалерея, каталог ссылок, каталог товаров, новости, форум и т.п.

  • Подпапка lang, содержащая языковые сообщения (перевод) мастера. В этой папке находятся подпапки с именами, равными кодам языков. В этих подпапках находятся файлы языковых сообщений (переводов) мастера. Файл языковых сообщений для какого-либо файла мастера должен иметь такое же имя, как и файл мастера и находиться в той же иерархии относительно папки /lang/код_языка/, в которой файл располагается относительно папки мастера. Например, языковой файл с английскими фразами для файла /.sites.php требуется располагать по пути /lang/en/.sites.php. Подпапка lang может отсутствовать, если в мастере нет зависящих от языка фраз;

  • Любые другие папки и файлы с ресурсами, необходимыми мастеру. Все ресурсы мастера должны находиться в папке мастера.


Файл описания мастера создания сайта .description.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_DESCRIPTION" => Array(
        "WELCOME" => Array(
            "CONTENT" => "Добро пожаловать в мастер создания сайта компании",
        ),

        "START_INSTALL" => Array(
        "CLASS" => "MyStartInstall",
        "SCRIPT" => "scripts/start_install.php",
        ),
    )
);

?>

Массив $arWizardDescription может иметь следующие ключи:

  • "NAME" – название мастера;
  • "DESCRIPTION" – описание мастера;
  • "VERSION" – версия мастера;
  • "ICON" – иконка мастера, путь к файлу относительно папки мастера;
  • "DEPENDENCIES" – зависимости мастера от модулей. Значением этого ключа должен быть массив вида Array("ID модуля"=>"версия модуля" [, ...]);
  • "TEMPLATES" – шаблоны мастера. Значением этого ключа должен быть массив, элементами которого должен быть массив, имеющий следующие ключи:
    • "CLASS" – имя класса, описывающего шаблон;
    • "SCRIPT" – путь к файлу, в котором определён класс шаблона относительно папки мастера;
    • "STEP" – ID шага, для которого определяется шаблон. Если ключ "STEP" не указан, шаблон будет определён для всех шагов мастера.
  • "STEPS_SETTINGS" – настройки системных шагов. Значением этого ключа является массив, описывающий настройки системных шагов. Массив состоит из элементов следующего вида:

    "Код системного шага" => Array(
    "TITLE" => заголовок шага,
    "SUBTITLE" => подзаголовок шага,
    "CONTENT" => описание шага,
    "CLASS" => имя класса, определяющего пользовательский шаг,
    "SCRIPT" => путь к файлу, в котором определён класс CLASS относительно папки мастера
    )

    Код системного шага может принимать следующие значения:

    • WELCOME – шаг Приветствие;
    • 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" => описание сайта,
    "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", то данный шаблон будет
  выбран по умолчанию в шаге Выбор шаблона
  "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.


CWizardBase

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CWizardBase

Класс СWizardBase является оболочкой мастера и содержит методы общие для всех шагов (работа с переменными мастера, управление кнопками навигации и др.). Для каждого подключаемого мастера создаётся экземпляр класса СWizardBase. Для получения доступа к методам класса СWizardBase в теле переопределяемых функций (InitStep, ShowStep, OnPostFrom) нужно получить объект мастера с помощью метода CWizardStep::GetWizard:

<?
class MyFirstStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        $myVar = $wizard->GetVar("myVar"); //Используем метод мастера (класс CWizardBase)
    }
}
?>


Конструктор CWizardBase

CWizardBase(
 string wizardName,
 object &package
);

Создает объект класса CWizardBase.

Параметры функции

Параметр | Описание
wizardName | Имя создаваемого мастера.
&package | Объект класса СWizard. В файле wizard.php определена переменная $package, которая содержит ссылку на объект класса CWizard.

Примеры использования

<?
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();
?>


CWizardBase:AddStep

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::AddStep

void
AddStep(
 object &obStep,
 mixed stepID = null
);

Метод добавляет в мастер новый шаг.

Параметры функции

Параметр | Описание
&obStep | Экземпляр класса, определяющего шаг мастера.
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();
?>


CWizardBase:AddSteps

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:DisableAdminTemplate

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:Display

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
?>


CWizardBase:GetCancelButtonID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
    }
}
?>


CWizardBase:GetCancelStepID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::GetCancelStepID

mixed
GetCancelStepID();

Возвращает ID шага, на который ссылается кнопка Отмена. Если кнопка Отмена не установлена, метод возвращает null.

См. также

  • CWizardBase::GetCancelButtonID


CWizardBase:GetCurrentStep

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
    }
}
?>


CWizardBase:GetCurrentStepID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::GetCurrentStepID

string
GetCurrentStepID();

Метод возвращает ID текущего шага.

См. также

  • CWizardBase::GetCurrentStep
  • CWizardBase::SetCurrentStep
  • CWizardBase::SetFirstStep


CWizardBase:GetDefaultVar

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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"),
);

?>


CWizardBase:GetDefaultVars

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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"),
);

?>


CWizardBase:GetFinishButtonID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
    }
}
?>


CWizardBase:GetFinishStepID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::GetFinishStepID

mixed
GetFinishStepID();

Возвращает ID шага, на который ссылается кнопка Готово. Если кнопка Готово не установлена, метод возвращает null.

См. также

  • CWizardBase::GetFinishButtonID


CWizardBase:GetFormActionScript

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::GetFormActionScript

string
GetFormActionScript();

Метод возвращает значение атрибута action формы мастера (тега <form>).

См. также

  • CWizardBase::SetFormActionScript


CWizardBase:GetFormName

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
    }
}
?>


CWizardBase:GetNextButtonID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
    }
}

?>


CWizardBase:GetNextStepID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::GetNextStepID

mixed
GetNextStepID();

Возвращает ID шага, на который ссылается кнопка Далее. Если кнопка Далее не установлена, метод возвращает null.

См. также

  • CWizardBase::GetNextButtonID


CWizardBase:GetPackage

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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
    }
}
?>


CWizardBase:GetPrevButtonID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
    }
}

?>


CWizardBase:GetPrevStepID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::GetPrevStepID

mixed
GetPrevStepID();

Возвращает ID шага, на который ссылается кнопка Назад. Если кнопка Назад не установлена, метод возвращает null.

См. также

  • CWizardBase::GetPrevButtonID


CWizardBase:GetRealName

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::GetRealName

string
GetRealName(
 string varName
);

Метод возвращает имя переменной с префиксом. Имя с префиксом необходимо для того, чтобы названия переменных мастера не пересекались с названиями других переменных страницы. По умолчанию префикс для переменных мастера установлен в значение __wiz_.

Параметры функции

Параметр | Описание
varName | Имя переменной, для которой необходимо получить реальное (с префиксом) имя. Имя переменной может быть составным, например, myvar[key].

См. также

  • CWizardBase::GetVarPrefix
  • CWizardBase::SetVarPrefix


CWizardBase:GetVar

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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"),
);

?>


CWizardBase:GetVarPrefix

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::GetVarPrefix

string
GetVarPrefix();

Метод возвращает префикс для переменных мастера. Имя с префиксом необходимо для того, чтобы названия переменных мастера не пересекались с названиями других переменных страницы. По умолчанию префикс для переменных мастера установлен в значение __wiz_.

См. также

  • CWizardBase::GetRealName
  • CWizardBase::SetVarPrefix


CWizardBase:GetVars

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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"),
);

?>


CWizardBase:GetWizardName

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
    }
}

?>


CWizardBase:IsCancelButtonClick

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();


CWizardBase:IsFinishButtonClick

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();


CWizardBase:IsNextButtonClick

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();


CWizardBase:IsPrevButtonClick

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();


CWizardBase:SetCancelButtonID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:SetCurrentStep

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();


CWizardBase:SetDefaultVar

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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"),
);

?>


CWizardBase:SetDefaultVars

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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"),
);

?>


CWizardBase:SetFinishButtonID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:SetFirstStep

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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.


CWizardBase:SetFormActionScript

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:SetFormName

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:SetNextButtonID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:SetPrevButtonID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:SetReturnOutput

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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;
?>


CWizardBase:SetTemplate

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::SetTemplate

void
SetTemplate(
 object &obStepTemplate,
 mixed stepID = false
);

Метод устанавливает шаблон obStepTemplate для шага stepID. Если параметр stepID не указан, шаблон устанавливается для всех шагов.

Параметры функции

Параметр | Описание
&obStepTemplate | Экземпляр класса CWizardTemplate
stepID | ID шага, для которого устанавливается шаблон. Необязательный параметр, по умолчанию равен 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();
?>


CWizardBase:SetVar

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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"),
);

?>


CWizardBase:SetVarPrefix

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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();
?>


CWizardBase:UnSetVar

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardBase::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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CWizardStep

Для каждого шага, добавляемого в мастер, создаётся экземпляр класса CWizardStep. В переопределяемых функциях (InitStep, ShowStep, OnPostFrom) шага методы класса CWizardStep доступны через переменную-псевдоним $this.

<?
class MyFirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг мастера");
    }
}
?>


CWizardStep:GetErrors

1С-Битрикс: Управление сайтом Отправить отзыв

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;
    }
}
?>


CWizardStep:GetStepID

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardStep::GetStepID

mixed
GetStepID();

Метод возвращает ID шага. Если ID для шага не установлен, метод возвратит null.

См. также

  • CWizardStep::SetStepID


CWizardStep:GetSubTitle

1С-Битрикс: Управление сайтом Отправить отзыв

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;
    }
}
?>


CWizardStep:GetTitle

1С-Битрикс: Управление сайтом Отправить отзыв

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;
    }
}
?>


CWizardStep:GetWizard

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardStep::GetWizard

object &
GetWizard();

Метод возвращает ссылку на объект мастера.

Примеры использования

<?
class MyFirstStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        $myVar = $wizard->GetVar("myVar"); //Используем метод мастера (класс CWizardBase)
    }
}
?>


CWizardStep:InitStep

1С-Битрикс: Управление сайтом Отправить отзыв

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"));
    }
}
?>


CWizardStep:IsAutoSubmit

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardStep::IsAutoSubmit

bool
IsAutoSubmit();

Метод возвращает значение флага автоматической отправки.

См. также

  • CWizardStep::SetAutoSubmit


CWizardStep:OnPostForm

1С-Битрикс: Управление сайтом Отправить отзыв

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");
    }
}
?>


CWizardStep:SaveFile

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardStep::SaveFile

int
SaveFile(
 string name,
 array arRestriction = Array()
);

Метод сохраняет файл в системе. В случае удачной загрузки метод возвратит ID добавленного файла.

Параметры функции

Параметр | Описание
name | Имя поля для загрузки файла на сервер.
arRestriction Массив ограничений на загружаемый файл вида Array("вид_ограничения" => "значение_ограничения" [,...]). Вид ограничения может принимать следующие значения:
  • max_file_size - максимальный размер загружаемого файла в байтах;
  • max_width - максимальная ширина загружаемой картинки в пикселях;
  • max_height - максимальная высота загружаемой картинки в пикселях;
  • extensions - допустимые расширения загружаемого файла через запятую.
Необязательный параметр, по умолчанию ограничений нет.

См. также

  • CWizardStep::ShowFileField
  • CWizardUtil::CopyFile

Примеры использования

Мастер создания нового пользователя

<?
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"));
    }

}
?>


CWizardStep:SetAutoSubmit

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetCancelCaption

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetCancelStep

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetError

1С-Битрикс: Управление сайтом Отправить отзыв

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 />";
    }
}

?>


CWizardStep:SetFinishCaption

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetFinishStep

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetNextCaption

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetNextStep

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetPrevCaption

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetPrevStep

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetStepID

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetSubTitle

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:SetTitle

1С-Битрикс: Управление сайтом Отправить отзыв

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();
?>


CWizardStep:ShowCheckboxField

1С-Битрикс: Управление сайтом Отправить отзыв

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 />";
    }
}
?>


CWizardStep:ShowFileField

1С-Битрикс: Управление сайтом Отправить отзыв

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;
  • 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"));
    }

}
?>


CWizardStep:ShowHiddenField

1С-Битрикс: Управление сайтом Отправить отзыв

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


CWizardStep:ShowInputField

1С-Битрикс: Управление сайтом Отправить отзыв

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 />";
    }
}
?>


CWizardStep:ShowRadioField

1С-Битрикс: Управление сайтом Отправить отзыв

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");
    }
}
?>


CWizardStep:ShowSelectField

1С-Битрикс: Управление сайтом Отправить отзыв

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")
        );

    }

}

?>


CWizardStep:ShowStep

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CWizardTemplate

Класс CWizardTemplate является оболочкой для шаблона мастера. Для каждого шаблона создаётся экземпляр класса CWizardTemplate. Чтобы воспользоваться методами класса CWizardBase в теле переопределяемой функции GetLayout, необходимо получить ссылку на экземпляр мастера:

<?
class MyTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        /*
            Определение шаблона
            ...
        */
    }
}

?>


CWizardTemplate:GetLayout

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardTemplate::GetLayout

string
GetLayout();

Переопределяемый метод. Метод должен вернуть HTML-вывод шаблона мастера. Внутри шаблона мастера обязательно должны быть определены следующие макросы:

  • {#FORM_START#} – начало формы, макрос будет заменен тегом <form>;
  • {#FORM_END#} – конец формы, макрос будет заменен тегом </form>;
  • {#CONTENT#} – область содержимого шага, макрос будет заменен содержимым текущего шага;
  • {#BUTTONS#} – область кнопок навигации, макрос будет заменен кнопками навигации.

См. также

  • Шаблон мастера

Примеры использования

<?
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;
    }
}
?>


CWizardTemplate:GetWizard

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardTemplate::GetWizard

object &
GetWizard();

Метод возвращает ссылку на объект мастера.

См. также

Примеры использования

<?
class MyTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        /*
            Определение шаблона
            ...
        */
    }
}

?>


CWizard

1С-Битрикс: Управление сайтом Отправить отзыв

Класс 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
    }
}
?>

См. также

  • Конструктор CWizard
  • CWizardBase::GetPackage
  • Физическое расположение мастеров


Конструктор CWizard

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");
?>


CWizard:GetDescription

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetErrors

1С-Битрикс: Управление сайтом Отправить отзыв

CWizard::GetErrors

array
GetErrors();

Метод возвращает массив ошибок мастера.

См. также

  • CWizard::SetError


CWizard:GetID

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetPath

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetServices

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetSiteGroupID

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetSiteID

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetSiteServiceID

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetSiteTemplateID

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetTemplateGroups

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:GetTemplates

1С-Битрикс: Управление сайтом Отправить отзыв

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>";
    }
}

?>


CWizard:IncludeWizardLang

1С-Битрикс: Управление сайтом Отправить отзыв

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");
    }
}
?>


CWizard:Install

1С-Битрикс: Управление сайтом Отправить отзыв

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");
?>


CWizard:SetError

1С-Битрикс: Управление сайтом Отправить отзыв

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");
?>


CWizardUtil

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CWizardUtil

Класс CWizardUtil инкапсулирует вспомогательные методы, полезные при разработке мастеров.


CWizardUtil:CopyFile

1С-Битрикс: Управление сайтом Отправить отзыв

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"));
    }

}
?>


CWizardUtil:CopyWizard

1С-Битрикс: Управление сайтом Отправить отзыв

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");
?>


CWizardUtil:DeleteWizard

1С-Битрикс: Управление сайтом Отправить отзыв

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");
?>


CWizardUtil:GetRepositoryPath

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardUtil::GetRepositoryPath

string
GetRepositoryPath();

Метод возвращает путь к папке (репозитарию) мастеров относительно корня сайта.


CWizardUtil:ReplaceMacros

1С-Битрикс: Управление сайтом Отправить отзыв

CWizardUtil::ReplaceMacros

void
ReplaceMacros(
 string filePath,
 array arReplace
);

Метод заменяет в файле filePath макросы на заданные в arReplace значения.

Параметры функции

Параметр | Описание
filePath | Абсолютный путь к файлу, в котором нужно заменить макросы. Имя макроса в файле filePath должно быть обрамлено символом #.
arReplace | Массив замен вида Array("имя_макроса" => "замена" [, ...]).

Примеры использования

<?
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");
?>


Мастер создания нового пользователя

Данный пример демонстрирует следующие аспекты программирования мастеров:

  • Обработку входных даннных;
  • Обработку ошибок шага;
  • 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 = BX_PERSONAL_ROOT."/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. Наконец, в файле .description.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",
                )
            ),
        ),
    )
);

?>

Пользовательские шаги у каждого шаблона могут быть разные, но в данном случае они у всех шаблонов совпадают.
Скачать пример


Технологии

В данном разделе представлена общая информация по технологиям и принципам заложенным в систему:

  • Агенты - технология позволяющая запускать PHP функции с заданной периодичностью
  • Почтовая система - позволяет отправлять E-Mail письма с использованием заранее заданных почтовых шаблонов
  • Кэширование - позволяет кэшировать ресурсоемкие куски кода, при этом заметно увеличивая производительность сайта
  • Отложенные функции - технология позволяющая задавать некоторые элементы страницы (заголовок, дополнительные пункты навигационной цепочки, мета-тэги, кнопки в панель управления, CSS стили) непосредственно в теле страницы
  • Перенос посетителей - технология позволяющая синхронизировать по мере возможности набор cookie для разных сайтов, имеющих разные доменные имена и принадлежащие одному порталу.
  • Панель управления - технология позволяющая облегчить администрирование сайта


Агенты

Агенты - это технология, позволяющая запускать произвольные PHP функции (агенты) с заданной периодичностью.

В самом начале загрузки каждой страницы (непосредственно перед событием OnPageStart) система автоматически проверяет, есть ли агент, который нуждается в запуске и в случае необходимости - исполняет его.

Временная точность запуска агентов напрямую зависит от равномерности и плотности посещаемости сайта. Если вам необходимо организовать запуск каких либо PHP функций в абсолютно точно заданное время, то необходимо воспользоваться стандартной утилитой cron, предоставляемой большинством хостингов.

Для того чтобы агент выполнился в заданное время, его необходимо зарегистрировать в системе при помощи метода CAgent::AddAgent. Удалить регистрацию агента можно с помощью функции CAgent::RemoveAgent.

Если функция-агент принадлежит модулю, то перед ее выполнением, этот модуль будет автоматически подключаться, а именно будет подключаться файл /bitrix/modules/ID модуля/include.php, в этом случае необходимо убедиться, что функция-агент будет доступна после подключения этого файла.

Если функция-агент не принадлежит ни одному из модулей, то ее необходимо разместить в файле /bitrix/php_interface/init.php. Данный файл автоматически подключается в прологе.

Особенности создания функций-агентов:

  • В функции-агенте не доступен глобальный объект $USER класса CUser. Поэтому если предполагается использование этого объекта, то в начале функции необходимо разместить следующий код:

global $USER;
if (!is_object($USER)) $USER = new CUser;
  • В качестве возвращаемого значения функция-агент должна вернуть PHP код который будет использован при следующем запуске данной функции.

Примеры использования

<?
// добавим агент модуля "Статистика"
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).")";
   }
}
?>

См. также

Класс CAgent


Почтовая система

Почтовая система - это технология предназначенная для работы с E-Mail сообщениями на сайте.

Работа с почтовой системой состоит из следующих этапов:

  1. Создание типа почтового события. Тип почтового события может быть создан только с использованием функции CEventType::Add.
  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"          => "Изменился статус баннера",
    "SITE_ID"       => "ru",
    "DESCRIPTION"   => "
        #ID# - ID баннера
        #CONTRACT_ID# - ID контракта
        #TYPE_SID# - ID типа
        "
    ));
?>

Пример создания почтового шаблона

<?
$arr["ACTIVE"]      = "Y";
$arr["EVENT_NAME"]  = "ADV_BANNER_STATUS_CHANGE";
$arr["SITE_ID"]     = 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
  • Настройки главного модуля


Кеширование

Кэширование - это технология позволяющая кэшировать результаты работы редко обновляемых и ресурсоемких кусков кода (например, активно работающих с базой данных).

Для реализации этого созданы два класса:

  • CPageCache - для кеширования HTML
  • CPHPCache - для кеширования HTML и PHP переменных

Результаты кэширования сохраняются в виде файлов в каталоге /bitrix/cache/. Если время кэширования не истекло, то вместо ресурсоемкого кода будет подключен предварительно созданный файл кэша.

Правильное использование кэширования позволяет увеличить общую производительность сайта на порядок. Однако необходимо учитывать, что неразумное использование кэширования может привести к серьезному увеличению размера каталога /bitrix/cache/.

Пример кэширования HTML

<?
// создаем объект
$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;
?>

В данном примере, метод CPageCache::StartDataCache проверит наличие неистекшего и валидного файла кэша. Если такой файл существует, то он будет подключен и выведен на экран, в противном случае будет включена буферизация. Результаты буферизации будут записаны в файл кэша методом CPageCache::EndDataCache.

В первом параметре метода CPageCache::StartDataCache задается интервал времени в секундах, в течении которого файл кэша будет считаться валидным и не истекшим (интервал времени отсчитывается с момента создания файла кэша).

Во втором параметре указывается уникальный идентификатор данного экземпляра кэша. Здесь необходимо подчеркнуть, что если какие либо переменные могут повлиять на результат выполнения кэшируемого кода, то их значения необходимо включить в этот идентификатор.

Например:

  • Если на результат выполнения кэшируемого кода может повлиять авторизация текущего пользователя, то к идентификатору необходимо добавить результат выполнения функции CUser::GetUserGroupString, возвращающей строку c ID групп текущего пользователя.
  • Если в кэшируемом коде вы используете постраничную навигацию, то в данный идентификатор обязательно нужно включить результат работы функции CDBResult::NavStringForCache.
  • При использовании сортировки необходимо также помнить, что в идентификатор необходимо включить значения переменных хранящих в себе поле по которому идет сортировка и порядок сортировки (например, $by.$sort).

Пример кэширования HTML и PHP переменных

<?
// создаем объект
$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;
?>

Отличие данного примера от предыдущего заключается в том, что помимо HTML также кэшируется PHP переменная $SECTION_TITLE. Структура и тип кэшируемых PHP переменных могут быть произвольными. Метод CPHPCache::InitCache выполняет проверку на наличие неистекшего и валидного файла кэша. Если данный файл найден, то происходит его подключение, при этом все закэшированные переменные будут доступны после использования метода CPHPCache::GetVars. Метод CPHPCache::EndDataCache, помимо буферизированного HTML кода, записывает в файл кэша также PHP переменные.

Для отключения кэширования на одной странице, необходимо авторизоваться с административными правами и вызвать эту страницу с параметром &clear_cache=Y. Если, авторизовавшись с административными правами, вызвать любую страницу с параметром &clear_cache_session=Y, то кеш будет отключен для всех страниц, которые будут просмотрены в рамках сессии. Файлы кэша можно удалить в административной части на странице настроек главного модуля.

См. также

  • Класс CPageCache
  • Класс CPHPCache


Отложенные функции

Отложенные функции - это технология позволяющая задавать заголовок страницы, пункты навигационной цепочки, CSS стили, дополнительные кнопки в панель управления, мета-тэги и т.п. с помощью функций используемых непосредственно в теле страницы, а соответствующие результаты работы этих функций выводить в прологе, т.е. выводить их выше по коду, чем они были заданы.

Данная технология была создана в первую очередь для использования в компонентах, которые как правило выводятся в теле страницы, но при этом внутри них могут быть заданы заголовок страницы, добавлен пункт в навигационную цепочку, добавлена кнопка в панель управления и т.д. и т.п.

Технология отложенных функций используется только в публичной части. В административной части она не используется.

Алгоритм работы данной технологии:

  1. любой исходящий поток из PHP скрипта буферизируется
  2. как только в коде встречается одна из следующих функций:
    • CMain::ShowTitle
    • CMain::ShowCSS
    • CMain::ShowNavChain
    • CMain::ShowProperty
    • CMain::ShowMeta
    • CMain::ShowPanel
    либо другая функция обеспечивающая откладывание выполнения какой либо функции (отложенной), то:
    1. весь буферизированный до этого контент запоминается в очередном элементе стэка A
    2. в стэк A добавляется пустой элемент, который в дальнейшем будет заполнен результатом выполнения отложенной функции
    3. имя отложенной функции запоминается в стэке B
    4. буфер очищается и буферизация снова включается
    Таким образом существует стэк A, в котором находится весь контент страницы разбитый на части. В этом же стэке есть пустые элементы предназначенные для их дальнейшего заполнения результатами отложенных функций.
    Также существует стэк B, в котором запоминаются имена и параметры отложенных функции в порядке их следования в коде.

  3. в конце страницы в служебной части эпилога выполняются следующие действия:
    1. все отложенные функции из стэка B начинают выполняться одна за другой
    2. результаты их выполнения вставляются в специально предназначенные для этого места в стэк A
    3. весь контент из стэка A "склеивается" (конкатенируется) и выводится на экран

Таким образом, данная технология позволяет фрагментировать весь контент страницы, разбивая его на части с помощью специальных функций обеспечивающих временное откладывание выполнения других функций (отложенных функций). В конце страницы все отложенные функции выполняются одна за другой и результаты их выполнения вставляются в отведенные для этого места внутри фрагментированного контента страницы. Затем весь контент склеивается и выводится в поток (отправляется браузеру посетителя сайта).

При использовании этой технологии необходимо учитывать, что над результатами работы функций обеспечивающих откладывание других функций нельзя выполнять какие либо действия, например:

$page_title = $APPLICATION->ShowTitle(); // эта функция ничего не возвращает
if (strlen($page_title)<=0) $page_title = "Заголовок страницы по умолчанию";
echo $page_title;
Данный код не будет работать по той причине, что все отложенные функции выполняются в самом конце страницы, в служебной части эпилога.

Группы функций задействованные в данной технологии:

Имя функции обеспечивающей откладывание Выполнение какой функции откладывается Дополнительные связанные функции
CMain::ShowTitle CMain::GetTitle CMain::SetTitle
CMain::ShowCSS CMain::GetCSS CMain::SetTemplateCSS
CMain::SetAdditionalCSS
CMain::ShowNavChain CMain::GetNavChain CMain::AddChainItem
CMain::ShowProperty CMain::GetProperty CMain::SetPageProperty
CMain::SetDirProperty
CMain::ShowMeta CMain::GetMeta CMain::SetPageProperty
CMain::SetDirProperty
CMain::ShowPanel CMain::GetPanel CMain::AddPanelButton

См. также

  • CMain::AddBufferContent


Перенос посетителей

Система "1С-Битрикс: Управление сайтом" позволяет создать несколько сайтов и организовать их управление. Особенностями данной многосайтовой системы являются:
  • единые права на все сайты
  • единый набор бюджетов пользователей на все сайты
  • единая система ведения статистики на все сайты
  • и т.п.
Исходя из этого, становится актуальной задача распознать одного и того же посетителя приходящего на разные сайты c разными доменными именами. Речь конечно же идет о сайтах созданных в рамках одного портала.

Распознавание посетителей осуществляется с помощью хранимых cookie (куков), представляющих из себя информацию, передаваемую между веб-сервером и браузером и хранимую только на локальном диске посетителя.

Теперь постараемся объяснить на примере суть проблемы:

  • При первом заходе посетителя на сайт A, ему выдаются ряд идентификаторов используемых разными модулями (например, идентификатор посетителя в модуле статистики или идентификатор покупателя в модуле интернет-магазина и т.д.), которые запоминаются в хранимых cookie принадлежащих сайту A.
  • Когда посетитель в следующий раз возвращается на этот же сайт A, он будет "узнан" благодаря информации хранимой в cookie принадлежащих сайту A.
  • Теперь представим, что этот же посетитель пришел на сайт B. Возникает задача "узнать" его как посетителя в недавнем прошлом сайта A. Под термином "узнать" здесь понимается - получить идентификаторы, выданные ему на сайте A. Проблема осложняется тем, что если доменное имя сайта B отличается от доменного имени сайта A, то информация хранимая в cookie принадлежащих сайту A не может быть получена при заходе посетителя на сайт B. Также есть обратная проблема - cookie устанавливаемые с сайта A (и на этот же сайт A) не могут быть установлены на сайт B. Такова политика безопасности браузеров.

Для решения вышеописанных проблем используется технология переноса cookie посетителя между разными сайтами с разными доменными именами и принадлежащих одному порталу. Эта технология имеет также название "UserMultiSiteTransfer".

Алгоритм работы этой технологии можно описать так:

  • Когда посетитель заходит на сайт A, идентификаторы, выдаваемые ему, будут сохраняться в cookie с помощью функции CMain::set_cookie, основная задача которой не только установить cookie для текущего сайта A, но и запомнить данные этого cookie для дальнейшего распостранения его на другие сайты B, C, D.
  • В конце визуальной части эпилога вызывается функция CMain::ShowSpreadCookieHTML. Данная функция выводит набор IFRAME'ов в каждом из которых вызывается скрипт /bitrix/spread.php с того домена на который необходимо установить cookie. Таким образом для сайтов B, C, D будет создано три IFRAME'а, в каждом из которых будет вызван скрипт http://доменное имя сайта/bitrix/spread.php. В параметрах этого скрипта будет передана необходимая информация для установки cookie. Эта информация передается в зашифрованном виде и подписана зашифрованным лицензионным ключом этого портала. В результате получится, что cookie установленный на сайте A, будет скопирован (перенесен) на другие сайты - B, C, D.
  • Аналогично происходит и для других сайтов. Если посетитель зайдя на сайт B получит какой либо идентификатор который необходимо сохранить в cookie, то этот идентификатор будет также сохранен и для других сайтов A, C, D. Таким образом мы добиваемся единого набора cookie для всех сайтов одного портала.

Использование данной технологии позволяет в модуле "Статистика" подсчитывать уникальных посетителей для всего портала. В модуле "Реклама, баннеры" - позволяет корректно учитывать количество показов одного баннера одному посетителю. Другие модули также активно используют данную технологию.

См. также

  • Сайты
  • CMain::set_cookie
  • CMain::get_cookie
  • CMain::ShowSpreadCookieHTML


Панель управления

Панель управления - это HTML код, который может быть выведен авторизованному пользователю при наличии у него достаточных прав на операции, представленные на панели управления. HTML-код представляет из себя область с кнопками, в самом вверху страницы, каждая из которых предназначена для той или иной операции.

В публичной части панель выводится с помощью функции CMain::ShowPanel. Данная функция использует технологию отложенных функций, что позволяет добавлять кнопки в панель непосредственно в теле страницы.

Добавить кнопку в панель можно с помощью функции CMain::AddPanelButton. Эту же функцию можно использовать в скрипте /bitrix/php_interface/include/add_top_panel.php, который автоматически будет подключен при выводе панели.

Панель не является неотъемлемой и обязательной частью системы "1C-Битрикс: Управление сайтом", но она является удобным способом администрирования сайта. На сегодняшний день поддерживаются следующие стандартные кнопки, каждая из которых выполняет ту или иную операцию:

  • - создание нового каталога в модуле "Управление структурой"
  • - редактирование свойств каталога в модуле "Управление структурой"
  • - создание новой страницы в текущем разделе (модуль "Управление структурой")
  • - редактирование текущей страницы в модуле "Управление структурой"
  • - создание новой страницы через модуль "Документооборот"
  • - редактирование текущей страницы через модуль "Документооборот"
  • - перейти в историю редактирования текущей страницы в модуле "Документооборот"
  • - создание нового информационного блока в модуле "Информационные блоки"
  • - редактирование информационного блока в модуле "Информационные блоки"
  • - создание нового раздела в модуле "Информационные блоки"
  • - редактирование раздела в модуле "Информационные блоки"
  • - создание нового элемента в модуле "Информационные блоки"
  • - редактирование элемента в модуле "Информационные блоки"
  • - перейти в историю редактирования элемента в модуле "Информационные блоки"
  • - по нажатии в новом окне строит график посещаемости страницы. модуль Статистика.
  • - отображает статистику переходов по ссылкам с данной страницы. модуль Статистика.
  • - позволяет обновить закешированные данные на странице.
  • - позволяет отобразить/скрыть отладочную информацию на странице: названия используемых компонентов, время выполнения запросов и т.д.
  • - переход в публичный раздел из административного раздела или из режима редактирования сайта.
  • - переход в режим редактирования сайта, т.е. будут отображены включаемые области, компоненты 1.0 и 2.0, редактируемые области. Каждая из областей имеет свой набор управляющих кнопок:
    • - редактировать параметры компонента (независимо от версии) в форме в публичной части.
    • - редактировать код компонента 1.0 в виде php с копированием из папки модуля в папку шаблона сайта.
    • - копировать шаблон компонента 2.0 из папки компонента в один из шаблонов сайта (настраивается по желанию в выводимой форме).
    • - отображается после копирования шаблона компонента 2.0 в один из шаблонов сайта. Позволяет перейти к редактированию текущей страницы шаблона. Для включаемой области позволяет перейти к редактированию содержимого данной включаемой области.
    • - позволяет очистить кеш данного компонента.
    • - редактировать текущий баннер в модуле "Реклама, баннеры"
    • - перейти к списку баннеров в модуле "Реклама, баннеры"
    • - редактировать пункты меню.
  • - перейти в административный раздел
  • - закончить сеанс (logout)

См. также

  • CMain::ShowPanel
  • CMain::AddPanelButton
  • CMain::IncludeFile
  • CMain::IncludeString
  • CMain::GetShowIncludeAreas


Внешняя авторизация

Иногда для авторизации (проверки имени входа и пароля) пользователя бывает необходимо использовать свои алгоритмы проверки и(или) внешние БД для хранения пользователей. Например, уже имеется база пользователей и необходимо дать им возможность авторизовываться на сайте под управлением CMS. В таких случаях, иногда, можно просто перенести всех пользователей в БД CMS, используя API функции, но зачастую это просто невозможно по двум причинам. Первая - пароли пользователей во внешней БД не хранятся в открытом виде, хранится только хэш от них, поэтому после переноса пользователи не смогут авторизоваться по причине несовпадения пароля. Вторая причина заключается в том, что иногда необходимо чтобы база пользователей была единой, т.е. пароли пользователей хранились на одном удаленном сервере и использовались для проверки в нескольких местах, в том числе и в CMS.

Для решения таких задач в "Битрикс: Управление Сайтом", реализована возможность добавить к стандартной встроенной системе авторизации свою внешнюю. Для этого необходимо реализовать несколько шагов, которые разберем на примере внешней авторизации, используя БД пользователей популярного форума PHP BB.

Для начала создадим файл, например, /bitrix/php_interface/scripts/phpbb.php. В этом классе будет размещён класс с внешним обработчиком, назовем его __PHPBB2Auth:

class __PHPBB2Auth
{
}

Для того, чтобы во время попытки авторизоваться вызвалась наша функция, необходимо установить обработчик события OnUserLoginExternal, который будет вызываться автоматически каждый раз при вводе пользователем имени входа и пароля, перед встроенной проверкой. Для этого в файле /bitrix/php_interface/init.php воспользуемся функцией AddEventHandler:

AddEventHandler(
     "main",
     "OnUserLoginExternal",
     Array("__PHPBB2Auth", "OnUserLoginExternal"),
     100,
     $_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/scripts/phpbb.php'
);

В качестве обработчика мы указали метод нашего класса __PHPBB2Auth::OnUserLoginExternal. Обработчик события OnUserLoginExternal принимает в качестве параметра ссылку на массив с полями для проверки:

define("PHPBB2_TABLE_PREFIX", "phpbb_");
function OnUserLoginExternal(&$arArgs)
{
    $table_user = PHPBB2_TABLE_PREFIX."users";
    $table_user_group = PHPBB2_TABLE_PREFIX."user_group";
    extract($arArgs);

    global $DB, $USER, $APPLICATION;

    $strSql = "SELECT * FROM ".
              $table_user.
              " WHERE username='".
              $DB->ForSQL($login).
              "' AND user_password='".
              $DB->ForSql(md5($password))."'";
    $dbRes = $DB->Query($strSql);
    if($arRes = $dbRes->Fetch())
    {
        if($arRes['user_active']!='0')
        {
            // имя пользователя и пароль подошел
        }
    }
}

После того как имя входа и пароль проверены по алгоритму PHPBB, необходимо создать внешнего пользователя во внутренней БД, чтобы к нему можно было привязывать внутренние объекты (новости, голосования и т.п.). Для этого воспользуемся методом CUser::GetList с фильтром по имени входа и коду внешнего источника. Если такой пользователь не существует - создадим его, если существует - обновим информацию о нем.

$arFields = Array(
    "LOGIN" => $login,
    "NAME" => $login,
    "PASSWORD" => $password,
    "EMAIL" => $arRes['user_email'],
    "ACTIVE" => "Y",
    "EXTERNAL_AUTH_ID"=>"PHPBB2",
    "LID" => SITE_ID
    );
$oUser = new CUser;
$res = CUser::GetList($O, $B, Array("LOGIN_EQUAL_EXACT"=>$login, "EXTERNAL_AUTH_ID"=>"PHPBB2"));
if(!($ar_res = $res->Fetch()))
    $ID = $oUser->Add($arFields);
else
{
    $ID = $ar_res["ID"];
    $oUser->Update($ID, $arFields);
}
if($ID>0)
{
   // можно авторизовывать
   return $ID;
}

Теперь у нас есть идентификатор пользователя в нашей БД и можно его вернуть из функции обработчика чтобы этот пользователь был авторизован системой, но новый пользователь будет анонимным, т.к. не привязан ни к одной из групп. Воспользуемся привязкой в базе PHPBB, чтобы перенести ее в нашу БД до авторизации.

$USER->SetParam("PHPBB2_USER_ID", $arRes['user_id']);
$groups_map = Array(
    /*'PhpBB2 Group ID' => 'Local Group ID',*/
     '2' => '1'
    );

$user_groups = Array();
$dbUserGroup = $DB->Query('SELECT * FROM '.$table_user_group.' WHERE user_id='.$arRes['user_id']);
while($arUserGroup = $dbUserGroup->Fetch())
    $user_groups[] = $arUserGroup['group_id'];

if(count($user_groups)>0)
{
    $arUserGroups = CUser::GetUserGroup($ID);
    foreach($groups_map as $ext_group_id => $group_id)
    {
        if(in_array($ext_group_id, $user_groups))
            $arUserGroups[] = $group_id;
        else
        {
            $arUserGroupsTmp = Array();
            foreach($arUserGroups as $grid)
                if($grid != $group_id)
                    $arUserGroupsTmp[] = $grid;
            $arUserGroups = $arUserGroupsTmp;
        }
    }
    CUser::SetUserGroup($ID, $arUserGroups);
}

Все, теперь локальный бюджет пользователя соответствует удаленному, можно возвращать код пользователя и он будет авторизован. Отключим предварительно функцию "запомнить меня на этом компьютере", если пользователь нажал на "флажок", т.к. при этом мы не сможем корректно проверить права доступа:

$arArgs["store_password"] = "N";
return $ID;

Для того чтобы зарегистрировать новую внешнюю проверку авторизации в системе, необходимо обработать событие OnExternalAuthList. Добавим в файл /bitrix/php_interface/init.php соответствующий вызов:

AddEventHandler(
     "main",
     "OnExternalAuthList",
     Array("__PHPBB2Auth", "OnExternalAuthList"),
     100,
     $_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/scripts/phpbb.php'
     );

Функция обработчик должна вернуть массив из набора обработчиков с полямим ID и NAME.

function OnExternalAuthList()
{
    return Array(
        Array("ID"=>"PHPBB2", "NAME"=>"PhpBB2")
        );
}

Теперь на странице редактирования пользователя появится выпадающий список со списком внешних источников авторизации. Приведем полный текст файла /bitrix/php_interface/scripts/phpbb.php. В нем дополнительно реализован обратный механизм: при авторизации пользователя в нашей системе он автоматически авторизуется на форуме.

<?
define("PHPBB2_TABLE_PREFIX", "phpbb_");

class __PHPBB2Auth
{
    function OnUserLoginExternal(&$arArgs)
    {
        ////////// <settings> ////////////
        $table_user = PHPBB2_TABLE_PREFIX."users";
        $table_user_group = PHPBB2_TABLE_PREFIX."user_group";
        $groups_map = Array(
            /*'PhpBB2 Group ID' => 'Local Group ID',*/
            '2' => '1'
            );
        ////////// </settings> ////////////
        extract($arArgs);

        global $DB, $USER, $APPLICATION;

        $strSql = "SELECT * FROM ".
                  $table_user.
                  " WHERE username='".
                  $DB->ForSQL($login).
                  "' AND user_password='".
                  $DB->ForSql(md5($password))."'";
        $dbRes = $DB->Query($strSql);
        if($arRes = $dbRes->Fetch())
        {
            if($arRes['user_active']!='0')
            {
                $arFields = Array(
                    "LOGIN" => $login,
                    "NAME" => $login,
                    "PASSWORD" => $password,
                    "EMAIL" => $arRes['user_email'],
                    "ACTIVE" => "Y",
                    "EXTERNAL_AUTH_ID"=>"PHPBB2",
                    "LID" => SITE_ID
                    );
                $oUser = new CUser;
                $res = CUser::GetList($O, $B,
                                      Array("LOGIN_EQUAL_EXACT"=>$login,
                                            "EXTERNAL_AUTH_ID"=>"PHPBB2"));
                if(!($ar_res = $res->Fetch()))
                    $ID = $oUser->Add($arFields);
                else
                {
                    $ID = $ar_res["ID"];
                    $oUser->Update($ID, $arFields);
                }

                if($ID>0)
                {
                    $USER->SetParam("PHPBB2_USER_ID", $arRes['user_id']);

                    $user_groups = Array();
                    $dbUserGroup = $DB->Query('SELECT * FROM '.
                                              $table_user_group.
                                              ' WHERE user_id='.$arRes['user_id']);
                    while($arUserGroup = $dbUserGroup->Fetch())
                        $user_groups[] = $arUserGroup['group_id'];

                    if(count($user_groups)>0)
                    {
                        $arUserGroups = CUser::GetUserGroup($ID);
                        foreach($groups_map as $ext_group_id => $group_id)
                        {
                            if(in_array($ext_group_id, $user_groups))
                                $arUserGroups[] = $group_id;
                            else
                            {
                                $arUserGroupsTmp = Array();
                                foreach($arUserGroups as $grid)
                                    if($grid != $group_id)
                                        $arUserGroupsTmp[] = $grid;
                                $arUserGroups = $arUserGroupsTmp;
                            }
                        }
                        CUser::SetUserGroup($ID, $arUserGroups);
                    }
                    $arArgs["store_password"] = "N";

                    return $ID;
                }
            }
        }
    }

    function OnExternalAuthList()
    {
        return Array(
            Array("ID"=>"PHPBB2", "NAME"=>"PhpBB2 Board")
            );
    }

    function OnAuthorize(&$arArgs)
    {
        extract($arArgs);

        global $DB, $APPLICATION, $USER;
        $user_id = $USER->GetParam("PHPBB2_USER_ID");
        if($user_id<=0)
            return;
        $table_user = PHPBB2_TABLE_PREFIX."users";
        $table_sessions = PHPBB2_TABLE_PREFIX."sessions";
        $table_config = PHPBB2_TABLE_PREFIX."config";

        $dbConfig = $DB->Query("SELECT * FROM ".
                               $table_config.
                               " WHERE config_name
                                 IN ('cookie_name', 'cookie_path', 'cookie_domain', 'cookie_secure')");
        while($arConfig = $dbConfig->Fetch())
            ${$arConfig['config_name']} = $arConfig['config_value'];

        if (isset($HTTP_COOKIE_VARS[$cookie_name . '_sid']) ||
            isset($HTTP_COOKIE_VARS[$cookie_name . '_data']))
            $session_id = isset($HTTP_COOKIE_VARS[$cookie_name . '_sid']) ?
                               $HTTP_COOKIE_VARS[$cookie_name . '_sid'] : '';

        $ip_sep = explode('.', $_SERVER['REMOTE_ADDR']);
        $user_ip = sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
        $current_time = time();
        $sql =
            "UPDATE ".$table_sessions." SET ".
            "    session_user_id = ".$user_id.", ".
            "    session_start = ".$current_time.", ".
            "    session_time = ".$current_time.", ".
            "    session_page = 0, ".
            "    session_logged_in = 1 ".
            "WHERE session_id = '".$DB->ForSQL($session_id)."' ".
            "    AND session_ip = '".$user_ip."'";

        $r = $DB->Query($sql);
        if($r->AffectedRowsCount()<=0)
        {
            $session_id = md5(uniqid($user_ip));
            $sql =
                "INSERT INTO ".
                $table_sessions.
                "(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in)".
                "VALUES ('".$session_id."', ".$user_id.", ".$current_time.", ".$current_time.", '".$user_ip."', 0, 1)";
            $DB->Query($sql);
        }

        $sql =
            "UPDATE ".$table_user." SET ".
            "    user_session_time = ".$current_time.", ".
            "    user_session_page = 0, ".
            "    user_lastvisit = ".$current_time." ".
            "WHERE user_id = ".$user_id;

        $DB->Query($sql);

        $sessiondata = Array('userid' => $user_id);

        setcookie($cookie_name.'_data',
                  serialize($sessiondata),
                  $current_time + 31536000,
                  $cookie_path,
                  $cookie_domain, $cookie_secure);
        setcookie($cookie_name.'_sid',
                  $session_id, 0, $cookie_path,
                  $cookie_domain, $cookie_secure);
    }
}
?>

Следующие строки необходимо добавить в /bitrix/php_interface/init.php:

<?
AddEventHandler(
    "main",
    "OnUserLoginExternal",
    Array("__PHPBB2Auth", "OnUserLoginExternal"),
    100,
    $_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/scripts/phpbb.php'
    );

AddEventHandler(
    "main",
    "OnExternalAuthList",
    Array("__PHPBB2Auth", "OnExternalAuthList"),
    100,
    $_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/scripts/phpbb.php'
    );

AddEventHandler(
    "main",
    "OnAfterUserAuthorize",
    Array("__PHPBB2Auth", "OnAuthorize"),
    100
    );
?>

В качестве примера ещё один скрипт внешней авторизации - для форума Invision Power Board:

<?
define("IPB_TABLE_PREFIX", "ibf_");
define("IPB_VERSION", "2");

AddEventHandler("main", "OnUserLoginExternal", Array("__IPBAuth", "OnUserLoginExternal"));
AddEventHandler("main", "OnExternalAuthList", Array("__IPBAuth", "OnExternalAuthList"));

class __IPBAuth
{
    function OnUserLoginExternal(&$arArgs)
    {
        extract($arArgs);

        ////////// <settings> ////////////
        $table_user = IPB_TABLE_PREFIX."members";
        $table_converge = IPB_TABLE_PREFIX."members_converge";
        $groups_map = Array(
            /*'IPB Group ID' => 'Local Group ID',*/
            '4' => '1'
            );
        ////////// </settings> ////////////

        global $DB, $USER, $APPLICATION;

        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);
                $arArgs["store_password"] = "N";

                return $ID;
            }
        }
    }

    function OnExternalAuthList()
    {
        return Array(
            Array("ID"=>"IPB", "NAME"=>"Invision Power Board")
            );
    }
}
?>

Для того чтобы данный скрипт начал работать, его необходимо подключить в /bitrix/php_interface/init.php.

См. также

  • AddEventHandler
  • OnUserLoginExternal
  • OnExternalAuthList
  • Обработка событий


Обработка событий

Иногда бывает необходимо повлиять на ход выполнения какой-нибудь API функции. Но если ее изменить, то эти изменения будут утеряны при очередном обновлении. Для таких случаем и разработана система событий. В ходе выполнения некоторых API функций, в определённых точках установлены вызовы определённых функций, так называемых обработчиков события.

Какие функции-обработчики должны быть вызваны в каком месте (при каком событии) нужно устанавливать вызовом функции, регистрирующей обработчики. В данный момент их две: AddEventHandler и RegisterModuleDependences. Сам набор событий для каждого модуля описан в документации по каждому модулю. Например, события главного модуля расположены по этой ссылке.

Теперь подробнее о регистрации функций-обработчиков:

RegisterModuleDependences - функция для регистрации обработчиков, расположенных в модулях и используются для взаимодействия между модулями системы. Эту функцию необходимо вызвать один раз при инсталляции модуля, после этого функция-обработчик события будет автоматичеки вызываться в определённый момент, предварительно подключив сам модуль.

Пример

// функции обработчики модуля компрессии подключаются дважды - в начале и в конце каждой страницы
RegisterModuleDependences("main", "OnPageStart", "compression", "CCompress", "OnPageStart", 1);
RegisterModuleDependences("main", "OnAfterEpilog", "compression", "CCompress", "OnAfterEpilog");

// инсталлятор модуля рекламы регистирует пустой обработчик
// при возникновении события OnBeforeProlog модуль рекламы будет просто подключаться на каждой странице
// что сделает возможным выполнять его API функции без предварительного подключения в теле страницы
RegisterModuleDependences("main", "OnBeforeProlog", "advertising");

AddEventHandler - функция предназначена для регистрации произвольных обработчиков, которые не расположены в модулях. Ее необходимо вызывать до возникновения события на тех страницах где требуется его обработать. Например, если событие нужно обработать на всех страницах где оно возникает, то функцию можно вызвать в /bitrix/php_interface/init.php.

Пример

// регистрация обработчика в /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeUserLogin", "MyOnBeforeUserLoginHandler");
function MyOnBeforeUserLoginHandler($arFields)
{
   if(strtolower($arFields["LOGIN"])=="guest")
   {
       global $APPLICATION;
       $APPLICATION->throwException("Пользователь с именем входа Guest не может быть авторизован.");
       return false;
   }
}

Как правило, события делятся по месту возникновения и назначению на следующие группы:
- предназначенные для отмены дальнейшего выполнения метода, например, событие OnBeforeDeleteUser позволяет отменить удаление пользователя при заданных условиях (наличие критических связанных объектов), событие OnBeforeUserLogin - запретить авторизацию пользователю.
- позволяющие выполниться в определённых методах, при завершении их исполнения, например, OnAfterUserLogin - после проверки имени входа и пароля, событие OnUserDelete - перед непосредственным удалением пользователя из БД, позволяет удалить связанные объекты.
- возникающие во время исполнения страницы, для того чтобы включить свой код в определённые места на странице, например, OnBeforeProlog (подробнее см. порядок выполнения страниц).

Подробнее о месте возникновения и возможностей применения смотрите в описании каждого события.

См. также

  • AddEventHandler
  • RegisterModuleDependences
  • Взаимодействие модулей
  • Список событий главного модуля
  • Порядок выполнения страниц


Модули

Введение

Система "Битрикс: Управление сайтом" поставляется в различных редакциях. Каждая редакция представляет из себя комбинацию стандартных модулей. При этом у вас есть возможность создать свой собственный модуль. Количество модулей в системе не ограничено.

Данный раздел посвящен созданию своего собственного модуля. Помимо этого раздела вы можете познакомиться со статьями посвященными разработке под "Битрикс: Управление сайтом", в том числе и разработке модулей.

Оглавление раздела

  • Структура файлов - описание структуры обязательных файлов модуля
  • Административные скрипты - описание схемы работы скриптов модуля в административной части
  • Административное меню - описание схемы работы административного меню модуля
  • Языковые файлы - описание схемы расположения языковых файлов и их подключения в административных скриптах и компонентах модуля
  • Описание модуля - описание класса используемого системой для взаимодействия с модулем (инсталляции, деинсталляции, получение списка прав и т.п.)
  • Инсталляция - описание обязательных действий при инсталляции
  • Деинсталляция - описание обязательных действий при деинсталляции
  • Параметры модуля - описана технология хранения и манипуляции параметрами модуля
  • Взаимодействие модулей - описана технология явного взаимодействия модулей и их взаимодействие посредством событий
  • Идентификаторы - таблица идентификаторов стандартных модулей


Структура файлов

Структура обязательных файлов модуля:

  • /bitrix/modules/ID модуля/ - корневой каталог модуля
    • /admin/ - каталог с административными скриптами модуля
      • menu.php - файл с административным меню модуля
    • /classes/ - скрипты с классами модуля
      • /general/ - классы модуля не зависящие от используемой базы данных
      • /mysql/ - классы модуля предназначенные для работы только с MySQL
      • /oracle/ - классы модуля предназначенные для работы только с Oracle
    • /lang/ID языка/ - каталог с языковыми файлами скриптов модуля
      • /install/ - каталог с файлами используемыми для инсталляции и деинсталляции модуля
        • /admin/ - каталог со скриптами подключающими административные скрипты модуля (вызывающие скрипты)
          • /db/ - каталог с SQL скриптами для инсталляции/деинсталляции базы данных
            • /mysql/ - SQL скрипты для инсталляции/деинсталляции таблиц в MySQL
            • /oracle/ - SQL скрипты для инсталляции/деинсталляции таблиц в Oracle
          • /images/ - каталог с изображениями используемыми модулем; после инсталляции модуля они должны быть скопированы в каталог /bitrix/images/ID модуля/
            • /templates/ - каталог с компонентами модуля
              • /ID модуля/ - каталог с основными файлами компонент
              • /lang/ID языка/ID модуля/ - в данном каталоге находятся языковые файлы компонент модуля
            • index.php - файл с описанием модуля
          • include.php - данный файл подключается в тот момент когда речь идет о подключении модуля в коде, в нем должны находиться включения всех файлов с библиотеками функций и классов модуля
            • default_option.php - содержит массив с именем $ID модуля_default_option, в котором заданы значения по умолчанию для параметров модуля
              • options.php - данный файл подключается на странице настройки параметров модулей в административном меню "Настройки"
                • prolog.php - файл который должен подключаться во всех административных скриптах модуля, помимо всего прочего должен содержать инициализацию двух переменных:
                  ADMIN_MODULE_NAME - идентификатор модуля
                  ADMIN_MODULE_ICON - HTML код для большой иконки модуля выводимой над заголовком страницы.


Административные скрипты

Административные скрипты - это скрипты используемые модулем в административной части системы. Они должны располагаться в каталоге /bitrix/modules/ID модуля/admin/.

Необходимо учитывать, что напрямую в браузере административные скрипты нельзя вызывать (как в общем-то и любые скрипты каталога /bitrix/modules/). Поэтому для их вызова используются дополнительные одноименные скрипты находящиеся в каталоге /bitrix/admin/ (назовем их вызывающие скрипты). Они как правило состоят только из подключения одноименного административного скрипта:

<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/ID модуля/admin/имя скрипта");
?>

При инсталляции модуля, вызывающие скрипты должны быть скопированы из каталога /bitrix/modules/ID модуля/install/admin/ в каталог /bitrix/admin/.

В момент деинсталляции модуля вызывающие скрипты должны быть удалены из каталога /bitrix/admin/.

Необходимо учитывать, что вызывающие скрипты всех инсталлированных модулей находятся в одном каталоге /bitrix/admin/, поэтому во избежание дублирования, желательно давать им имена начинающиеся с какого-либо префикса характерного только для соответствующего модуля.

В каждом административном скрипте до подключения визуальной части административного пролога необходимо определять две константы:

  • ADMIN_MODULE_NAME - идентификатор вашего модуля (см. для примера идентификаторы стандартных модулей)
  • ADMIN_MODULE_ICON - HTML код для большой иконки модуля выводимой над заголовком страницы
Они необходимы для формирования иконки над заголовком страницы.

Пример определения таких констант:

define("ADMIN_MODULE_NAME", "statistic");
define("ADMIN_MODULE_ICON", "<a href=\"stat_list.php?lang=".LANGUAGE_ID."\">
<img src=\"/bitrix/images/statistic/statistic.gif\"
width=\"48\" height=\"48\" border=\"0\" alt=\"".GetMessage("STAT_MODULE_TITLE")."\"
title=\"".GetMessage("STAT_MODULE_TITLE")."\"></a>");


Административное меню

Меню административной части выводиться стандартной функцией CMain::GetMenuHtmlEx.

Шаблон меню храниться в файле:

/bitrix/modules/main/interface/.left.menu_template.php

Основным файлом собирающим пункты меню является:

/bitrix/modules/main/interface/.left.menu.php
В нем происходит перебор всех файлов /bitrix/modules/ID модуля/admin/menu.php. В каждом таком файле содержиться определение массива $aModuleMenuLinks, содержащего пункты меню соответствующего модуля. Все эти массивы затем будут объеденены в стандартный массив $arMenuSections, содержащий информацию о всех пунктах меню (см. подробнее в разделе "Меню").

Структура массива $aModuleMenuLinks:

Array
(
    [0] => Array
        (
            [0] => заголовок пункта меню
            [1] => ссылка на пункте меню
            [2] => Array
                (
                    [0] => дополнительный ссылка для подсветки пункта меню 1
                    [1] => дополнительный ссылка для подсветки пункта меню 2
                    ...
                    [N] =>  дополнительный ссылка для подсветки пункта меню N
                )
            [3] => Array
                (
                    [ALT] => текст всплывающей подсказки на пункте меню
                    [SECTION_ID] => уникальный идентификатор раздела меню,
                                    принимает значение равное ID модуля,
                                    либо одно из следующих:
                                       FAVORITE - раздел "Избранное"
                                       GENERAL - раздел "Пользователи"
                                       MAIN - раздел "Настройки системы"

                    [SEPARATOR] => "Y" - пункт меню является заголовком раздела меню
                    [SORT] => сортировка раздела меню
                              относительно других разделов меню (только если SEPARATOR=Y)
                    [ICON] => ссылка на маленькую иконку используемую
                              в заголовке раздела меню (только если SEPARATOR=Y)
                    [BIG_ICON] => ссылка на большую иконку для использование
                                  на странице "Рабочий стол" (только если SEPARATOR=Y)
                    [INDEX_PAGE] => ссылка на иконке BIG_ICON (только если SEPARATOR=Y)
                )

        )
    [1] => Array( -//- )
    [2] => Array( -//- )
    ...
    [M] => Array( -//- )
)

Пример файла /bitrix/modules/support/admin/menu.php определяющего меню модуля "Техподдержка":

<?
// подключим языковой файл
IncludeModuleLangFile(__FILE__);

// определим права текущего пользователя
$SUP_RIGHT = $APPLICATION->GetGroupRight("support");

// если доступ не запрещён то
if($SUP_RIGHT>"D")
{
    // добавляем пункты меню в зависимости от прав

    $aModuleMenuLinks[] = Array(
            GetMessage("SUP_M_SUPPORT"),
            "",
            Array(),
            Array(
                "SEPARATOR"  => "Y",
                "SORT"       => 1000,
                "ICON"       => "/bitrix/images/support/mnu_support.gif",
                "BIG_ICON"   => "/bitrix/images/support/support.gif",
                "INDEX_PAGE" => "/bitrix/admin/ticket_desktop.php?lang=".LANGUAGE_ID."&set_default=Y"
                )
            );

    if ($SUP_RIGHT>="T")
    {
        $aModuleMenuLinks[] = Array(
                GetMessage("SUP_M_REPORT_TABLE"),
                "/bitrix/admin/ticket_desktop.php?lang=".LANGUAGE_ID."&set_default=Y",
                Array("/bitrix/admin/ticket_desktop.php"),
                Array("ALT"=>GetMessage("SUP_M_REPORT_TABLE_ALT"))
                );
    }

    $aModuleMenuLinks[] = Array(
            GetMessage("SUP_M_TICKETS"),
            "/bitrix/admin/ticket_list.php?lang=".LANGUAGE_ID."&set_default=Y",
            Array(
                "/bitrix/admin/ticket_list.php",
                "/bitrix/admin/ticket_edit.php",
                "/bitrix/admin/ticket_message_edit.php"
                ),
            Array("ALT"=>GetMessage("SUP_M_TICKETS_ALT"))
            );

    if ($SUP_RIGHT>="T")
    {
        $aModuleMenuLinks[] = Array(
                GetMessage("SUP_M_REPORT_GRAPH"),
                "/bitrix/admin/ticket_report_graph.php?lang=".LANGUAGE_ID."&set_default=Y",
                Array("/bitrix/admin/ticket_report_graph.php"),
                Array("ALT"=>GetMessage("SUP_M_REPORT_GRAPH_ALT"))
                );
    }

    if ($SUP_RIGHT>="V")
    {
        $aModuleMenuLinks[] = Array(
                GetMessage("SUP_M_CATEGORY"),
                "/bitrix/admin/ticket_dict_list.php?lang=".LANGUAGE_ID."&find_type=C&set_filter=Y",
                Array(
                    "/bitrix/admin/ticket_dict_edit.php?find_type=C",
                    "/bitrix/admin/ticket_dict_list.php?find_type=C"
                    )
                );
    }
}
?>

Если вы не пишете свой модуль и возникла необходимость добавить произвольный пункт в административное меню, то необходимо в файле /bitrix/admin/.left.menu.php, инициализировать массив $aMenuLinks соответствующими значениями.

Пример файла /bitrix/admin/.left.menu.php добавляющего произвольный пункт меню:

<?
// добавим пункт меню "Импорт техники" в раздел "Информ. блоки"
$aMenuLinks = Array(
    Array(
        "Импорт техники",
        "/bitrix/admin/equipment_import.php?lang=ru",
        Array(),
        Array(
            "ALT" => "Импорт техники из dbf файлов",
            "SECTION_ID" => "iblock",
            "SORT" => "100"
        )
    )
);
?>

См. также

  • Меню
  • CMain::GetMenuHtmlEx


Языковые файлы

Для административных скриптов модуля языковые файлы должны располагаться в каталоге:

/bitrix/modules/ID модуля/lang/ID языка/

Особенностью их расположения внутри этого каталога является то, что они должны располагаться строго по тому же пути относительно каталога /bitrix/modules/ID модуля/, что одноименные файлы в которых они подключаются. В этом случае подключение языковых файлов может осуществляться только функцией IncludeModuleLangFile.

К примеру для скрипта:

/bitrix/modules/ID модуля/admin/body/my_script.php

языковой файл должен быть:

/bitrix/modules/ID модуля/lang/ID языка/admin/body/my_script.php

И подключаться кодом:

IncludeModuleLangFile(__FILE__);


Описание модуля

Каждый модуль должен быть корректно описан в системе для того, чтобы система знала, как с этим модулем работать. Некорректно описаные модули могут привести к полной или частичной неработоспособности системы (например, может не работать система обновлений).

Основным файлом используемым системой для манипуляции модулем является /bitrix/modules/ID модуля/install/index.php. Основное назначение этого файла - это размещение в нем класса с именем совпадающем с ID модуля.

Обязательные методы этого класса:

  • DoInstall - запускается при нажатии кнопки "Установить" в административном меню "Модули", осуществляет инсталляцию модуля (о функции см. подробнее CModule::DoInstall)
  • DoUninstall - запускается при нажатии кнопки "Удалить" в административном меню "Модули", осуществляет деинсталляцию модуля (о функции см. подробнее CModule::DoUninstall)

Необязательный метод этого класса:

  • GetModuleRightList - возвращает список уникальных прав (или ролей) модуля (о функции см. подробнее CModule::GetModuleRightList)

Обязательные свойства объекта этого класса:

  • MODULE_ID - хранит ID модуля
  • MODULE_VERSION - текущая версия модуля в формате XX.XX.XX
  • MODULE_VERSION_DATE - строка содержащая дату версии модуля; дата должна быть задана в формате YYYY-MM-DD HH:MI:SS
  • MODULE_NAME - имя модуля
  • MODULE_DESCRIPTION - описание модуля
  • MODULE_GROUP_RIGHTS - если задан метод GetModuleRightList, то данное свойство должно содержать "Y"

Пример файла с описанием модуля "Веб-формы"

<?
global $MESS;
$PathInstall = str_replace("\\", "/", __FILE__);
$PathInstall = substr($PathInstall, 0, strlen($PathInstall)-strlen("/index.php"));
IncludeModuleLangFile($PathInstall."/install.php");
include($PathInstall."/version.php");
if(class_exists("form")) return;
Class form extends CModule
{
    var $MODULE_ID = "form";
    var $MODULE_VERSION;
    var $MODULE_VERSION_DATE;
    var $MODULE_NAME;
    var $MODULE_DESCRIPTION;
    var $MODULE_GROUP_RIGHTS = "Y";

    function form()
    {
        $this->MODULE_VERSION = FORM_VERSION;
        $this->MODULE_VERSION_DATE = FORM_VERSION_DATE;
        $this->MODULE_NAME = GetMessage("FORM_MODULE_NAME");
        $this->MODULE_DESCRIPTION = GetMessage("FORM_MODULE_DESCRIPTION");
    }

    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");
        }
    }

    function DoUninstall()
    {
        global $DB, $APPLICATION, $step;
        $FORM_RIGHT = $APPLICATION->GetGroupRight("form");
        if ($FORM_RIGHT=="W")
        {
            $step = IntVal($step);
            if($step<2)
                $APPLICATION->IncludeAdminFile(GetMessage("FORM_UNINSTALL_TITLE"),
                $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/install/unstep1.php");
            elseif($step==2)
                $APPLICATION->IncludeAdminFile(GetMessage("FORM_UNINSTALL_TITLE"),
                $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/install/unstep2.php");
        }
    }

    function GetModuleRightList()
    {
        global $MESS;
        $arr = array(
            "reference_id" => array("D","R","W"),
            "reference" => array(
                GetMessage("FORM_DENIED"),
                GetMessage("FORM_OPENED"),
                GetMessage("FORM_FULL"))
            );
        return $arr;
    }
}
?>

См. также

  • Права доступа в рамках логики модуля
  • CModule::DoInstall
  • CModule::DoUninstall
  • CModule::GetModuleRightList
  • CMain::IncludeAdminFile


Инсталляция модуля

Инсталляция модуля в административном интерфейсе осуществляется в меню "Модули" нажатием кнопки "Установить". При этом будет вызван метод DoInstall класса с именем совпадающем с ID модуля. Этот класс дожен быть описан в файле /bitrix/modules/ID модуля/install/index.php (см. подробнее Описание модуля).

В процессе инсталляции модуля должны быть выполнены в обязательном порядке:

  • Регистрация модуля, которая осуществляется с помощью функции RegisterModule
  • Если модуль обладает административными скриптами, то для их вызова в каталог /bitrix/admin/ должны быть скопированы вызывающие скрипты.
  • Все изображения, используемые модулем, должны быть скопированы в каталог /bitrix/images/ID модуля/.

См. также

  • Описание модуля
  • Структура файлов модуля
  • RegisterModule
  • RegisterModuleDependences
  • CAgent::AddAgent
  • COption::SetOptionString
  • CDataBase::RunSQLBatch
  • CopyDirFiles


Деинсталляция модуля

Деинсталляция модуля в административном интерфейсе осуществляется в меню "Модули" нажатием кнопки "Удалить". При этом будет вызван метод DoUninstall класса с именем совпадающем с ID модуля. Этот класс дожен быть описан в файле /bitrix/modules/ID модуля/install/index.php (см. подробнее Описание модуля).

В процессе деинсталляции модуля должны быть выполнены в обязательном порядке:

  • Удаление регистрационной записи модуля, которая осуществляется с помощью функции UnRegisterModule
  • Если модуль обладает административными скриптами, то вызывающие их скрипты должны быть удалены из каталога /bitrix/admin/.
  • Все изображения, используемые модулем, должны быть удалены из каталога /bitrix/images/ID модуля/.

См. также

  • Описание модуля
  • Структура файлов модуля
  • UnRegisterModule
  • UnRegisterModuleDependences
  • CAgent::RemoveModuleAgents
  • COption::RemoveOption
  • CDataBase::RunSQLBatch
  • DeleteDirFiles


Параметры модуля

Параметры модуля доступны в административном интерфейсе в меню "Настройки". При выборе модуля на данной странице, система подключает файл /bitrix/modules/ID модуля/options.php, предназначенный для управления параметрами модуля, назначения прав на модуль и т.п.

Параметры модуля хранятся в базе данных.

Для работы с параметрами модуля предназначен класс COption, со следующими методами:

  • COption::SetOptionString - установка строковых параметров
  • COption::SetOptionInt - установка числовых параметров
  • COption::GetOptionString - получение строковых параметров
  • COption::GetOptionInt - получение числовых параметров
  • COption::RemoveOption - удаление параметра

При получении параметров модуля, может использоваться значение по умолчанию, задаваемое в файле /bitrix/modules/ID модуля/default_option.php. В данном файле определяется массив $ID модуля_default_option, хранящий значения по умолчанию.

Пример файла /bitrix/modules/ID модуля/default_option.php

<?
$support_default_option = array(
    "SUPPORT_DIR"                => "#SITE_DIR#support/",
    "SUPPORT_MAX_FILESIZE"       => "100",
    "ONLINE_INTERVAL"            => "900",
    "DEFAULT_VALUE_HIDDEN"       => "N",
    "NOT_IMAGE_EXTENSION_SUFFIX" => "_",
    "NOT_IMAGE_UPLOAD_DIR"       => "support/not_image",
    "DEFAULT_AUTO_CLOSE_DAYS"    => "7"
    );
?>

Пример использования

<?
// установим строковый параметр
COption::SetOptionString("my_module_id", "MY_PARAMETER_ID", "VALUE");

// получим строковый параметр
$value = COption::GetOptionString("my_module_id", "MY_PARAMETER_ID", "DEFAULT_VALUE");
?>

См. также

  • COption
  • Параметры страницы


Взаимодействие модулей

Модули могут взаимодействовать между собой двумя способами: явно (прямым вызовом) и скрыто (через систему событий).

Явное взаимодействие

Явное взаимодействие подразумевает:

  • Подключение модуля с помощью функции CModule::IncludeModule
  • Непосредственный вызов метода класса или функции модуля

Пример явного взаимодействия:

<?
// подключаем модуль mymodule
if (CModule::IncludeModule("mymodule"))
{
    // выполним его метод
    CMyModuleClass::DoIt();
}
?>

Взаимодействие через события

Каждый модуль может предоставить другим модулям интерфейс для неявного взаимодействия - набор событий. Такое взаимодействие позволяет сделать модули максимально независимыми друг от друга. Модуль ничего не знает об особенностях функционирования другого модуля, но может взаимодействовать с ним через интерфейс событий.

Опишем схему работы с событиями. Тот модуль который инициирует событие, в том месте кода где это событие происходит, должен выполнить следующее:

  • Собрать все зарегистрированные обработчики с помощью функции GetModuleEvents.
  • Выполнить их по одному с помощью функции ExecuteModuleEvent, обрабатывая соответстсвующим образом возвращаемые обработчиками значения.
В свою очередь, модуль который хочет выполнить какие либо действия на это событие должен:
  • Зарегистрировать в момент инсталляции свой обработчик. Регистрация осуществляется с помощью функции RegisterModuleDependences.
  • Соответственно необходимо иметь эту функцию-обработчик и убедиться, что скрипт, в котором эта функция находится, подключается в файле /bitrix/modules/ID модуля/include.php.

Таким образом событие - это какое либо произвольное действие, в момент выполнения которого (до или после) собираются все обработчики этого события и выполняются по одному.

Ярким примером взаимодействия такого типа является взаимодействие модулей системы с модулем поиска. Модуль поиска не имеет никакой информации о данных других модулей, особенностях их хранения и обработки. Он предоставляет интерфейс для индексации данных. Любой модуль системы, который должен индексироваться модулем поиска, при инсталляции регистрирует обработчик на событие OnReindex. Каждый такой обработчик в свою очередь возвращает данные для индексации, которые модуль поиска использует для наполнения своей базы.

Список событий главного модуля доступен в разделе "События".

Пример взаимодействия через события:

<?
// регистрация обработчика:
// когда в модуле init_module возникнет событие OnSomeEvent
// будет вызван метод CMyModuleClass::Handler модуля handler_module

RegisterModuleDependences(
    "init_module", "OnSomeEvent",
    "handler_module", "CMyModuleClass", "Handler"
    );
?>

<?
// произвольная функция модуля init_module
// в которой генерируется событие

function MyFunction()
{
    // здесь располагается произвольный код
    // представляющий из себя событие

    // далее следует сбор зарегистрированных обработчиков
    $rsHandlers = GetModuleEvents("anothermodule", "OnSomeEvent");
    while($arHandler = $rsHandlers->Fetch())
    {
        // и их выполнение по одному
        if(!ExecuteModuleEvent($arHandler, $param1, $param2))
        {
            // если обработчик вернет false,
            // то например, вернем надпись "I can't do it..."
            return "I can't do it...";
        }
    }
    return "I have done it!";
}
?>

<?
// обработчик

class CMyModuleClass
{
    function Handler($param1, $param2)
    {
        if($param1=="delete all")
            return false;
        return true;
    }
}
?>


Идентификаторы модулей

Таблица идентификаторов стандартных модулей:
Идентификатор | Имя
main | Главный модуль.
fileman | Управление структурой.
iblock | Информационные блоки.
sale | Интернет-магазин.
currency | Валюты.
catalog | Торговый каталог.
form | Веб-формы.
workflow | Документооборот.
statistic | Статистика.
advertising | Реклама, баннеры.
support | Техподдержка.
mail | Почта.
vote | Опросы, голосования.
forum | Форум.
subscribe | Подписка, рассылки.
translate | Перевод.
ldap | AD/LDAP
search | Поиск.
compression | Компрессия.


Сайты

Введение

Продукт "1С-Битрикс: Управление сайтом" поддерживает многосайтовость, т.е. на базе одного экземпляра продукта можно создавать и поддерживать неограниченное количество сайтов. Синонимом термина "экземпляр продукта" может служить термин "портал". Портал состоит из одного и более сайтов.

Строго говоря, сайт - это совокупность таких понятий как:

  • учетная запись в базе данных - создаётся в административном меню "Сайты", включает в себя следующие основные параметры:
    • идентификатор - набор символов идентифицирующий сайт
    • доменное имя - одно или более доменное имя сайта
    • папка сайта - путь к каталогу в котором будет храниться публичная часть сайта
    • язык сайта
    • формат даты
    • формат времени
    • URL - протокол и доменное имя по умолчанию (например, "http://www.site.ru")
    • DocumentRoot - если многосайтовость организована по способу 2, то в данном параметре должен храниться путь в файловой системе сервера к корню сайта
    • условия подключения шаблонов - каждый сайт может иметь один или более шаблонов для отображения скриптов своей публичной части, каждый такой шаблон может быть подключен по тому или иному условию
  • публичная часть - совокупность скриптов (страниц) лежащих в "папке сайта" и принадлежащих этому сайту
  • настройки - каждый модуль может иметь ряд настроек связанных с сайтом, например, у модуля "Информационные блоки" эти настройки представляют из себя привязку информационного блока к тому или иному сайту, у модуля "Техподдержка" - привязку статуса, категории и т.п. к сайту.

В публичной части, ID текущего сайта храниться в константе SITE_ID.

Оглавление раздела

  • Многосайтовость - способы организации многосайтовости
  • Шаблоны сайта - описание структуры шаблона сайта и способов его подключения к сайту


Многосайтовость

Возможности многосайтовой версии

Технически многосайтовая версия продукта может работать в двух конфигурационных режимах:

  • Способ 1. Продукт и все сайты работают под управлением одной копии веб-сервера Apache.
  • Способ 2. Каждый сайт работает под управлением отдельной копии веб-сервера Apache или отдельного виртуального веб-сервера.

Дистрибутив программного продукта поставляется сконфигурированным для работы по первому способу.

Обе конфигурации будут рассмотрены на примере создания многосайтовой системы, состоящей из двух сайтов:

  • www.site1.com - корпоративный сайт компании
  • www.site2.com - Интернет-магазин компании

Способ 1. Один веб-сервер для всех сайтов.

В первом способе работы мы располагаем одним веб-сервером Apache, DocumentRoot которого настроен на каталог /home/www/allsites/.

Установим программный продукт "1С-Битрикс: Управление сайтом" в этот каталог.

Каждый сайт в первом способе конфигурации должен быть размещён в отдельном подкаталоге внутри единого каталога, например:

  • /home/www/allsites/s1/
  • /home/www/allsites/s2/

Имена каталогов s1, s2 можно выбирать любыми, например, shop и company, или en и de соответственно. Возможен так же вариант, когда один из сайтов располагается в корневом каталоге (например, /home/www/allsites/), а второй сайт в подкаталоге (например, /home/www/allsites/s2/).

Но принципиально важно для работы данной конфигурации, что сайты разделены по подкаталогам и структура файлов не пересекается.

В конфигурационном файле httpd.conf веб-сервера Apache это будет соответствовать примерно следующей записи:

<VirtualHost *:80>
    ServerAdmin admin@site1.com
    DocumentRoot "/home/www/allsites/"
    ServerName www.site1.com
    ErrorLog logs/allsite.log
    CustomLog logs/allsite.log  common
</VirtualHost>

Обратите внимание, что параметр DocumentRoot имеет значение /home/www/allsites/ и явно указывает на каталог, в котором установлен продукт. Для двух сайтов параметр DocumentRoot будет иметь одно и тоже значение.

Строка <VirtualHost *:80> указывает на то, что веб-сервер будет отвечать на любое доменное имя по любому IP адресу. Т.е. при соответствующей настройке DNS сервера, веб-сервер будет отвечать по любому из имен www.site1.com или www.site2.com.

Следующий шаг в настройке данной конфигурации - правильное конфигурирование сайтов в программном продукте.

Настройка сайтов выполняется в административном разделе системы в административном пункте меню "Настройки системы" - "Сайты".

Выбираем "Изменить" параметры сайта #1 (www.site1.com) и указываем в них:

  • Название: site1
  • Доменное имя: www.site1.com
  • Папка сайта: /s1/
  • URL сервера: www.site1.com
  • Название сайта: Корпоративный сайт компании "Название компании"
  • Путь к корневой папке веб-сервера для этого сайта: оставить пустым

Если DNS настроен таким образом что ваш сайт отвечает на адрес http://site1.com, то в поле Доменное имя желательно указывать без www. Можно перечислить в этом поле с новой строки любое число доменных имен, по которым вы хотите, чтобы отвечал сайт (или уже отвечает).

Важно иметь в виду, что значения, указанные в поле Доменное имя используется продуктом для распространения в указанные домены информации о посетителях по технологии переноса посетителей. Поэтому крайне желательно указывать полный список доменов, по которым может ответить сайт.

Очень важно не указывать в списке доменов сайты, которые не работают на данном экземпляре продукта. Указанный неправильно или несуществующий домен может замедлить работу пользователей, но фактически не позволит перенести данные в сайты, работающие не на общем экземпляре продукта.

В параметре "Папка сайта" необходимо указывать путь относительно корня к каталогу в котором расположена публичная часть сайта. А "Путь к корневой папке веб-сервера для этого сайта" не используется в данном способе настройки многосайтовости и должен быть пустым для всех сайтов.

Аналогично настроим параметры сайта #2 (www.site2.com):

  • Название: site2
  • Доменное имя: site2.com
  • Папка сайта: /s2/
  • URL сервера: www.site2.com
  • Название сайта: Интернет-магазин компании "Название компании"
  • Путь к корневой папке веб-сервера для этого сайта: оставить пустым

Конфигурация почти готова к работе. Осталось настроить механизм выбора сайта на главной странице портала в файле /index.php.

Посетитель каждого из сайтов, заходя по адресу http://www.site1.com или http://www.site2.com, попадает фактически на страницу /index.php лежащую в каталоге указанную в параметре DocumentRoot настроек веб-сервера. В многосайтовой конфигурации роль этого файла немного меняется, и в нем необходимо разместить уже не содержимое индексной страницы корня одного из сайтов, а PHP код осуществляющий выбор одного из сайтов в зависимости от текущего доменного имени.

При решении данной задачи могут быть использованы следующие функции класса CMainPage:

  • CMainPage::GetSiteByHost - возвращает ID сайта, определяя его по текущему доменному имени.
  • CMainPage::GetSiteByAcceptLanguage - возвращает ID сайта, определяя его по переменной Accept-Language в настройках браузера пользователя.
  • CMainPage::GetIncludeSitePage - возвращает абсолютный путь на индексную страницу папки указанного сайта, для дальнейшего его подключения.
  • CMainPage::RedirectToSite - перенаправляет на индексную страницу папки указанного сайта.

Пример индексной страницы портала состоящего из нескольких сайтов, когда сайт определяется по текущему доменному имени:

<?
// подключим файл с классом CMainPage
require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/mainpage.php");

// получим идентификатор текущего сайта по доменному имени
$site_id = CMainPage::GetSiteByHost();

// получим абсолютный путь к индексной странице папки сайта
$page = CMainPage::GetIncludeSitePage($site_id);

// если сайт определён и определена индексная страница то
if(strlen($site_id)>0 && strlen($page)>0)
{
    // подключим страницу
    require_once($page);
}
else // иначе если сайт не определён то
{
    require($_SERVER['DOCUMENT_ROOT']."/bitrix/header.php");
    // далее можно разместить код который будет отображаться если
    // сайт ранее не был определён
    ?>

    <?require($_SERVER['DOCUMENT_ROOT']."/bitrix/footer.php");
}
?>

Представленный выше пример кода определяет доменное имя, по которому пришел посетитель, используя функцию CMainPage::GetSiteByHost, сверяет это доменное имя с именами, указанными в настройках сайтов в поле "Доменное имя" для определения ID сайта и производит включение в тело документа индексной страницы из папки соответствующего сайта, используя функцию CMainPage::GetIncludeSitePage.

В нашем примере это будет означать, что посетителю, пришедшему по адресу http://www.site1.com будет, без редиректа, прямо в теле текущей страницы, представлена страница /s1/index.php. А посетителю, пришедшему по адресу http://www.site2.com - страница /s2/index.php.

Использование приведенного алгоритма позволяет избежать редиректов для пользователей и поисковых роботов, обеспечивает удобную работу c многосайтовой конфигурацией. Данный алгоритм является рекомендуемым, но не единственным при работе с многосайтовой версией.

Если ваши сайты являются, по сути, разными международными языковыми зеркалами, то вы можете использовать вариант определения сайта по установленным в браузере посетителя языкам.

Пример индексной страницы портала состоящего из нескольких сайтов, когда сайт определяется по установленным в браузере посетителя языкам:

<?
// подключим файл с классом CMainPage
require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/mainpage.php");

// получим идентификатор сайта по Accept-Language
$site_id = CMainPage::GetSiteByAcceptLanguage();

// если сайт определён то
if(strlen($site_id)>0)
{
    // перенаправим на индексную страницу сайта
    CMainPage::RedirectToSite($site_id);
}
else // иначе если сайт не определён то
{
    require($_SERVER['DOCUMENT_ROOT']."/bitrix/header.php");
    // далее можно разместить код который будет отображаться если
    // сайт ранее не был определён
    ?>

    <?require($_SERVER['DOCUMENT_ROOT']."/bitrix/footer.php");
}
?>

В представленном выше примере кода функция CMainPage::GetSiteByAcceptLanguage проверяет, какие языки установлены в настройках браузера посетителя, сравнивает с ID языка сайта и возвращает наиболее подходящий сайт.

После того как сайт будет определён, функция CMainPage::RedirectToSite выполнит редирект (302 ответ веб-сервера) и переведет пользователя на индексную страницу папки указанного сайта, например, по адресу http://www.site1.com/s1/ или http://www.site2.com/s2/.

Создайте свою индексную страницу портала или выберете одну из вышепредставленных примеров и можно сказать, что ваши сайты готовы к работе в многосайтовой конфигурации способа 1.

Способ 2. Отдельный веб-сервер для каждого сайта.

Для работы второго способа нам потребуется произвести специальную настройку веб-сервера и программного продукта.

Будем использовать для примера конфигурацию из двух сайтов:

  • www.site1.com - корпоративный сайт компании
  • www.site2.com - интернет-магазин компании

Для каждого сайта надо сконфигурировать отдельный виртуальный веб-сервера Apache. Если разместить сайты в соответствующих каталогах на диске:

  • /home/www/site1/
  • /home/www/site2/

В конфигурационном файле httpd.conf веб-сервера Apache это будет соответствовать примерно следующей двум записям, каждая из которых описывает свой "виртуальный сервер" (в терминологии принятой в Apache):

<VirtualHost *:80>
    ServerAdmin admin@site1.com
    DocumentRoot "/home/www/site1/"
    ServerName site1.com
    ServerAlias *.site1.com
    ErrorLog logs/site1.log
    CustomLog logs/site1.log  common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin admin@site2.com
    DocumentRoot "/home/www/site2/"
    ServerName site2.com
    ServerAlias *.site2.com
    ErrorLog logs/site2.log
    CustomLog logs/site2.log  common
</VirtualHost>

Обратите внимание, что параметр DocumentRoot для каждого сайта указывает в разный каталог на диске, в котором должен быть размещён соответствующий сайт.

Строки <VirtualHost *:80> указывают на то, что веб-сервер будет отвечать на любом IP адресе, но переменная ServerAlias говорит о том, что каждый из сайтов будет отвечать только по определённому доменному имени.

Т.е. доменное имя www.site1.com будет обрабатываться одним веб-сервером Apache который работает с каталогом /home/www/site1/, а www.site2.com - другим веб-сервером, работающим с каталогом /home/www/site1/.

Возможен так же вариант конфигурирования для разных IP адресов. Ниже приведен пример конфигурации Apache для двух разных IP адресов:

<VirtualHost 192.168.0.1:80>
    ServerAdmin admin@site1.com
    DocumentRoot "/home/www/site1/"
    ServerName site1.com
    ErrorLog logs/site1.log
    CustomLog logs/site1.log  common
    Options +FollowSymLinks
</VirtualHost>

<VirtualHost 192.168.0.2:80>
    ServerAdmin admin@site2.com
    DocumentRoot "/home/www/site2/"
    ServerName site2.com
    ErrorLog logs/site2.log
    CustomLog logs/site2.log  common
    Options +FollowSymLinks
</VirtualHost>

В этом случае при соответствующей настройке DNS для разных доменных имен, каждый "виртуальный сервер" (в терминологии Apache) будет работать на отдельном IP адресе и отвечать только по определённому доменному имени.

Следующий шаг - это установка продукта для данной конфигурации (зеленым цветом приведены примеры для установки на UNIX системы):

  1. установите программный продукт "Битрикс: Управление сайтом 4.0" сначала в каталог первого сайта /home/www/site1/
  2. создайте каталог /home/www/shared/, в котором будут располагаться общие для всех сайтов файлы:
    mkdir /home/www/shared
  3. перенесите весь каталог /home/www/site1/bitrix/ в /home/www/shared/bitrix/:
    mv /home/www/site1/bitrix /home/www/shared/bitrix
  4. перенесите весь каталог /home/www/site1/upload/ в /home/www/shared/upload/:
    mv /home/www/site1/upload /home/www/shared/upload
  5. создайте символическую связь для каталога /bitrix/ в каждом из сайтов:
    1. ln -s /home/www/shared/bitrix /home/www/site1/
    2. ln -s /home/www/shared/upload /home/www/site1/
    3. ln -s /home/www/shared/bitrix /home/www/site2/
    4. ln -s /home/www/shared/upload /home/www/site2/
  6. убедитесь, что веб-сервер (Apache, IIS) имеет право на запись в каталог /home/www/shared/ (это необходимо будет для работы системы обновлений и загрузки графических файлов)
  7. разместите публичную часть второго сайта в каталог /home/www/site2/

Для создания символических связей в Windows необходимо воспользоваться дополнительными программами, например, Far Manager или Junction от Sysinternals.

Следующий шаг в настройке данной конфигурации - правильное конфигурирование сайтов в программном продукте.

Настройка сайтов выполняется в административном разделе системы в административном пункте меню "Настройки системы" - "Сайты".

Выбираем "Изменить" параметры сайта #1 (www.site1.com) и указываем в них:

  • Название: site1
  • Доменное имя: www.site1.com
  • Папка сайта: /s1/
  • URL сервера: www.site1.com
  • Название сайта: Корпоративный сайт компании "Название компании"
  • Путь к корневой папке веб-сервера для этого сайта: /home/www/site1/

Если DNS настроен таким образом что ваш сайт отвечает на адрес http://site1.com, то в поле Доменное имя желательно указывать без www. Можно перечислить в этом поле с новой строки любое число доменных имен, по которым вы хотите, чтобы отвечал сайт (или уже отвечает).

Важно иметь в виду, что значения, указанные в поле Доменное имя используется продуктом для распространения в указанные домены информации о посетителях по технологии переноса посетителей. Поэтому крайне желательно указывать полный список доменов, по которым может ответить сайт.

Очень важно не указывать в списке доменов сайты, которые не работают на данном экземпляре продукта. Указанный неправильно или несуществующий домен может замедлить работу пользователей, но фактически не позволит перенести данные в сайты, работающие не на общем экземпляре продукта.

Аналогично настроим параметры сайта #2 (www.site2.com):

  • Название: site2
  • Доменное имя: site2.com
  • Папка сайта: /s2/
  • URL сервера: www.site2.com
  • Название сайта: Интернет-магазин компании "Название компании"
  • Путь к корневой папке веб-сервера для этого сайта: /home/www/site2/

Обратите внимание, что для двух сайтов в параметре "Папка сайта" указано одинаковое значение - "/". Это связано с тем, что сайты обслуживаются разными "виртуальными серверами" (в терминологии Apache) у которых для размещения файлов использован разный каталог.

Также необходимо обратить на параметр "Путь к корневой папке веб-сервера для этого сайта". Для разных сайтов у него своё значение взятое из параметра DocumentRoot настроек соответствующего "виртуального сервера" (см. выше пример части файла httpd.cnf настроек Apache).

Необходимо иметь в виду что при организации многосайтовости по данному способу, вы можете использовать как виртуальные сервера одной инсталляции Apache, так и просто разные инсталляции Apache. Аналогично и для других веб-серверов: IIS, EServ и т.д.

Конфигурация готова к работе.

Для данного способа организации многосайтовости не требуется настраивать на индексной странице портала алгоритм выбора сайтов, как это было в первом способе, т.к. сайт будет однозначно определяться по доменному имени.

Заключение

Представленные рекомендации позволяют сконфигурировать программный продукт "1С-Битрикс: Управление сайтом" для работы в многосайтовом режиме.

С точки зрения программного продукта, оба способа равноценны. Первый способ в основном рекомендуется, если вы используете виртуальный хостинг или испытываете сложности с конфигурированием веб-сервера. Второй способ работы рекомендуется, если вы используете выделенный сервер или на разделяемом хостинге можете настроить раздельные веб-сервера. Использование второго способа так же позволяет исключить из URL-ов на сайте лишний подкаталоги /s1/ или /s2/ и начинать формирование URL адресов прямо от каталога /.


Шаблон сайта

Синонимом термина "шаблон сайта" можно считать - "дизайн сайта", "скин сайта". Для показа одного сайта можно использовать несколько различных шаблонов. Строго говоря, в шаблон сайта входят:

  • учетная запись в базе данных - создаётся в административном меню "Шаблоны сайта"
  • набор файлов в каталоге /bitrix/templates/ID шаблона сайта/
    где ID шаблона сайта - поле "ID" в форме редактирования шаблона сайта (административный пункт меню "Шаблоны сайта"); ниже представлена структура данного каталога:
    • header.php - пролог данного шаблона
    • footer.php - эпилог данного шаблона
    • styles.css - CSS стили шаблона
    • .тип меню.menu_template.php - шаблон вывода меню соответствующего типа
    • chain_template.php - шаблон по умолчанию для вывода навигационной цепочки
    • /ID модуля/ - каталог с компонентами принадлежащими тому или иному модулю
    • /lang/ - языковые файлы принадлежащие как данному шаблону в целом, так и отдельным компонентам
    • /images/ - каталог с изображениями данного шаблона сайта
    • /page_templates/ - каталог с шаблонами страниц и их описанием хранящимся в файле .content.php
    • а также ряд других вспомогательных произвольных файлов входящих в данный шаблон

Применить тот или иной шаблон к сайту можно в административном меню "Сайты", в настройках сайта, раздел "Внешний вид":

$_REQUEST["print"]=="Y" Если свойство раздела "phone" равно "Y"

$APPLICATION->GetDirProperty("phone")=="Y"
Если текущий раздел равен "/ru/catalog/phone/"

$APPLICATION->GetCurDir()=="/ru/catalog/phone/"
Если текущий пользователь - администратор

$USER->IsAdmin()


Языки

Введение

Язык - это учетная запись в базе данных доступная для редактирования в административном меню "Языки" со следующими полями:

  • Идентификатор
  • Название
  • Формат даты
  • Формат времени
  • Кодировка

Как в публичной, так и в административной частях, язык используется в первую очередь для выбора того или иного языкового файла.

В административной части язык определяет формат времени, даты, кодировку страниц. В публичной части - данные параметры определяются настройками сайта.

Оглавление раздела

  • Кодировки - таблица кодировок и идентификаторов языков
  • Формат даты и времени - таблица форматов даты и времени, общеупотребительных в различных странах
  • Языковые файлы - описание основных функций и принципов работы с языковыми файлами


Кодировки языков

При задании кодировки языка и выбора его идентификатора используются следующие аббревиатуры и константы.

Язык | Идентификатор | Кодировка
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-1252
Arabic | ar | iso-8859-6
Basque | eu | iso-8859-1, windows-1252
Bulgarian | bg | iso-8859-5
Byelorussian | be | iso-8859-5
Catalan | ca | iso-8859-1, windows-1252
Croatian | hr | iso-8859-2, windows-1250
Czech | cs | iso-8859-2
Danish | da | iso-8859-1, windows-1252
Dutch | nl | iso-8859-1, windows-1252
Esperanto | eo | iso-8859-3
Estonian | et | iso-8859-15
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
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
Portuguese | pt | iso-8859-1, windows-1252
Romanian | ro | iso-8859-2
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
Slovenian | sl | iso-8859-2, windows-1250
Spanish | es | iso-8859-1, windows-1252
Swedish | sv | iso-8859-1, windows-1252
Turkish | tr | iso-8859-9, windows-1254
Ukrainian | uk | iso-8859-5


Формат даты и времени

В таблице сведены основные форматы даты и времени, используемые в разных странах.

Страна/язык | Формат даты | Формат времени | Пример даты | Пример времени
Россия | 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


Языковые файлы

Языковой файл представляет из себя PHP скрипт, хранящий переводы языковых фраз на тот или иной язык. Данный скрипт состоит из массива $MESS, ключи которого - идентификаторы языковых фраз, а значения - переводы на соответствующий язык.

Пример языкового файла для русского языка:

<?
$MESS ['SUP_SAVE'] = "Сохранить";
$MESS ['SUP_APPLY'] = "Применить";
$MESS ['SUP_RESET'] = "Сбросить";
$MESS ['SUP_EDIT'] = "Изменить";
$MESS ['SUP_DELETE'] = "Удалить";
?>

Пример языкового файла для английского языка:

<?
$MESS ['SUP_SAVE'] = "Save";
$MESS ['SUP_APPLY'] = "Apply";
$MESS ['SUP_RESET'] = "Reset";
$MESS ['SUP_EDIT'] = "Change";
$MESS ['SUP_DELETE'] = "Delete";
?>

Для каждого языка существует свой набор языковых файлов, хранящихся в подкаталогах /lang/ (подробнее см. структура файлов системы, структура файлов модуля).

Языковые файлы как правило используются в административных скриптах модулей или в компонентах и в зависимости от этого подключаются одной из следующих функций:

  • IncludeModuleLangFile - в административных скриптах
  • IncludeTemplateLangFile - в компонентах

Для удобства поиска и дальнейшей модификации языковых фраз можно пользоваться параметром страницы show_lang_files=Y, позволяющим быстро найти и исправить ту или иную языковую фразу в модуле "Перевод".


Страницы

Оглавление раздела:

  • Структура страницы - описаны способы подключения пролога и эпилога страницы
  • Шаблоны страницы - описание алгоритма формирования списка шаблонов страницы при создании новой страницы в модуле "Управление статикой"
  • Порядок выполнения - описан порядок выполнения страницы
  • Свойства и мета-тэги - описание принципов работы со свойствами страницы (раздела), а также принципов работы со тэгом <meta> с помощью свойств страницы (раздела)
  • Параметры страницы - описание понятия "параметр страницы" и принципов работы с ним


Структура страницы

В системе "1С-Битрикс: Управление сайтом" страница представляет из себя PHP файл, состоящий из пролога, тела страницы и эпилога.

В общем случае структура страницы выглядит как:

<?
// подключение пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
?>
тело страницы
<?
// подключение эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>

Благодаря технологии отложенных функций часть визуальных элементов выводимых в прологе может быть задана в теле страницы, это такие элементы как:

  • заголовок страницы (выводится функцией CMain::ShowTitle)
  • навигационная цепочка (выводится функцией CMain::ShowNavChain)
  • CSS стили (выводятся функцией CMain::ShowCSS)
  • Мета-тэги (выводятся функцией CMain::ShowMeta)
  • и др.
Принципиальной особенностью данной технологии является то, что она позволяет отложить исполнение некоторых функций, выполняя их в эпилоге, а результаты их выполнения подставляя в вышележащий код.

Но есть ряд задач которые не могут быть решены с помощью технологии отложенных функций. Это относится к случаям когда необходимо производить какие либо действия в прологе над значениями которые в предыдущем примере задавались бы в теле страницы (например, свойства страницы). В этом случае возникает необходимость разбить пролог на служебную и визуальную части и эти значения задавать между ними. Достигается это следующим образом:

<?
// подключение служебной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

// здесь можно задать например, свойство страницы
// с помощью функции $APPLICATION->SetPageProperty
// и обработать затем его в визуальной части эпилога

// подключение визуальной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
?>
Содержимое страницы
<?
// подключение эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>

В служебной части пролога происходит подключение к базе, отработка агентов, инициализация служебных констант, проверка прав уровня 1, подключение необходимых модулей, исполнение обработчиков событий OnPageStart, OnBeforeProlog, а также ряд других необходимых действий. Особенностью служебной части пролога является то, что она не выводит никаких данных (не посылает header браузеру).

В визуальной части пролога происходит подключение файла /bitrix/templates/ID шаблона сайта/header.php, где ID шаблона сайта - идентификатор текущего шаблона сайта. Данный файл хранит левую верхнюю часть текущего шаблона сайта.

В свою очередь и эпилог может быть разбит на визуальную и служебную части:

<?
// подключение служебной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

// подключение визуальной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");

?>
Содержимое страницы
<?

// подключение визуальной части эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_before.php");

// подключение служебной части эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>

В визуальной части эпилога происходит подключение файла /bitrix/templates/ID шаблона сайта/footer.php, где ID шаблона сайта - идентификатор текущего шаблона сайта. Данный файл хранит правую нижнюю часть текущего шаблона сайта. Помимо этого - выводится ряд невидимых IFRAME'ов используемых технологией переноса посетителей.

В служебной части эпилога происходит отправка почтовых сообщений, исполнение обработчиков события OnAfterEpilog, отключение от базы, а также ряд других служебных действий.

Зачастую возникают задачи когда нет необходимости в подключении визуальной частей пролога и эпилога. В этом случае достаточно подключить служебные части пролога и эпилога:

<?
// подключение служебной части пролога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
?>
тело страницы
<?
// подключение служебной части эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>

Для корректной работы системы, обязательным являются подключения служебных частей пролога и эпилога.

См. также

  • Порядок выполнения страницы


Шаблоны страницы

Шаблон страницы - это PHP файл, содержимое которого соответствует правилам формирования структуры страницы. Шаблоны страниц могут быть использованы при создании новой страницы в модуле "Управление статикой".

Шаблоны страниц хранятся в каталогах:

  • /bitrix/templates/.default/page_templates/
  • /bitrix/templates/ID шаблона сайта/page_templates/

В каждом таком каталоге могут находиться непосредственно сами файлы шаблонов страниц, а также служебный файл .content.php, основная задача которого - хранить описания и порядок сортировки шаблонов страниц. Эта информация хранится в массиве $TEMPLATES структура которого представлена ниже:

Array
(
    [имя файла] => Array
        (
            [name] => заголовок шаблона страницы
            [sort] => индекс сортировки
        )

)

При формировании списка шаблонов страниц используется следующий алгоритм:

  1. получаем ID шаблона сайта для текущего сайта который подключается без PHP условия
  2. последовательно подключаем файлы:
    1. /bitrix/templates/.default/page_templates/.section.php
    2. /bitrix/templates/ID шаблона сайта/page_templates/.section.php
    В каждом из этих файлов будет описан свой массив $TEMPLATES. После подключения этих файлов, мы будем иметь объединенный массив $TEMPLATES. Далее для каждого элемента этого массива, представляющего из себя описание одного шаблона страницы, выполняем следующее:
    1. проверяем физическое существование шаблона страницы
    2. если существует, то добавляем его в список шаблонов
  3. сортируем полученный список шаблонов по индексу сортировки (см. выше структуру массива $TEMPLATES)

См. также

  • Структура страницы


Порядок выполнения страницы

Ниже представлен порядок выполнения страницы, структура которой соответствует правилам описанным в разделе "Структура страницы":

№ | Операция | Определяемые константы и переменные | Примечание
1. Служебная часть пролога
1.1 | Подключение /bitrix/php_interface/dbconn.php |  | Подключаемый файл должен содержать определения переменных для соединения с базой данных, констант для отладки и прав доступа.
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 | Проверка агентов |  | В агентах нельзя пользоваться переменными $USER, $_SESSION и всех остальных, которые определяются ниже.
1.8 | Событие OnPageStart |  |
1.9 | Открытие сессии | Все сессионные переменные $_SESSION |
1.10 | Определение пользователя, авторизация пользователя, завершение сеанса, регистрация (в зависимости от параметров в запросе) | $USER |
1.11 | Определение текущего шаблона сайта | SITE_TEMPLATE_ID |
1.12 | Событие OnBeforeProlog |  |
1.13 | Проверка прав доступа уровня 1 |  | В случае если прав недостаточно, то выводится форма авторизации и страница завершает выполнение.
1.14 | Начало буфферизации вывода |  | После начала буферизации можно делать вывод, до установки куков и наоборот, устанавливать куки после вывода в поток.
1.15 | Событие OnProlog |  |
2. Визуальная часть пролога
2.1 | Подключение /bitrix/templates/ID шаблона сайта/header.php |  |
3. Тело страницы
4. Визуальная часть эпилога
4.1 | Подключение /bitrix/templates/ID шаблона сайта/footer.php |  |
4.2 | Вызов функции CMain::ShowSpreadCookieHTML |  | Данная функция выводит набор невидимых IFRAME'ов используемых в технологии переноса посетителей
5. Служебная часть эпилога
5.1 | Событие OnEpilog |  |
5.2 | Завершение буферизации страницы |  | Завершение и вывод в поток буффера инициализированного в п. 1.14
5.3 | Отправка E-Mail писем |  | Подробнее о E-Mail письмах можно прочитать в разделе "Почтовая система"
5.4 | Событие OnAfterEpilog |  |
5.5 | Завершение соединения с базой данных | Переменная $DB больше недоступна |

См. также

  • Структура страницы


Свойства страниц и мета-тэги

В системе "1С-Битрикс: Управление сайтом" поддерживаются свойства раздела и свойства страницы.

Свойства раздела хранятся в файле .section.php соответствующего каталога (раздела сайта).

Свойства страницы задаются как правило либо в теле страницы, либо между служебной частью и визуальной частью пролога.

В работе со свойствами используются следующие функции:

  • CMain::SetPageProperty
  • CMain::SetDirProperty
  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirProperty
  • CMain::GetDirPropertyList

Для работы с мета-тэгами используются свойства страницы и раздела. Для работы с ними используются следующие функции:

  • CMain::ShowMeta
  • CMain::GetMeta

Методы установки свойств

  • CMain::SetPageProperty - устанавливает свойство страницы.

<?
$APPLICATION->SetPageProperty("keywords", "веб, разработка, программирование");
?>

  • CMain::SetDirProperty - устанавливает свойство раздела.

<?
$APPLICATION->SetDirProperty("keywords", "дизайн, веб, сайт");
?>

Показ свойства

  • CMain::ShowProperty - выводит свойство страницы или свойство раздела с использованием технологии отложенных функций.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><?$APPLICATION->ShowProperty("page_title")?></title>
</head>
<body link="#525252" alink="#F1555A" vlink="#939393" text="#000000">
...

Получение значения свойства

  • CMain::GetProperty - возвращает свойство страницы или свойство раздела.

<?
$keywords = $APPLICATION->GetProperty("keywords");
if (strlen($keywords)>0) echo $keywords;
?>

  • CMain::GetPageProperty - возвращает свойство страницы.

<?
$keywords = $APPLICATION->GetPageProperty("keywords");
if (strlen($keywords)>0) echo $keywords;
?>

  • CMain::GetPagePropertyList - возвращает массив всех свойств страницы.

<?
$arProp = $APPLICATION->GetPagePropertyList();
foreach($arProp as $key=>$value)
    echo '<meta name="'.$key.'" content="'.htmlspecialchars($value).'">';
?>

  • CMain::GetDirProperty - возвращает свойство раздела.

<?
$keywords = $APPLICATION->GetDirProperty("keywords");
if (strlen($keywords)>0) echo $keywords;
?>

  • CMain::GetDirPropertyList - возвращает массив свойств раздела, собранных рекурсивно до корня сайта.

<?
$arProp = $APPLICATION->GetDirPropertyList();
foreach($arProp as $key=>$value)
    echo '<meta name="'.$key.'" content="'.htmlspecialchars($value).'">';
?>

Работа с мета-тэгами

  • CMain::ShowMeta - выводит свойство страницы или свойство раздела обрамляя их HTML-тэгом <meta> с использованием технологии отложенных функций.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?$APPLICATION->ShowMeta("keywords_prop", "keywords")?>
<?$APPLICATION->ShowMeta("description_prop", "description")?>
</head>
<body link="#525252" alink="#F1555A" vlink="#939393" text="#000000">
...

  • CMain::GetMeta - возвращает свойство страницы или свойство раздела обрамляя их HTML-тэгом <meta>.

<?
$meta_keywords = $APPLICATION->GetMeta("keywords_prop", "keywords");
if (strlen($meta_keywords)>0) echo $meta_keywords;
?>


Параметры страницы

Параметры страницы предназначены для передачи параметров в функции модулей для изменения их стандартного поведения. Например, при необходимости отключить запоминание последней страницы в сессии (при использовании постраничной навигации) или изменить стандартный формат вывода даты в функциях модуля "Информационные блоки".

Параметры страницы доступны только в пределах страницы. Они не сохраняются ни в базе, ни в сессии.

Для работы с параметрами страницы предназначен класс CPageOption, со следующими методами:

  • CPageOption::SetOptionString - установка строковых параметров
  • CPageOption::SetOptionInt - установка числовых параметров
  • CPageOption::GetOptionString - получение строковых параметров
  • CPageOption::GetOptionInt - получение числовых параметров
  • CPageOption::RemoveOption - удаление параметра

Параметры страницы поддерживаемые стандартными модулями:

ID модуля | Название | Параметр | Описание | Значение по умолчанию
main | Главный модуль | nav_page_in_session | Если значение - "Y", то в сессии будет запоминаться последняя открытая страница в постраничной навигации, если значение "N" - не будет. | Y
iblock | Информационные блоки | FORMAT_ACTIVE_DATES | Если значение - "FULL", то даты относящиеся к элементу информационного блока (поля "ACTIVE_FROM" и "ACTIVE_TO") будут возвращаться в полном формате (вместе со временем), если значение "SHORT", то - в кратком формате (без времени). | SHORT

Примеры использования:

<?
CPageOption::SetOptionString("main", "nav_page_in_session", "N");
?>

<?
CPageOption::SetOptionString("iblock", "FORMAT_ACTIVE_DATES", "FULL");
?>

См. также

  • CPageOption
  • Параметры модулей


Компоненты

Компонент является частью того или иного модуля и представляет из себя логически завершенный код, хранящийся в одном файле, принимающий ряд параметров, выполняющий ряд действий и выводящий какой либо результат (например, в виде HTML кода).

В понятие "компонент" входят следующие элементы:

  • основной файл - PHP скрипт, реализующий логику компонента
  • языковые файлы - используются для представления результата на различных языках
  • описание - используется HTML редактором для визуального управления компонентом и его параметрами

Использование компонент является наиболее предпочтительным способом организации вывода информации как в публичной, так и в административной частях.


Основной файл компонента

В этом разделе

  • Что это такое
  • Подключение
  • Создание
  • Дополнительные ссылки
    •

    Что это такое

    Основной файл компонента - это PHP файл реализующий логику компонента. В свою очередь основной файл может использовать языковые файлы для перевода своих сообщений на различные языки.

    Подключение

    Подключение компонента осуществляется через подключение основного файла при помощи функции CMain::IncludeFile:

    • В первом параметре данной функции необходимо указать путь к основному файлу компонента относительно нижеследующих каталогов в порядке убывания приоритета:
      1. /bitrix/templates/ID текущего шаблона сайта/ - каталог с текущим шаблоном сайта
      2. /bitrix/templates/.default/ - каталог с шаблоном сайта используемым по умолчанию
      3. /bitrix/modules/ID модуля/install/templates/ - каталог модуля
      Таким образом у компонента может быть несколько копий основного файла, но только одна из этих копий будет выбрана для подключения в тот или иной момент. Подобная схема позволяет:
      1. создавать уникальные для каждого шаблона сайта наборы компонент
      2. создавать общие для всех шаблонов сайта наборы компонент
      3. создавать стандартный набор компонент для каждого модуля, пополняя его через систему обновлений
    • Во втором параметре данной функции необходимо указать массив параметров передаваемых в компонент. Подробнее см. "Особенности создания".

    Пример подключения компонента

<?
// компонент выводящий детально элемент инфо-блока
$APPLICATION->IncludeFile(
    "iblock/catalog/element.php",              // путь к основному файлу компонента
    Array(                                     // массив параметров компонента

        "IBLOCK_TYPE"       => "catalog",      // Тип инфо-блока
        "IBLOCK_ID"         => "21",           // Инфо-блок
        "ELEMENT_ID"        => $_REQUEST["ID"],// ID элемента
        "SECTION_URL"       => "section.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",         // Время кэширования (сек.)

        )
    );
?>

    Создание

    При создании основного файла компонента вы можете пользоваться всеми без исключения функциями системы. Но необходимо учитывать, что основной файл подключается с помощью функции CMain::IncludeFile, имеющей свою область видимости переменных. Исходя из этого, есть только два способа передать параметры в компонент:

    1. Первый способ заключается в использовании второго параметра функции CMain::IncludeFile. В этом параметре можно передавать ассоциативный массив, который в основном файле компонента будет доступен под именем $arParams. Помимо этого, массив $arParams будет преобразован в набор переменных с именами равными ключам и значениями равными значениям соответствующих ключей этого массива (подробнее см. стандартную PHP функцию extract).
    2. Второй способ заключается в передаче параметров в компонент через глобальные массивы переменных. Данный способ передачи параметров в компонент не отличается от подобной передачи параметров в обычную PHP функцию. Вы можете использовать как стандартные PHP массивы
      • $GLOBALS
      • $_REQUEST
      • $_GET
      • $_POST
      • $_SERVER
      • и т.д.
      так и свои собственные массивы, предварительно объявляя их глобальными перед подключением компонента.

      По умолчанию глобальными в функции CMain::IncludeFile объявлены следующие переменные:

      • $APPLICATION
      • $USER
      • $DB
      • $MESS
      • $DOCUMENT_ROOT

    Особенность, связанная с сужением области видимости переменных внутри основного файла компонента, накладывает определённые условия на использование некоторых функций. Это касается функцией, результатом работы которых является инициализация глобальных переменных. Если в дальнейшем мы хотим эти глобальные переменные использовать внутри основного файла компонента, то мы должны к ним обращаться либо через стандартный PHP массив $GLOBALS, либо объявлять их глобальными с помощью стандартной PHP директивы global, перед их использованием. В основном это касается таких функций как:

    • InitFilterEx
    • DelFilterEx
    • InitSorting
    • CDataBase::InitTableVarsForEdit
    • CDataBase::PrepareFields
    • CDBResult::NavNext

    Пример основного файла компонента

<?
/**************************************************************************
                Компонент для вывода элемента инфо-блока
                iblock/catalog/element.php
***************************************************************************/

if (CModule::IncludeModule("iblock")):

    IncludeTemplateLangFile(__FILE__);

    /*************************************************************************
                Инициализируем начальные параметры компонента
    *************************************************************************/

    /*
    $IBLOCK_TYPE        = $arParams["IBLOCK_TYPE"];       // тип инфо-блока
    $IBLOCK_ID          = $arParams["IBLOCK_ID"];         // ID инфо-блока
    $ELEMENT_ID         = $arParams["ELEMENT_ID"];        // ID элемента
    $SECTION_URL        = $arParams["SECTION_URL"];       // URL ведущий на страницу с содержимым раздела
    $arrFIELD_CODE      = $arParams["arrFIELD_CODE"];     // массив кодов полей
    $arrPROPERTY_CODE   = $arParams["arrPROPERTY_CODE"];  // массив кодов свойств
    $CACHE_TIME         = $arParams["CACHE_TIME"];        // время кэширования (сек.)
    */

    $arrFIELD_CODE = (is_array($arrFIELD_CODE)) ? $arrFIELD_CODE : array();
    $arrPROPERTY_CODE = (is_array($arrPROPERTY_CODE)) ? $arrPROPERTY_CODE : array();
    $ELEMENT_ID = intval($ELEMENT_ID);

    /*************************************************************************
                                Работа с кэшем
    *************************************************************************/

    $obCache = new CPHPCache;
    $CACHE_ID = __FILE__.md5(serialize($arParams).$USER->GetGroups());
    if($obCache->InitCache($CACHE_TIME, $CACHE_ID, "/"))
    {
        $arVars = $obCache->GetVars();
        $ELEMENT_NAME    = $arVars["ELEMENT_NAME"];
        $IBLOCK_ID        = $arVars["IBLOCK_ID"];
        $SECTION_ID        = $arVars["SECTION_ID"];
        $SECTION_NAME    = $arVars["SECTION_NAME"];
        $KEYWORDS        = $arVars["KEYWORDS"];
        $DESCRIPTION    = $arVars["DESCRIPTION"];
        $arrPath        = $arVars["arrPath"];
        $found = "Y";
    }
    else
    {
        if ($ELEMENT_ID>0)
        {
            $arSelect = array(
                "ID",
                "NAME",
                "IBLOCK_ID",
                "IBLOCK_SECTION_ID"
                );
            if ($rsElement = GetIBlockElementListEx($IBLOCK_TYPE, false, false, array(), false, array("ID" => $ELEMENT_ID), $arSelect))
            {
                if ($obElement = $rsElement->GetNextElement())
                {
                    $found = "Y";
                    $arElement = $obElement->GetFields();
                    $arProperty = $obElement->GetProperties();
                    $KEYWORDS = $arProperty["KEYWORDS"]["VALUE"];
                    $DESCRIPTION = $arProperty["DESCRIPTION"]["VALUE"];
                    $ELEMENT_NAME = $arElement["NAME"];
                    $IBLOCK_ID = $arElement["IBLOCK_ID"];
                    $SECTION_ID = $arElement["IBLOCK_SECTION_ID"];
                    if ($rsSection = CIBlockSection::GetByID($SECTION_ID))
                    {
                        $arSection = $rsSection->Fetch();
                        $SECTION_NAME = $arSection["NAME"];
                    }
                }
            }

            $arrPath = array();
            $rsPath = GetIBlockSectionPath($IBLOCK_ID, $SECTION_ID);
            while($arPath=$rsPath->GetNext()) $arrPath[] = array("ID" => $arPath["ID"], "NAME" => $arPath["NAME"]);
        }
    }

    // если элемент найден то
    if ($found=="Y"):

        $APPLICATION->SetPageProperty("keywords", $KEYWORDS);
        $APPLICATION->SetPageProperty("description", $DESCRIPTION);

        CIBlock::ShowPanel($IBLOCK_ID, $ELEMENT_ID, $SECTION_ID, $IBLOCK_TYPE);
        $APPLICATION->SetTitle($ELEMENT_NAME);
        if (is_array($arrPath))
        {
            while(list($key, $arS) = each($arrPath))
            {
                if ($SECTION_ID==$arS["ID"]) $SECTION_NAME = $arS["NAME"];
                $APPLICATION->AddChainItem($arS["NAME"], $SECTION_URL."SECTION_ID=".$arS["ID"]);
            }
        }

        CIBlockElement::CounterInc($ELEMENT_ID);

        if($obCache->StartDataCache()):

            $arSelect = array(
                "ID",
                "IBLOCK_ID",
                "IBLOCK_SECTION_ID",
                "DETAIL_TEXT_TYPE",
                "PREVIEW_TEXT_TYPE",
                "DETAIL_PICTURE",
                "PREVIEW_PICTURE",
                );
            $arSelect = array_merge($arSelect, $arrFIELD_CODE);
            if ($rsElement = GetIBlockElementListEx($IBLOCK_TYPE, false, false, array(), false, array("ID" => $ELEMENT_ID), $arSelect)) :

                if ($obElement = $rsElement->GetNextElement()) :

                    $arElement = $obElement->GetFields();
                    $arProperty = $obElement->GetProperties();

                    /****************************************************************
                                            HTML форма
                    ****************************************************************/
                    ?>
                    <table width="70%" border="0" cellspacing="0" cellpadding="7">
                        <tr>
                            <?
                            if (in_array("PREVIEW_PICTURE", $arrFIELD_CODE))
                            {
                                $image = intval($arElement["PREVIEW_PICTURE"])>0 ? $arElement["PREVIEW_PICTURE"] : $arElement["DETAIL_PICTURE"];
                            }
                            if (in_array("DETAIL_PICTURE", $arrFIELD_CODE))
                            {
                                $image = intval($arElement["DETAIL_PICTURE"])>0 ? $arElement["DETAIL_PICTURE"] : $arElement["PREVIEW_PICTURE"];
                            }
                            ?>
                        </tr>
                    </table>

                    <?if (strlen($arElement["PREVIEW_TEXT"])>0):?>
                    <font class="text"><p><?=$arElement["PREVIEW_TEXT"]?></p></font>
                    <?endif;?>

                    <?if (strlen($arElement["DETAIL_TEXT"])>0):?>
                    <font class="text"><p><?
                    echo ($arElement["DETAIL_TEXT_TYPE"]=="html") ? $arElement["DETAIL_TEXT"] : TxtToHTML($arElement["~DETAIL_TEXT"]);
                    ?></p></font>
                    <?endif;

                endif;
            endif;

            $obCache->EndDataCache(array(
                "ELEMENT_NAME"    => $ELEMENT_NAME,
                "IBLOCK_ID"        => $IBLOCK_ID,
                "SECTION_ID"    => $SECTION_ID,
                "SECTION_NAME"    => $SECTION_NAME,
                "KEYWORDS"        => $KEYWORDS,
                "DESCRIPTION"    => $DESCRIPTION,
                "arrPath"        => $arrPath
                ));
        endif;
    else:
            ShowError(GetMessage("CATALOG_ELEMENT_NOT_FOUND"));
    endif;
endif;
?>

    Дополнительные ссылки

    • CMain::IncludeFile


Языковые файлы компонента

В компонентах подключение языковых файлов осуществляется с помощью функции IncludeTemplateLangFile. Данная функция осуществляет поиск языковых файлов по следующему алгоритму:

  1. Сначала языковой файл будет искаться в каталоге

    /bitrix/templates/ID текущего шаблона сайта/lang/ID языка/путь к компоненту

  2. Если файл не найден, он будет искаться в каталоге

    /bitrix/templates/.default/lang/ID языка/путь к компоненту

  3. Затем если файл не найден, он будет искаться в каталоге

    /bitrix/modules/ID модуля/install/templates/lang/ID языка/путь к компоненту

Определение термина "путь к компоненту" можно посмотреть здесь.

См. также

  • Что такое "Языковые файлы"
  • IncludeTemplateLangFile


Описание компонента

В этом разделе

  • Что это такое
  • Структура
  • Пример
  • Языковые файлы
  • Дополнительно
    •

    Что это такое

    Для визуального управления компонентом и его параметрами в HTML редакторе необходимо создать так называемое описание компонента.

    Описание компонента представляет из себя PHP файл с именем .description.php, который может располагаться в одном из следующих каталогов (или их подкаталогах):

    • /bitrix/templates/.default/ID модуля/ - каталог с шаблоном сайта используемым по умолчанию
    • /bitrix/modules/ID модуля/install/templates/ID модуля/ - каталог модуля

    Структура файла .description.php

    Данный файл может описывать как один компонент так и группу компонентов. В нем доступны следующие стандартные переменные:

    • $sSectionName - заголовок модуля для выпадающего списка модулей
    • $iSort - сортировка заголовка модуля в выпадающем списке
    • $arCurrentValues - массив текущих значений параметров компонента
    • $arTemplateDescription - массив описывающий список компонентов и их параметров, со следующей структурой:

Array
(
  [уникальный ID разделителя 1] => массив описывающий разделитель 1:
    Array
      (
        ["SEPARATOR"] => "Y"
        ["NAME"] => заголовок разделителя
        ["DESCRIPTION"] => описание разделителя
      )
  [относительный путь к компоненту 1] => массив описывающий компонент 1 и его параметры:
    Array
      (
        ["PARENT"] => ID разделителя в группу которого попадает данный компонент
        ["NAME"] => заголовок компонента (обязательный)
        ["DESCRIPTION"] => описание компонента
        ["ICON"] => путь от корня к иконке компонента
        ["PARAMS"] => массив описывающий множество параметров компонента:
          Array
            (
              [код параметра 1] => массив описывающий параметр 1:
                Array
                  (
                    ["NAME"] => название параметра

                    ["TYPE"] => тип поля ввода для значения параметра, допустимые значения:
                      "STRING" - однострочное текстовое поле
                      "LIST" - список

                    ["SIZE"] => если TYPE="LIST" (список), то здесь можно задать
                      количество строк списка видимых без скролирования

                    ["VALUES"] => если TYPE="LIST" (список), то здесь необходимо указать
                      массив элементов этого списка в виде:
                      Array
                        (
                          ["код элемента 1"] => значение элемента 1
                          ["код элемента 2"] => значение элемента 2
                          ["код элемента 3"] => значение элемента 3
                          ...
                        )
                    ["ADDITIONAL_VALUES"] => если TYPE="LIST" (список), то значение данного
                       параметра равное "N" отключает дополнительное поле для ручного ввода
                       значения списка
                    ["MULTIPLE"] => если равно "Y", то значение параметра
                      это массив с произвольным количество элементов
                    ["COLS"] => количество столбцов в полях для ввода
                    ["ROWS"] => количество строк в полях для ввода
                    ["DEFAULT"] => значение параметра по умолчанию
                    ["CNT"] => количество полей для ввода значений параметра компонента
                    ["REFRESH"] => если равно "Y", то рядом с полем ввода параметра будет
                      доступна кнопка перезагружающая страницу с параметрами компонента
                      (обычно используется когда значения параметров компонента зависят
                      друг от друга, например, при выборе типа инфо-блока меняется список
                      доступных блоков)
                  )
              [код параметра 2] => массив описывающий параметр 2
              [код параметра 3] => массив описывающий параметр 3
              ...
            )
      )
  [относительный путь к компоненту 2] => массив описывающий компонент 2 и его параметры
  [относительный путь к компоненту 3] => массив описывающий компонент 3 и его параметры
  [уникальный ID разделителя 2] => массив описывающий разделитель 2
  ...
)
      В вышеописанной структуре:
      • уникальный ID разделителя - произвольный набор символов уникальный в рамках всех компонентов выбранного модуля
      • относительный путь к компоненту - путь к основному файлу компонента относительно каталога в котором находится данный файл .description.php

    Пример файла .description.php

    Иногда возникает необходимость в дополнительном программировании файла .description.php. Например, когда необходимо получить список инфо-блоков или список веб-форм. В этом случае необходимо подчеркнуть, что данный файл не скреплен никакими рамками и ограничениями. В нем могут использоваться все доступные модули и функции системы.

<?
// файл /bitrix/modules/iblock/install/templates/iblock/catalog/.description.php

IncludeTemplateLangFile(__FILE__);
if (!CModule::IncludeModule("iblock")) return;

/**************************************************************************************
                    Инициализация необходимых массивов
**************************************************************************************/

// получим массив типов инфо-блоков - $arIblockType
$rsType = CIBlockType::GetList(array("sort"=>"asc"), array("ACTIVE"=>"Y"));
while ($arr=$rsType->Fetch())
{
    if($ar=CIBlockType::GetByIDLang($arr["ID"], LANGUAGE_ID))
        $arIblockType[$arr["ID"]] = "[".$arr["ID"]."] ".$ar["NAME"];
}

// получим массив инфо-блоков - $arIblock
$rsIblock = CIBlock::GetList(
    Array("sort" => "asc"),
    Array("TYPE" => $arCurrentValues["IBLOCK_TYPE"], "ACTIVE"=>"Y")
    );
while($arr=$rsIblock->Fetch()) $arIblock[$arr["ID"]] = "[".$arr["ID"]."] ".$arr["NAME"];

// получим массив свойств инфо-блоков - $arProperty
$rsProp = CIBlockProperty::GetList(
    Array("sort"=>"asc", "name"=>"asc"),
    Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$arCurrentValues["IBLOCK_ID"])
    );
while ($arr=$rsProp->Fetch())
{
    $arProperty[$arr["CODE"]] = "[".$arr["CODE"]."] ".$arr["NAME"];
}

/**************************************************************************************
                    Разделитель "Каталог товаров"
**************************************************************************************/

$arTemplateDescription = Array(
    ".separator" =>
        Array(
            "NAME"        => GetMessage("T_IBLOCK_DESC_CAT"),
            "DESCRIPTION" => "",
            "SEPARATOR"   => "Y",
        )
    );

/**************************************************************************************
                    Детальный просмотр элемента каталога
**************************************************************************************/

$arTemplateDescription["element.php"] = array(
    "PARENT"       => ".separator",
    "NAME"         => GetMessage("IBLOCK_ELEMENT_TEMPLATE_NAME"),
    "DESCRIPTION"  => GetMessage("IBLOCK_ELEMENT_TEMPLATE_DESCRIPTION"),
    "ICON"         => "/bitrix/images/iblock/components/cat_detail.gif",
    "PARAMS" => array(
        "IBLOCK_TYPE" => array(
            "NAME"              => GetMessage("IBLOCK_TYPE"),
            "TYPE"              => "LIST",
            "ADDITIONAL_VALUES" => "Y",
            "VALUES"            => $arIblockType,
            "REFRESH"           => "Y"
            ),
        "IBLOCK_ID" => array(
            "NAME"              => GetMessage("IBLOCK_IBLOCK"),
            "TYPE"              => "LIST",
            "ADDITIONAL_VALUES" => "Y",
            "VALUES"            => $arIblock,
            "REFRESH"           => "Y"
            ),
        "ELEMENT_ID" => array(
            "NAME"              => GetMessage("IBLOCK_ELEMENT_ID"),
            "TYPE"              => "STRING",
            "DEFAULT"           => '={$_REQUEST["ID"]}'
            ),
        "SECTION_URL" => array(
            "NAME"              => GetMessage("IBLOCK_SECTION_URL"),
            "TYPE"              => "STRING",
            "DEFAULT"           => "section.php"
            ),
        "LINK_IBLOCK_TYPE" => array(
            "NAME"              => GetMessage("IBLOCK_LINK_IBLOCK_TYPE"),
            "TYPE"              => "LIST",
            "ADDITIONAL_VALUES" => "Y",
            "VALUES"            => $arIblockType,
            "REFRESH"           => "Y"
            ),
        "arrFIELD_CODE" => array(
            "NAME"              => GetMessage("IBLOCK_FIELD"),
            "TYPE"              => "LIST",
            "MULTIPLE"          => "Y",
            "ADDITIONAL_VALUES" => "N",
            "VALUES" => array(
                "NAME"           => GetMessage("IBLOCK_NAME"),
                "PREVIEW_TEXT"   => GetMessage("IBLOCK_PREVIEW_TEXT"),
                "DETAIL_TEXT"    => GetMessage("IBLOCK_DETAIL_TEXT"),
                "DETAIL_PICTURE" => GetMessage("IBLOCK_DETAIL_PICTURE"),
                )
            ),
        "arrPROPERTY_CODE" => array(
            "NAME"              => GetMessage("IBLOCK_PROPERTY"),
            "TYPE"              => "LIST",
            "MULTIPLE"          => "Y",
            "ADDITIONAL_VALUES" => "N",
            "VALUES"            => $arProperty
            ),
        "CACHE_TIME" => array(
            "NAME"              => GetMessage("IBLOCK_CACHE_TIME"),
            "TYPE"              => "STRING",
            "DEFAULT"           => "3600"
            ),
        )
    );
?>

    Языковые файлы

    Для подключения языковых файлов внутри файла .description.php необходимо пользоваться функцией IncludeTemplateLangFile.

    В вышепредставленном примере файл описания имеет следующий путь:

    /bitrix/modules/iblock/install/templates/iblock/catalog/.description.php.

    В нем языковой файл подключается командой:

IncludeTemplateLangFile(__FILE__);
    Соответственно языковой файл должен быть один из (в порядке убывания приоритета):
    • /bitrix/templates/ID текущего шаблона сайта/lang/ID языка/iblock/catalog/.description.php
    • /bitrix/templates/.default/lang/ID языка/iblock/catalog/.description.php
    • /bitrix/modules/iblock/install/templates/lang/ID языка/iblock/catalog/.description.php

    Дополнительно

    Обязательным условием описания компонентов является наличие одного из файлов:

    /bitrix/templates/.default/ID модуля/.description.php

    /bitrix/modules/ID модуля/install/templates/ID модуля/.description.php

    В котором будет инициализирована переменная $sSectionName, содержащая заголовок модуля для выпадающего списка модулей в     HTML-редакторе. Если такого файла не окажется, то в выпадающем списке модулей не появится соответствующий пункт.

    Если при модификации параметров компонента возникла необходимость задать PHP код, то сделать можно это конструкцией "={...}".

    Например:

    ={$_REQUEST["BID"]}

    ={(isset($_REQUEST["BID"]) ? $_REQUEST["BID"] : "15")}


Компоненты 2.0: Общие понятия

Понятие компонента

Компоненты являются блоками, с помощью которых строится публичная часть сайта. Они в полной мере реализуют паттерн проектирования Carrier Rider Mapper.

Carrier
Носитель любой информации к которой могут иметь доступ несколько клиентов одновременно.
Rider
Rider - (Reader либо Writer) - объекты, посредством которых Carrier предоставляет доступ к хранимой в нём информации. Клиенты считывают и записывают информацию хранимую в Carrier исключительно только посредством объектов типа Reader и Writer. Таким образом, Reader и Writer - интерфейсы доступа к информации.
Mapper
Mapper - (Scanner либо Formatter) - объекты обёртки над Reader либо Writer соответственно. Мапперы отвечают за преобразование форматов данных в удобные для клиентов форматы.

Поток информации от носителя к клиенту (считывание): Carrier -> Reader -> Scanner -> Client.

Поток информации от клиента к носителю (запись): Carrier <- Writer <- Formatter <- Client.

Введение прослойки мапперов между Carrier-Rider и клиентами позволяет соединять один и тот же Carrier-Rider с разными типами клиентов посредством соответствующих (разных) мапперов.

Компоненты позволяют повторно использовать единожды написанный и отлаженный код в рамках одного сайта или на разных сайтах. Визуальные средства среды "1С-Битрикс: Управление сайтом" позволяют размещать и настраивать компоненты без написания кода. Поставляемые с продуктом системные компоненты регулярно обновляются.

Основные особенности компонентов 2.0

  • В компонентах 2.0 могут быть разделены логика и представление. Для одной логики может быть несколько представлений, в том числе зависящих от шаблона текущего сайта. Представление (шаблон вывода) может быть написано на любом шаблонном языке, который можно подключить из PHP. Например, шаблоны могут быть на PHP, Smarty, XSL и т.д. Нет необходимости изменять логику компонента для изменения особенностей его показа. Шаблон вывода существенно проще, чем компонент в целом.

    Логика - это сам компонент, представление - это шаблон вывода компонента.
  • Компоненты централизованно хранятся в одной папке. Это обеспечивает большую целостность и понятность структуры сайта. Папка доступна для обращений, а значит, компонент и его шаблоны могут легко подключать свои дополнительные ресурсы.

    Внимание!
    Файлы, к которым нельзя обращаться напрямую, должны содержать в начале следующий код:

    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

  • Компонент хранит все, что ему нужно для работы, в своей папке. Поэтому компоненты можно легко переносить между проектами. Компонент неделим.
  • Комплексные компоненты (например, компонент «Форум» или «Каталог») имеют следующие особенности.
    • Нет необходимости создавать множество страниц для того, чтобы разместить на них все требуемые подкомпоненты. Следовательно, нет необходимости отдельно настраивать для каждого из этих подкомпонентов общие (пересекающиеся) свойства.
    • Нет необходимости устанавливать сложные взаимосвязи между подкомпонентами. Например, нет необходимости для страницы со списком сообщений темы форума настраивать, как эта страница может указать на страницу списка тем форума, а как на страницу профиля посетителя.
    • В компонент (даже с кастомизироваными шаблонами вывода) можно добавить новую страницу. Например, если на форуме появится страница (подкомпонент) по выводу 10 посетителей с самым высоким рейтингом, то эта страница станет доступной и в публичной части.
    • Можно сменить шаблон вывода всего комплексного компонента одним действием, а не настраивать вывод каждого из подкомпонентов.


Комплексные компоненты

Определение

Обычные (простые, одностраничные) компоненты создают какую-либо область на одной конкретной странице. Например, компонент показа новости по ее коду создает на одной конкретной странице (той, где он размещён) область, в которой показывает заголовок, текст и прочие параметры новости.

Комплексные (сложные, многостраничные) компоненты создают разделы сайта. Например, компонент каталога создает на сайте весь раздел каталога: и список каталогов, и список групп, и страницы товаров. То есть комплексный компонент состоит из набора страниц. Комплексные компоненты строятся на основе обычных компонентов.

MVC

Комплексные компоненты построены с использованием паттерна проектирования MVC (Model View Controller), в котором модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных части так, что модификация одной из частей оказывает минимальное воздействие на другие части.

MVC
  • Model (модель) в данном случае - это ядро системы. Model представляет собой данные и бизнес-логику, отвечает на запросы View.
  • View (представление) - это простые компоненты (на самом деле все чуть сложнее, но для начала можно понимать именно так). View отображает данные пользователю, запрашивает данные у Model, посылает действия пользователя в Controller (как правило через HTTP запрос).
  • Controller (контроллер) - это комплексный компонент. Controller на основании действий пользователя и ответа Model выбирает соответствующий View.

Алгоритм работы паттерна MVC примерно таков:

  • на основании действий пользователя Controller (контроллер) определяет, какое View (представление) должно быть показано пользователю, и отдает управление этому View (представлению);
  • View (представление) запрашивает необходимые ему данные у Model (модели), получает эти данные и выводит их соответствующим образом пользователю;
  • пользователь с помощью каких-либо элементов управления, которые ему предоставил View (представление), посылает новый запрос в Controller (контроллер).

Алгоритм работы паттерна MVC в применении к комплексным компонентам таков:

  • на основании действий пользователя (как правило, HTTP запрос) комплексный компонент (controller) определяет, какая страница (view) должна быть показана пользователю, и подключает свой шаблон компонента для этой страницы;
  • шаблон страницы (view) подключает обычные компоненты, настраивая необходимым образом их свойства;
  • обычные компоненты выполняют свою работу: запрашивают данные у ядра (model), форматируют их и выводят посетителю, а так же предоставляют пользователю различные элементы управления (ссылки, формы, кнопки и т.п.);
  • пользователь с помощью каких-либо элементов управления, посылает новый запрос (как правило HTTP запрос) комплексному компоненту (controller).

Пример

Расмотрим упрощённый пример работы комплексного компонента новостей. Пусть у нас есть обычные компоненты: список новостей и детальной новости (последний принимает во входных параметрах код новости, которую нужно показать).

Раздел новостей можно организовать, например, разместив на странице index.php компонент списка новостей, а на странице news.php - компонент детальной новости. При этом у компонента списка новостей нужно настроить входные параметры так, чтобы он мог формировать ссылки на страницу детальной новости (с кодом новости), а у компонента детальной новости нужно настроить входные параметры так, чтобы он мог формировать ссылку на страницу списка новостей. Для того, чтобы задать ссылку на страницу детальной новости, нужно задать путь к этой странице, а так же название параметра, в котором будет передаваться код новости для показа. То же название параметра нужно задать и во входных параметрах компонента детальной новости, чтобы он знал, где брать код новости для показа. Даже в данном максимально упрощённом случае настройки не так просты. А если это набор из десятков компонентов форума?

Более удобной альтернативой для сборщика сайта будет использование комплексного компонента новостей. Этот компонент, например, можно просто установить на страницу index.php. Согласованием ссылок и параметров будет заниматься сам комплексный компонент. От сборщика сайта никаких дополнительных действий не потребуется. Для создания комплексного компонента новостей необходимо создать новый компонент, в коде которого организовать проверку кода новости в параметрах URL. Если URL содержит код новости, компонент должен подключить страницу шаблона комплексного компонента, которая предназначена для показа детальной новости; в противном случае - страницу для показа списка новостей.

Страницы шаблона комплексного компонента будут содержать подключение соответствующих обычных компонентов с правильной настройкой их входных параметров. Обычные компоненты будут выполнять свои обычные функции: им все равно, кто их вызвал и зачем. Для обычных компонентов важна только правильная настройка их входных параметров.

Таким образом реализуется паттерн MVC:

  • на комплексный компонент новостей (controller) приходит HTTP запрос (действия пользователя);
  • комплексный компонент новостей (controller) проверяет, установлен ли через HTTP запрос код новости и подключает из своего шаблона страницу списка новостей или страницу детальной новости (view);
  • подключенная страница, в свою очередь, подключает соответствующий обычный компонент, устанавливая при этом его входные параметры соответствующим образом;
  • обычный компонент выполняет свою работу: запрашивает данные у ядра (model), форматирует их и выводит посетителю, а также отображает элементы управления (ссылки, формы, кнопки и т.п.);
  • пользователь с помощью элементов управления посылает новый HTTP запрос на комплексный компонент новостей (controller);
  • процедура повторяется по мере надобности.


Физическое размещение компонентов

Физическое размещение

Все компоненты находятся в папке /bitrix/components/. Системные компоненты находятся в папке /bitrix/components/bitrix/. Содержимое этой папки обновляется системой обновлений и не может изменяться пользователями.

Внимание!
Изменение содержимого папки системных компонентов /bitrix/components/bitrix/ может привести к непредсказуемым последствиям.

Пользовательские компоненты могут находиться в любых других подпапках папки /bitrix/components/ или прямо в папке /bitrix/components/.

Именование

Название подпапки директории /bitrix/components/ образует пространство имен (namespace) компонентов. Например, все системные компоненты расположены в пространстве имен bitrix. При создании пользовательских компонентов рекомендуется создать какое-либо пространство имен и размещать пользовательские компоненты в нем.

Например, существует системный компонент catalog, который расположен в пространстве имен bitrix. Если необходим пользовательский компонент catalog, который имеет другую функциональность, не реализуемую с помощью шаблона системного компонента, то рекомендуется создать некоторое пространство имен (подпапку) в папке /bitrix/components/ (например, mycompany) и расположить пользовательский компонент catalog в этом пространстве имен. Таким образом будут доступны два компонента catalog, но лежащие в разных пространствах имен: «bitrix:catalog» и «mycompany:catalog».

Имена компонентов имеют вид «идентификатор1.идентификатор2....».Например, «catalog», «catalog.list», «catalog.section.element» и т.п. Рекомендуется строить имена иерархически, начиная с общего понятия и заканчивая конкретным назначением компонента. Например, компонент, показывающий список товаров данной группы, может называться «catalog.section.elements». Полное имя компонента – это имя компонента с указанием простанства имен. Полное имя имеет вид «пространство_имен:имя_компонента». Например, «bitrix:catalog.list». Если компонент лежит вне пространства имен, то пространство имен не указывается. Например, «catalog.section».


Структура папки компонента

Папка компонента может содержать следующие подпапки и файлы.

Дочерние папки

Папка | Назначение
help | В папке help расположены файлы помощи компонента. Здесь находятся подпапки с именами, равными кодам языков. В них, в свою очередь, находятся файлы index.php, которые являются главными файлами помощи данного компонента для данного языка (и, возможно, другие файлы). Например, путь к файлу помощи для английского языка будет иметь вид /help/en/index.php (относительно папки компонента). Внимание! В файлах помощи обязательно должна быть описана структура массива, в котором компонент возвращает данные шаблону. Подпапка help может отсутствовать.
install | Здесь располагаются скрипты инсталляции и удаления компонента. Скрипт инсталляции должен иметь имя install.php, а скрипт для деинсталляции – uninstall.php. Подпапка install может отсутствовать.
lang | Папка lang содержит подпапки с именами, равными кодам языков, в которых находятся файлы языковых сообщений (переводов) компонента. Рекомендуется называть файл языковых сообщений для какого-либо файла компонента так же, как называется компонент и помещать его в той же иерархии относительно папки /lang/код_языка/, в которой файл распологается относительно папки компонента. Например, языковой файл с английскими фразами для файла /install/uninstall.php рекомендуется распологать по пути /lang/en/install/uninstall.php. Подпапка lang может отсутствовать, если в компоненте нет зависящих от языка фраз.
templates | Здесь содержатся шаблоны вывода (отображения) компонента. Подпапка templates может отсутствовать, если у компонента нет шаблонов вывода.

Файлы

Файл | Назначение
component.php | Содержит логику (код) компонента. Этот файл должен всегда присутствовать в папке компонента.
.description.php | Содержит название, описание компонента и его положение в дереве логического размещения (для редактора). Этот файл должен всегда присутствовать в папке компонента.
.parameters.php | Содержит описание входных параметров компонента для редактора. Если у компонента есть входные параметры, то этот файл должен присутствовать в папке компонента.
Любые другие папки и файлы с ресурсами, необходимыми компоненту. Все ресурсы компонента должны находиться в папке компонента.


Файл описания компонента .description.php

В файле .description.php содержится описание компонента. Это описание применяется для работы с компонентом из среды БУС (например, в визуальном редакторе), а также при работе в режиме редактирования сайта. При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и файл .description.php не подключается.

Файл .description.php должен находиться в папке компонента. Языковой файл подключается автоматически (должен лежать в папке /lang/<язык>/.description.php относительно папки компонента).

Структура типичного файла .description.php такова:

<?
$arComponentDescription = array(
   "NAME" => GetMessage("COMP_NAME"),
   "DESCRIPTION" => GetMessage("COMP_DESCR"),
   "ICON" => "/images/icon.gif",
   "PATH" => array(
      "ID" => "content",
      "CHILD" => array(
         "ID" => "catalog",
         "NAME" => "Каталог товаров"
      )
   ),
   "AREA_BUTTONS" => array(
      array(
         'URL' => "javascript:alert('Это кнопка!!!');",
         'SRC' => '/images/button.jpg',
         'TITLE' => "Это кнопка!"
      ),
   ),
   "CACHE_PATH" => "Y",
   "COMPLEX" => "Y"
);
?>

Как видно, в файле определяется массив $arComponentDescription, который описывает компонент. Этот массив может иметь следующие ключи:

  • "NAME" - название компонента;
  • "DESCRIPTION" - описание компонента;
  • "ICON" - путь к пиктограмме компонента относительно папки компонента. Значок компонента используется в среде БУС (например, в визуальном редакторе);
  • "PATH" - расположение компонента в виртуальном дереве компонента в визуальном редакторе. Значением этого элемента должен быть массив, имеющий ключи:
    • "ID" - код ветки дерева;
    • "NAME" - название ветки дерева;
    • "CHILD" - дочерняя или подчиненная ветка. В элементе с ключом "CHILD" может быть задана подчиненная ветка дерева с той же структурой, что и родительская ветка.
    Дерево ограничено тремя уровнями. Как правило, строится двухуровневое дерево и компоненты располагаются на втором уровне. Следующие служебные названия первого уровня зарезервированы и не могут быть использованы: "content" (контент), "service" (сервисы), "communication" (общение), "e-store" (магазин), "utility" (служебные).

    Если ключ "PATH" не задан, то компонент не будет присутствовать в визуальном редакторе;
  • "AREA_BUTTONS" - пользовательские кнопки, которые показываются для компонента в режиме редактирования сайта;
  • "CACHE_PATH" - если значение равно "Y", отображается кнопка очистки кэша компонента в режиме редактирования сайта (предполагается, что кэш лежит по стандартному пути: /<код сайта>/<относительный путь к компоненту>). Если равно не пустой отличной от "Y" строке, отображается кнопка очистки кэша компонента в режиме редактирования сайта (кэш лежит по пути, равному значению с ключом "CACHE_PATH" - для нестандартных путей);
  • "COMPLEX" - элемент должен иметь значение "Y" для комплексного компонента, для простых компонентов не имеет значения.


Файл параметров компонента .parameters.php

В файле .parameters.php содержится описание входных параметров компонента. Это описание применяется для работы с компонентом из среды БУС (например, в визуальном редакторе), а так же при работе в режиме редактирования сайта. При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и файл .parameters.php не подключается.

Данные .parameters.php нужны исключительно для создания формы ввода свойств компонента в среде БУС (например, в визуальном редакторе).

Файл .parameters.php должен находиться в папке компонента. Языковой файл подключается автоматически (должен лежать в папке /lang/<язык>/.parameters.php, относительно папки компонента).

Структура типичного файла .parameters.php такова.

<?
CModule::IncludeModule("iblock");

$dbIBlockType = CIBlockType::GetList(
   array("sort" => "asc"),
   array("ACTIVE" => "Y")
);
while ($arIBlockType = $dbIBlockType->Fetch())
{
   if ($arIBlockTypeLang = CIBlockType::GetByIDLang($arIBlockType["ID"], LANGUAGE_ID))
      $arIblockType[$arIBlockType["ID"]] = "[".$arIBlockType["ID"]."] ".$arIBlockTypeLang["NAME"];
}

$arComponentParameters = array(
   "GROUPS" => array(
      "SETTINGS" => array(
         "NAME" => GetMessage("SETTINGS_PHR")
      ),
      "PARAMS" => array(
         "NAME" => GetMessage("PARAMS_PHR")
      ),
   ),
   "PARAMETERS" => array(
      "IBLOCK_TYPE_ID" => array(
         "PARENT" => "SETTINGS",
         "NAME" => GetMessage("INFOBLOCK_TYPE_PHR"),
         "TYPE" => "LIST",
         "ADDITIONAL_VALUES" => "Y",
         "VALUES" => $arIblockType,
         "REFRESH" => "Y"
      ),
      "BASKET_PAGE_TEMPLATE" => array(
         "PARENT" => "PARAMS",
         "NAME" => GetMessage("BASKET_LINK_PHR"),
         "TYPE" => "STRING",
         "MULTIPLE" => "N",
         "DEFAULT" => "/personal/basket.php",
         "COLS" => 25
      ),
      "SET_TITLE" => array(),
      "CACHE_TIME" => array(),
      "VARIABLE_ALIASES" => array(
         "IBLOCK_ID" => array(
            "NAME" => GetMessage("CATALOG_ID_VARIABLE_PHR"),
         ),
         "SECTION_ID" => array(
            "NAME" => GetMessage("SECTION_ID_VARIABLE_PHR"),
         ),
      ),
      "SEF_MODE" => array(
         "list" => array(
            "NAME" => GetMessage("CATALOG_LIST_PATH_TEMPLATE_PHR"),
            "DEFAULT" => "index.php",
            "VARIABLES" => array()
         ),
         "section1" => array(
            "NAME" => GetMessage("SECTION_LIST_PATH_TEMPLATE_PHR"),
            "DEFAULT" => "#IBLOCK_ID#",
            "VARIABLES" => array("IBLOCK_ID")
         ),
         "section2" => array(
            "NAME" => GetMessage("SUB_SECTION_LIST_PATH_TEMPLATE_PHR"),
            "DEFAULT" => "#IBLOCK_ID#/#SECTION_ID#",
            "VARIABLES" => array("IBLOCK_ID", "SECTION_ID")
         ),
      ),
   )
);
?>

В файле определяется массив $arComponentParameters, который описывает входные параметры компонента. Если необходимо, производится выборка каких-либо дополнительных данных. Например, для формирования выпадающего списка типов информационных блоков (входной параметр IBLOCK_TYPE_ID) выбираются все активные типы.

Массив $arComponentParameters имеет следующие ключи:

  • "GROUPS" - значением этого ключа является массив групп параметров компонента. Параметры в визуальных средствах среды БУС (например, в визуальном редакторе) группируются. Группы в среде БУС располагаются в том порядке, в котором заданы в файле. Массив групп параметров компонента состоит из элементов следующего вида
    "код группы" => array(
    "NAME" => "название группы на текущем языке"
    )
  • "PARAMETERS" - значением этого ключа является массив параметров компонента. В каждой группе параметров параметры располагаются в том порядке, в котором заданы в файле. Массив обычных параметров компонента состоит из элементов следующего вида
    "код параметра" => array(
    "PARENT" => "код группы, которой принадлежит параметр",
    "NAME" => "название параметра на текущем языке",
    "TYPE" => "тип элемента управления, в котором будет устанавливаться параметр",
    * * *
    )

Существуют особые параметры, которые стандартизованы и которые нет необходимости описывать полностью. Достаточно указать, что они есть. Например,

"SET_TITLE" => array(),
"CACHE_TIME" => array(),

Первый из указанных параметров указывает, следует ли компоненту установить заголовок страницы, а второй - время кэширования.

Если компонент может работать в режиме ЧПУ или переопределять переменные, которые приходят из HTTP запроса, необходимо среди параметров указать ещё два особых параметра:

  • "VARIABLE_ALIASES" - массив, описывающий переменные, которые компонент может получать из HTTP запроса. Каждый элемент массива имеет вид:
    "внутреннее название переменной" => array(
  "NAME" => "название переменной на текущем языке",
)
  • "SEF_MODE" - массив, описывающий шаблоны путей в режиме ЧПУ. Каждый элемент массива имеет вид:
    "код шаблона пути" => array(
    "NAME" => "название шаблона пути на текущем языке",
    "DEFAULT" => "шаблон пути по-умолчанию",
    "VARIABLES" => "массив внутренних названий переменных, которые могут использоваться в шаблоне"
)


Замечания про $arParams и $arResult

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Замечания по $arParams и $arResult

$arParams

$arParams - предопределённая для компонента переменная, представляющая собой массив входных параметров компонента. Ключами в этом массиве являются названия параметров, а значениями - их значения.

Перед подключением компонента ко всем значениям параметров применяется функция htmlspecialcharsEx.

Исходные значения параметров сохраняются в этом же массиве с теми же ключами, но с префиксом "~". Например, $arParams["NAME"] - входной параметр, к которому применена функция htmlspecialcharsEx, а $arParams["~NAME"] - исходный входной параметр.

Переменная $arParams является псевдонимом для члена класса компонента, поэтому все изменения этой переменной отражаются и на этом члене класса. В начале кода компонента должна быть произведена проверка входных параметров, инициализация не установленных параметров, приведение к нужному типу (например, IntVal()). Все эти изменения входных параметров будут доступны и в шаблоне, то есть, параметры будут проверены и максимально безопасны. Дублирование подготовки параметров в шаблоне компонента не требуется.

$arResult

$arResult - предопределённая для компонента переменная, в которую набирается результат работы компонента для передачи в шаблон. Перед подключением файла компонента эта переменная инициализируется пустым массивом array().

Переменная $arResult является псевдонимом для члена класса компонента, поэтому все изменения этой переменной отражаются и на этом члене класса. Явно передавать в шаблон эту переменную не следует, это делают внутренние механизмы класса компонента.

Псевдонимы в PHP

Псевдонимы (references) в PHP служат для того, чтобы к одним и тем же данным можно было обратиться по разным именам. Если переменные $arParams и $arResult изменены некоторым образом в коде компонента, то они будут доступны измененными и в шаблоне.

При этом нужно учитывать следующие нюансы.

  • Если в компоненте написать код:
    $arParams = & $arSomeArray;
    то переменная $arParams будет отвязана от члена класса компонента и привязана к массиву $arSomeArray. В этом случае, дальнейшие изменения $arParams не попадут в шаблон компонента.
  • Если в компоненте написать код:
    unset($arParams);
    то это так же разорвет связь между $arParams и соответствующим членом класса компонента.


Кеширование в компоненте

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Кэширование в компоненте

Для ускорения обработки запроса клиента и уменьшения нагрузки на сервер динамические компоненты должны использовать кэширование. Кэшировать как правило необходимо ту информацию, которая не зависит от конкретного обратившегося человека. Например, список новостей сайта идентичен для всех посетителей. Поэтому нет смысла выбирать данные каждый раз из базы. Время кэширования зависит, в основном, от частоты ввода новых новостей. Иногда может иметь смысл кэширование зависящей от конкретного посетителя информации.

Встроенная поддержка кэширования

В компонентах 2.0 есть встроенная поддержка типичного алгоритма кэширования. Структура компонента с использованием встроенной поддержки кэширования будет примерно такова

// Проверка и инициализация входных параметров
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"]);
Пояснения

Метод StartResultCache имеет следующее описание:

bool $this->StartResultCache($cacheTime = False, $additionalCacheID = False, $cachePath = False)
где:
  • $cacheTime - время кэширования (если False, подставляется IntVal($arParams["CACHE_TIME"]) ).
  • $additionalCacheID - определяет дополнительные зависимости кэша помимо текущего сайта SITE_ID, имени компонента, пути в файлу и входных параметров $arParams (если False, кэш зависит только от указанных параметров).
  • $cachePath - путь к файлу кэша (если False, подставляется "/".SITE_ID.<путь к компоненту относительно bitrix/components>).

Если есть валидный кэш, метод отправляет на экран его содержимое, заполняет $arResult и возвращает False; если нет валидного кэша, возвращается True.

Если кэш зависит не только от сайта, входных параметров, имени компонента и пути к текущему сайту, но и от других параметров - эти параметры в виде строки нужно передать в метод вторым параметром. Например, если кэш зависит ещё от групп пользователей, в которые входит текущий посетитель, то условие нужно написать следующим образом:

if ($this->StartResultCache(false, $USER->GetGroups()))
{
   // Валидного кэша нет. Выбираем данные из
   // базы в $arResult
}

Если в результате выборки данных (в случае отсутствия валидного кэша) выяснилось, что кэшировать данные не надо, то нужно вызвать метод:

$this->AbortResultCache();
Например, если выяснилось, что новости с таким ID нет, то нужно прервать кэширование и выдать сообщение, что такой новости нет. Если кэширование не прерывать, то злоумышленники смогут забить кэшем все отведенное сайту дисковое пространство вызывая страницу с произвольными (в том числе и не существующими) ID.

Метод:

$this->IncludeComponentTemplate();
подключает шаблон компонента и сохраняет в кэш-файл вывод и массив результатов $arResult. Все изменения $arResult и вывод после вызова метода подключения шаблона не будут сохранены в кэш.

Если при исполнении кода компонента мы не вошли в тело условия:

if ($this->StartResultCache())
значит, для данного компонента, страницы и входных параметров есть валидный кэш. После вызова этого метода, HTML из кэша отправлен на вывод и мы имеем заполненный массив $arResult. Здесь можно выполнить некоторые действия; например, установить заголовок страницы с помощью отложенных функций.

Если при выполнении некоторых условий нужно очистить кэш компонента (например, компонент знает, что данные изменились), можно воспользоваться методом:

$this->ClearResultCache($additionalCacheID = False, $cachePath = False)
Параметры этого метода соответствуют одноименным параметрам метода StartResultCache.

Сложное кэширование

Если компоненту требуется какое-либо особое кэширование, которое не может быть выполнено с помощью встроенной поддержки кэширования, можно использовать стандартный класс CPHPCache. Структура компонента с использованием класса CPHPCache будет примерно такова

// Проверка и инициализация входных параметров
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 CPageCache;
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);
}
Пояснения

Кэш должен зависеть только от подготовленных параметров (тех, которые инициализированы нужным образом, приведены к нужному типу (например, с помощью IntVal) и т.д). В массиве $arParams содержатся как подготовленные параметры, так и исходные параметры (с тем же ключом, но с префиксом "~"). Если кэш будет зависеть от неподготовленных параметров, злоумышленники смогут забить кэшем все отведенное сайту дисковое пространство вызывая страницу с ID равными "8a", "8b", ... (которые после IntVal() дадут 8).

Метод:

$this->IncludeComponentTemplate()

не запрашивает данные из базы. Однако, его тоже лучше включить в кэшируемую область, так как он производит определённые дисковые операции.

Перед вызовом метода завершения кэширования и сохранения кэша (метод EndDataCache) необходимо запросить у шаблона параметры, которые должны быть использованы даже в том случае, если сам шаблон не подключается и данные берутся из кэша. В текущей реализации такими параметрами являются стили css шаблона, которые подключаются отложенными функциями, а значит, не попадают в кэш. Структура возвращаемых шаблоном данных не документируется и не имеет значения для компонента. Это просто некие данные, которые нужно положить в кэш, а затем взять из кэша и вернуть в шаблону.

Для того, чтобы вернуть шаблону те данные, которые он просил сохранить в кэше, можно пользоваться методом

$this->SetTemplateCachedData($templateCachedData);
Этот метод должен быть вызван в той области компонента, которая выполняется в случае наличия валидного кэша. В параметрах ему должны быть переданы те данные, которые шаблон просил сохранить.


Структура комплексного компонента

Комплексный компонент служит для организации целого раздела сайта (форум, каталог и т.п.). Для вывода данных он подключает обычные компоненты. По сути, он является контроллером (менеджером) простых компонентов. Комплексный компонент определяет на основании HTTP запроса страницу, которую требуется вывести посетителю, и подключает шаблон этой страницы.

Пример кода комплексного компонента:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?><?

$arDefaultUrlTemplates404 = array(
   "list" => "index.php",
   "element" => "#ELEMENT_ID#.php"
);

$arDefaultVariableAliases404 = array();

$arDefaultVariableAliases = array();

$arComponentVariables = array("IBLOCK_ID", "ELEMENT_ID");

$SEF_FOLDER = "";
$arUrlTemplates = array();

if ($arParams["SEF_MODE"] == "Y")
{
   $arVariables = array();

    $arUrlTemplates =
        CComponentEngine::MakeComponentUrlTemplates($arDefaultUrlTemplates404,
                                                    $arParams["SEF_URL_TEMPLATES"]);
    $arVariableAliases =
        CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404,
                                                       $arParams["VARIABLE_ALIASES"]);

   $componentPage = CComponentEngine::ParseComponentPath(
      $arParams["SEF_FOLDER"],
      $arUrlTemplates,
      $arVariables
   );

   if (StrLen($componentPage) <= 0)
      $componentPage = "list";

   CComponentEngine::InitComponentVariables($componentPage,
                                            $arComponentVariables,
                                            $arVariableAliases,
                                            $arVariables);

   $SEF_FOLDER = $arParams["SEF_FOLDER"];
}
else
{
   $arVariables = array();

    $arVariableAliases =
       CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases,
                                                      $arParams["VARIABLE_ALIASES"]);
    CComponentEngine::InitComponentVariables(false,
                                             $arComponentVariables,
                                             $arVariableAliases, $arVariables);

   $componentPage = "";
   if (IntVal($arVariables["ELEMENT_ID"]) > 0)
      $componentPage = "element";
   else
      $componentPage = "list";

}

$arResult = array(
   "FOLDER" => $SEF_FOLDER,
   "URL_TEMPLATES" => $arUrlTemplates,
   "VARIABLES" => $arVariables,
   "ALIASES" => $arVariableAliases
);

$this->IncludeComponentTemplate($componentPage);
?>

В начале кода определяются массивы:

  • $arDefaultUrlTemplates404 - для задания путей по умолчанию для работы в ЧПУ режиме. Каждый элемент массива является шаблоном пути и задается в виде:
    "код шаблона пути" => "шаблон пути"
    В шаблоне пути могут быть использованы конструкции вида "#слово#", которые при формировании реального пути заменяются на значения соответствующих переменных. Например, для шаблона пути:
    "element" => "#ELEMENT_ID#.php"
    реальный путь будет иметь вид 195.php или 7453.php. Шаблоны путей могут иметь параметры, например:
    "element" => "#IBLOCK_ID#/#ELEMENT_ID#.php?SECTION_ID=#SECTION_ID#"
    Должны быть заданы все шаблоны путей, в которыми работает компонент.
  • $arDefaultVariableAliases404 - для задания псевдонимов по умолчанию переменных в режиме ЧПУ. Как правило, этот массив пуст (используются реальные имена переменных). В случае, если необходимо, чтобы в HTTP запросе (в адресе) переменная называлась по другому, можно задать псевдоним этой переменной, а при работе компонента восстанавливать значение переменной из псевдонима. Если для какого-либо шаблона пути нужно задать псевдоним для одной или более переменных, то в этом массиве должен появиться элемент вида:
    "код шаблона пути" => array(
    "название переменной 1" => "псевдоним переменной 1",
    "название переменной 2" => "псевдоним переменной 2",
    * * *
    )
    Например, если требуется, чтобы ссылка на страницу детальной информации об элементе инфоблока (например, карточки товара) имела вид:
    "/<мнемонический код инфоблока>/.php?SID=<код группы элементов>"
    то шаблон пути можно задать в виде:
    "element" => "#IBLOCK_ID#/#ELEMENT_ID#.php?SID=#SECTION_ID#"
    а в массиве $arDefaultVariableAliases404 задать псевдоним для переменной SECTION_ID в виде:
    "element" => array(
    "SECTION_ID" => "SID"
    )
    В этом случае ссылки (адреса) будут формироваться с параметром SID, а в компонентах будет установлена переменная SECTION_ID.
  • $arDefaultVariableAliases - для задания псевдонимов по умолчанию переменных в режиме не ЧПУ. Как правило, этот массив пуст, то есть используются реальные имена переменных. В случае, если необходимо, чтобы в HTTP запросе (в адресе) переменная называлась по другому, можно задать псевдоним этой переменной, а при работе компонента восстанавливать значение переменной из псевдонима. Если для какой-либо переменной нужно задать псевдоним, то в этом массиве должен появиться элемент вида:
    "название переменной" => "псевдоним переменной"
    Например, если название переменной в компоненте SECTION_ID, но требуется, чтобы в ссылках использовалась переменная SID, то псевдоним для SECTION_ID можно задать в виде
    "SECTION_ID" => "SID"
    В этом случае, ссылки (адреса) будут формироваться с параметром SID, а в компонентах будет установлена переменная SECTION_ID. Все эти массивы или их части могут быть переопределены с помощью входных параметров компонента (при вызове компонента). Например, во входном параметре SEF_URL_TEMPLATES в ЧПУ режиме может быть задан массив:
    "SEF_URL_TEMPLATES" => array(
    "element" => "#IBLOCK_CODE#/#ELEMENT_ID#.php?GID=#SECTION_ID#"
    )
    а во входном параметре VARIABLE_ALIASES может быть задан параметр:
    "VARIABLE_ALIASES" => array(
    "element" => array(
    "SECTION_ID" => "GID",
    ),
)
    Тогда в адресах (ссылках) пути будут иметь вид типа /phone/3425.php?GID=28, а в компоненте из них будут восстанавливаться переменные IBLOCK_CODE = phone, ELEMENT_ID = 3425 и SECTION_ID = 28.
  • $arComponentVariables - для задания списка переменных, которые компонент может принимать в HTTP запросе и которые могут иметь псевдонимы. Каждый элемент массива является именем переменной.

Входной параметр с предопределённым именем SEF_MODE может иметь два значения: Y и N. Если $arParams["SEF_MODE"] равен Y, значит компонент работает в режиме ЧПУ, иначе - нет.

Входной параметр с предопределённым именем SEF_FOLDER имеет смысл в том случае, если компонент работает в режиме ЧПУ. В этом случае он содержит путь, по которому работает компонент. Путь может быть виртуальным (т.е. физически он может не существовать). Например, компонент из примера может лежать в файле /fld/n.php, при этом он работает в режиме ЧПУ и входной параметр SEF_FOLDER равен /company/news/. Тогда компонент будет откликаться на запросы по адресам /company/news/index.php, /company/news/25.php и т.п.

Для определения, какую страницу должен показать комплексный компонент, а так же для восстановления переменных компонента из пути и из псевдонимов используются следующие методы.

  • CComponentEngine::MakeComponentUrlTemplates
    array
CComponentEngine::MakeComponentUrlTemplates($arDefaultUrlTemplates404,
                                            $arParams["SEF_URL_TEMPLATES"]);
    Метод объединяет массив по умолчанию шаблонов путей и шаблоны путей, которые были переданы во входных параметрах компонента в один массив. При этом, если в $arParams["SEF_URL_TEMPLATES"] определён шаблон какого-либо пути, то он переопределяет шаблон по умолчанию этого пути.
  • CComponentEngine::MakeComponentVariableAliases
    array
CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404,
                                               $arParams["VARIABLE_ALIASES"]);
    Метод объединяет массив по умолчанию псевдонимов переменных и псевдонимы переменных, которые были переданы во входных параметрах компонента в один массив. При этом, если псевдоним некоторой переменной определён и в массиве по умолчанию, и во входных параметрах, то возвращается псевдоним из входных параметров.
  • CComponentEngine::ParseComponentPath
    string
CComponentEngine::ParseComponentPath($arParams["SEF_FOLDER"],
                                     $arUrlTemplates, $arVariables);
    Метод на основании параметра $arParams["SEF_FOLDER"] и массива шаблонов путей (который вернул метод MakeComponentUrlTemplates) определяет, какому шаблону пути соответствует запрошенный адрес. Если шаблон был найден, возвращается его код, иначе возвращается пустая строка. Кроме того, в переменной $arVariables возвращается массив переменных компонента, который был восстановлен из шаблона пути без параметров. Например, если массив шаблонов путей (который получился из массива $arDefaultUrlTemplates404 после переопределения всех или части шаблонов через входные параметры компонента) имеет вид:
    $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, то метод ParseComponentPath вернет строку "element" (код соответствующего шаблона), а массив $arVariables будет иметь вид:
    $arVariables = array(
    "IBLOCK_ID" => 15,
    "ELEMENT_ID" => 7653
)
  • CComponentEngine::InitComponentVariables
    CComponentEngine::InitComponentVariables($componentPage,
                                         $arComponentVariables,
                                         $arVariableAliases,
                                         $arVariables);
    где:
    • $componentPage - код шаблона, который вернул метод ParseComponentPath и которому соответствует запрошенный адрес;
    • $arComponentVariables - массив переменных, которые компонент может принимать в HTTP запросе и которые могут иметь псевдонимы;
    • $arVariableAliases - массив псевдонимов (который вернул метод MakeComponentVariableAliases).

    Метод восстанавливает переменные из $_REQUEST c учётом их возможных псевдонимов и возвращает их в переменной $arVariables. Например, если для кода, приведенного выше, в массиве $arVariableAliases есть запись вида

    "element" => array(
    "SECTION_ID" => "SID",
)
    то метод InitComponentVariables в параметре $arVariables вернет массив вида
    $arVariables = array(
    "IBLOCK_ID" => 15,
    "ELEMENT_ID" => 7653,
    "SECTION_ID" => 28
)
    Здесь методом InitComponentVariables был инициализирован третий элемент массива. Первые два были инициализированы методом ParseComponentPath в примере выше. В случае работы компонента не в режиме ЧПУ, в метод InitComponentVariables первым параметром передается значение False.

В случае работы компонента в режиме ЧПУ на основании кода шаблона пути и переменных из HTTP запроса (а в случае не-ЧПУ адресов, только на основании переменных из HTTP запроса) компонент определяет, какая страница из шаблона компонента должна подключится, и передает ее имя в вызов метода:

$this->IncludeComponentTemplate($componentPage);

На страницах шаблона комплексного компонента подключаются обычные компоненты и настраиваются их входные параметры на основании входных параметров комплексного компонента, некоторых вычисляемых значений и констант. Например, страница "element" шаблона компонента из примера (файл типа /templates/.default/list.php относительно папки компонента) может иметь вид типа:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?$APPLICATION->IncludeComponent(
   "bitrix:news.detail",
   "",
   Array(
      "IBLOCK_ID" => $arParams["IBLOCK_ID"],
      "ELEMENT_ID" => $arResult["VARIABLES"]["ELEMENT_ID"],
      "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
      "CACHE_TIME" => $arParams["CACHE_TIME"],
   ),
   $component
);?>
Последний параметр $component в подключении компонента - объект, представляющий текущий компонент. Он передается в вызов подключения компонента. Таким образом, подключаемый компонент будет знать, что он подключается из комплексного компонента. Соответственно, он сможет пользоваться ресурсами комплексного компонента, вызывать его методы и т.п.


Шаблоны вывода

Шаблоны компонента делятся на системные и пользовательские.

Системные шаблоны поставляются вместе с компонентом и лежат в подпапке templates папки компонента.

Пользовательские шаблоны компонента – шаблоны, которые изменены под нужды конкретного сайта. Пользовательские шаблоны компонентов должны лежать в папках шаблонов сайтов (т.е. в /bitrix/templates/шаблон_сайта/).

Шаблоны компонента определяются своими именами. Шаблон по умолчанию имеет имя .default. Если не указывается имя шаблона, вызывается шаблон по умолчанию. Остальные шаблоны могут называться произвольно, например table.

Шаблоны компонента могут быть папками или файлами. Если шаблон представляет собой единственный файл и ему не требуется перевод на другие языки, собственные стили и прочие ресурсы, такой шаблон можно расположить в файле. В противном случае, шаблон следует располагать в папке.

Каждый шаблон компонента является неделимым целым. Если требуется изменить системный шаблон компонента под конкретный сайт, то этот шаблон компонента нужно целиком скопировать в папку шаблона сайта.

Например, у компонента bitrix:catalog.section.element есть системный шаблон table, который лежит в подпапке templates папки компонента (в папке /bitrix/components/bitrix/catalog.section.element/templates/ относительно корня сайта). Если этот шаблон компонента требуется изменить под конкретный сайт, то папку этого шаблона table следует скопировать в папку /bitrix/templates/шаблон_сайта/components/bitrix/catalog.section.element/ и изменить по своему усмотрению.


Структура шаблона обычного компонента

Папка шаблона простого компонента может содержать следующие подпапки и файлы:

  • Подпапка lang, в которой расположены файлы языковых сообщений (переводов) шаблона компонента. В этой папке находятся подпапки с именами, равными кодам языков. В этих подпапках находятся файлы языковых сообщений (переводов) шаблона компонента. Файл языковых сообщений для какого-либо файла шаблона компонента должен иметь такое же имя, как и файл компонента и находиться в той же иерархии относительно папки /lang/код_языка/, в которой файл располагается относительно папки шаблона. Например, языковой файл с английскими фразами для файла /index.php требуется располагать по пути /lang/en/index.php. Подпапка lang может отсутствовать, если в шаблоне компонента нет зависящих от языка фраз.
  • Файл result_modifier.php, который подключается непосредственно перед подключением шаблона компонента. Этот файл получает на вход массив результатов работы компонента $arResult и массив параметров вызова компонента $arParams. Таким образом можно, например, изменить массив результатов работы компонента под конкретный шаблон. Например, системный компонент полностью подходит для сайта, за исключением того, что он не возвращает какое-то дополнительное поле. Прямым решением этой проблемы будет создание пользовательского компонента. Однако, кроме затрат на создание, здесь будет следующий минус: компонент не будет обновляться, а значит не будут исправляться ошибки и добавляться новый функционал. Чтобы избавиться от этих недостатков, можно создать файл result_modifier.php в шаблоне компонента и дописать в массив $arResult дополнительное поле. Могут быть и другие варианты использования этого файла. Файл result_modifier.php может отсутствовать.
  • Файл style.css, который определяет стили, необходимые данному шаблону. Он применяется в том случае, если шаблону нужны не стандартные, в рамках сайта, стили. Файл style.css подключается автоматически, если он есть в папке шаблона. Этот файл может отсутствовать.
  • Файл script.js, который определяет подключает ява-скрипты, необходимые данному шаблону, добавлением строки типа <script src=".../script.js" type="text/javascript"></script>. Файл script.js подключается автоматически, если он есть в папке шаблона. Этот файл может отсутствовать.
  • Файл .description.php, который содержит название и описание шаблона для редактора. Этот файл может отсутствовать.
  • Файл .parameters.php, который содержит описание входных параметров шаблона для редактора. Этот файл может отсутствовать.
  • Файл template.ext, который и является собственно шаблоном. Расширение ext зависит от того, какой движок шаблонизации нужно подключать. По умолчанию расширение равно php. Этот файл должен обязательно присутствовать.
  • Любые другие папки и файлы с ресурсами, необходимыми шаблону компонента. Например, папка image, содержащая изображения, необходимые шаблону.


Структура шаблона комплексного компонента

Папка шаблона комплексного компонента может содержать следующие подпапки и файлы.

  • Подпапку lang, в которой расположены файлы языковых сообщений (переводов) шаблона компонента. В этой папке находятся подпапки с именами, равными кодам языков. В этих подпапках находятся файлы языковых сообщений (переводов) шаблона компонента. Файл языковых сообщений для какого-либо файла шаблона компонента должен иметь такое же имя, как и файл компонента и находиться в той же иерархии относительно папки /lang/код_языка/, в которой файл распологается относительно папки шаблона. Например, языковой файл с английскими фразами для файла /section.php требуется распологать по пути /lang/en/section.php. Подпапка lang может отсутствовать, если в шаблоне компонента нет зависящих от языка фраз.
  • Файл result_modifier.php, который подключается непосредственно перед подключением шаблона компонента. Этот файл получает на вход массив результатов работы компонента $arResult и массив параметров вызова компонента $arParams. Таким образом можно, например, изменить массив результатов работы компонента под конкретный шаблон.
  • Файл style.css, который определяет стили, необходимые данному шаблону. Он применяется в том случае, если шаблону нужны не стандартные, в рамках сайта, стили. Файл style.css подключается автоматически, если он есть в папке шаблона. Этот файл может отсутствовать.
  • Файл script.js, который определяет подключает ява-скрипты, необходимые данному шаблону, добавлением строки типа <script src=".../script.js" type="text/javascript"></script>. Файл script.js подключается автоматически, если он есть в папке шаблона. Этот файл может отсутствовать.
  • Файл .description.php, который содержит название и описание шаблона для редактора. Этот файл может отсутствовать.
  • Файл .parameters.php, который содержит описание входных параметров шаблона для редактора. Этот файл может отсутствовать.
  • Файлы название_страницы.ext, который являются шаблонами страниц комплексного компонента. Расширение ext зависит от того, какой движок шаблонизации нужно подключать. По умолчанию расширение равно php. Для каждой страницы комплексного компонента должен присутствовать файл название_страницы.ext.
  • Шаблоны простых компонентов, которые входят в состав комплексного. Эти шаблоны располагаются в папках вида /пространство_имен/название_простого_компонента/ относительно папки шаблона комплексного компонента.
  • Любые другие папки и файлы с ресурсами, необходимыми шаблону компонента. Например, папка image, содержащая изображения, необходимые шаблону.

Простые компоненты, входящие в состав комплексного, подключаются на шаблонах страниц комплексного компонента.


Модификация результата result_modifier.php

Если в папке шаблона есть файл result_modifier.php, то он вызывается перед подключением шаблона. В этом файле можно изменить результат работы компонента произвольным образом.

В файле result_modifier.php можно запросить дополнительные данные и занести их в массив результатов работы компонента $arResult. Это может оказаться полезным, если требуется вывести на экран какие-либо дополнительные данные, но не хочется кастомизировать компонент и отказываться от его поддержки и обновлений.

В файле result_modifier.php можно переформатировать результат работа компонента $arResult для более удобного использования в шаблоне.


Поиск шаблона компонента

Применяется следующий алгоритм поиска подходящего шаблона для компонента.

  1. Берется папка /bitrix/templates/текущий_шаблон_сайта/components/. В этой папке в пути /пространство_имен_компонента/название_компонента/ проверяется последовательно наличие файла или папки с именем шаблона. Если таковых нет, то проверяется наличие файла имя_шаблона.ext, где в качестве ext берутся последовательно все доступные расширения всех установленых на сайте движков шаблонизации. Если шаблон найден, то алгоритм завершается.
  2. Если на шаге 1 шаблон не найден, то берется папка /bitrix/templates/.default/components/. И применяется алгоритм, описанный в шаге 1. Если шаблон найден, то алгоритм завершается.
  3. Если на шаге 2 шаблон не найден, то производится поиск среди системных (т.е. поставляемых с компонентом) шаблонов.

Если имя шаблона не задано, то ищется шаблон с именем «.default».

Если шаблон задан именем папки, то в случае простого компонента в этой папке ищется файл template.ext, а в случае комплексного - название_страницы.ext. Расширение ext сначала принимается равным php, а затем расширениям других доступных на сайте движков шаблонизации.

Например, требуется показать компонент «bitrix:catalog.list» с помощью шаблона «table». Пусть на сайте, кроме стандартного движка шаблонизации (файлы с расширением php), доступен так же движок Smarty (файлы с расширением tpl). Система проверит сначала папку /bitrix/templates/текущий_шаблон_сайта/components/bitrix/catalog.list/ на наличие файла или папки с именем table. Если таковых нет, система проверит указанную выше папку на наличие файлов table.php и table.tpl. Если ничего не найдено, система изучит папки /bitrix/templates/.default/components/bitrix/catalog.list/ и /bitrix/components/bitrix/catalog.list/templates/.

Если папка компонента найдена, в этой папке сначала ищется файл template.php, а если template.php не найден, ищется template.tpl. Если шаблон задан в виде «table/template.php», то сразу берется указанный файл.

Если простой компонент вызывается в составе комплексного, то шаблон простого компонента сначала ищется в составе шаблона комплексного компонента, а потом (если не найден) в собственных шаблонах.


Пользовательские движки шаблонизации

Компоненты могут работать с любыми движками шаблонизации, которые могут быть подключены их PHP. Для того, чтобы добавить новый движок шаблонизации на сайт, необходимо определить (или дополнить) глобальную переменную $arCustomTemplateEngines в файле /bitrix/php_interface/init.php. В этой переменной содержится ассоциативный массив, каждый элемент которого имеет вид:

"код_шаблонизатора" => array(
    "templateExt" => array("расширение1"[, "расширение2"...]),
    "function" => "имя_функции_подключения_движка"
    )
где:
  • "код_шаблонизатора" - произвольное уникальное в рамках сайта слово;
  • "расширениеN" - расширение файла, который должен обрабатываться этим движком шаблонизации;
  • "имя_функции_подключения_движка" - имя функции, которая будет вызываться, если шаблон компонента имеет указанное расширение. Функцию можно разместить в этом же файле /bitrix/php_interface/init.php.

Например, если на сайте, кроме стандартного движка шаблонизации (PHP), требуется использовать Smarty, то в файл /bitrix/php_interface/init.php необходимо добавить следующий код:

global $arCustomTemplateEngines;
$arCustomTemplateEngines = array(
    "smarty" => array(
        "templateExt" => array("tpl"),
        "function" => "SmartyEngine"
    ),
);

Тогда, при подключении шаблона с расширением tpl, будет запускаться не стандартный движок PHP, а функция SmartyEngine, которая должна подключить движок Smarty.

Синтаксис функций подключения движков:

function имя_функции_подключения_движка($templateFile,
                                        $arResult,
                                        $arParams,
                                        $arLangMessages,
                                        $templateFolder,
                                        $parentTemplateFolder,
                                        $template)
где:
  • $templateFile – путь к файлу шаблона относительно корня сайта;
  • $arResult – массив результатов работы компонента;
  • $arParams – массив входных параметров компонента;
  • $arLangMessages – массив языковых сообщений (переводов) шаблона;
  • $templateFolder – путь к папке шаблона относительно корня сайта (если шаблон лежит не в папке, то эта переменная пуста);
  • $parentTemplateFolder - путь относительно корня сайта к папке шаблона комплексного компонента, в составе которого подключается данный компонент (если компонент подключается самостоятельно, то эта переменная пуста);
  • $template – объект шаблона.

Код функции подключения движка шаблонизации зависит от подключаемого движка.

Пример подключения движка Smarty

В файл /bitrix/php_interface/init.php необходимо добавить код:

global $arCustomTemplateEngines;
$arCustomTemplateEngines = array(
    "smarty" => array(
        "templateExt" => array("tpl"),
        "function" => "SmartyEngine"
    )
);

function SmartyEngine($templateFile,
                      $arResult,
                      $arParams,
                      $arLangMessages,
                      $templateFolder,
                      $parentTemplateFolder,
                      $template)
{
    if (!defined("SMARTY_DIR"))
        define("SMARTY_DIR", "<абсолютный путь к движку Smarty>/libs/");

    require_once('<абсолютный путь к движку Smarty>/libs/Smarty.class.php');

    $smarty = new Smarty;

    $smarty->compile_dir = "<абсолютный путь к движку Smarty>/templates_c/";
    $smarty->config_dir = "<абсолютный путь к движку Smarty>/configs/";
    $smarty->template_dir = "<абсолютный путь к движку Smarty>/templates/";
    $smarty->cache_dir = "<абсолютный путь к движку Smarty>/cache/";

    $smarty->compile_check = true;
    $smarty->debugging = false;

    $smarty->assign("arResult", $arResult);
    $smarty->assign("arParams", $arParams);
    $smarty->assign("MESS", $arLangMessages);
    $smarty->assign("templateFolder", $templateFolder);
    $smarty->assign("parentTemplateFolder", $parentTemplateFolder);

    $smarty->display($_SERVER["DOCUMENT_ROOT"].$templateFile);
}

Строку "<абсолютный путь к движку Smarty>" нужно везде заменить на абсолютный путь к системе Smarty. Подробности по установке Smarty на сайт содержатся в его справочной системе.

В массиве $arCustomTemplateEngines регистрируется Smarty. В функции SmartyEngine инициализируются его параметры в соответствии с требованиями Smarty (см. систему помощи Smarty). Далее, в Smarty передаются переменные результатов работы компонента, входных параметров, языковых сообщений и т.д. В конце вызывается метод обработки и показа шаблона Smarty.

Это упрощённый пример с акцентом на подключении. Для реального сайта он может быть изменен под конкретные нужды, могут быть задействованы вспомогательные механизмы Smarty типа фильтров и т.п. Например, для того, чтобы не создавать объект Smarty при каждом подключении шаблона, можно изменить код функции SmartyEngine следующим образом:

global $smarty;
$smarty = null;

function SmartyEngine($templateFile,
                      $arResult,
                      $arParams,
                      $arLangMessages,
                      $templateFolder,
                      $parentTemplateFolder,
                      $template)
{
    if (!defined("SMARTY_DIR"))
        define("SMARTY_DIR", "<абсолютный путь к движку Smarty>/libs/");

    global $smarty;
    if (!isset($smarty) || !is_object($smarty))
    {
        require_once('<абсолютный путь к движку Smarty>/libs/Smarty.class.php');

        $smarty = new Smarty;

        $smarty->compile_dir = "<абсолютный путь к движку Smarty>/templates_c/";
        $smarty->config_dir = "<абсолютный путь к движку Smarty>/configs/";
        $smarty->template_dir = "<абсолютный путь к движку Smarty>/templates/";
        $smarty->cache_dir = "<абсолютный путь к движку Smarty>/cache/";

        $smarty->compile_check = true;
        $smarty->debugging = false;
    }
    else
    {
        $smarty->clear_all_assign();
    }

    $smarty->assign("arResult", $arResult);
    $smarty->assign("arParams", $arParams);
    $smarty->assign("MESS", $arLangMessages);
    $smarty->assign("templateFolder", $templateFolder);
    $smarty->assign("parentTemplateFolder", $parentTemplateFolder);

    $smarty->display($_SERVER["DOCUMENT_ROOT"].$templateFile);
}

Пример подключения движка XML/XSLT

global $arCustomTemplateEngines;
$arCustomTemplateEngines = array(
    "xslt" => array(
        "templateExt" => array("xsl"),
        "function" => "XSLTEngine"
    ),
);

function CreateXMLFromArray($xDoc, $xNode, $ar)
{
    foreach($ar as $key=>$val)
    {
        if(!is_string($key) || strlen($key)<=0)
            $key = "value";

        $xElement = $xDoc->createElement($key);
        if(is_array($val))
        {
            CreateXMLFromArray($xDoc, $xElement, $val);
        }
        else
        {
            $xElement->appendChild($xDoc->createTextNode(iconv(SITE_CHARSET, "utf-8", $val)));
        }
        $xNode->appendChild($xElement);
    }
    return $xNode;
}

function XSLTEngine($templateFile,
                    $arResult,
                    $arParams,
                    $arLangMessages,
                    $templateFolder,
                    $parentTemplateFolder,
                    $template)
{
    $arResult["PARAMS"] = array(
        "templateFolder" => $templateFolder,
        "parentTemplateFolder" => $parentTemplateFolder,
        "arParams" => $arParams,
        "arLangMessages" => $arLangMessages
    );

    $xDoc = new DOMDocument("1.0", SITE_CHARSET);
    $xRoot = $xDoc->createElement('result');
    CreateXMLFromArray($xDoc, $xRoot, $arResult);
    $xDoc->appendChild($xRoot);

    $xXsl = new DOMDocument();
    $xXsl->load($_SERVER["DOCUMENT_ROOT"].$templateFile);

    $xProc = new XSLTProcessor;
    $xProc->importStyleSheet($xXsl);

    echo $xProc->transformToXML($xDoc);
}


Человекопонятные URL

В комплексные компоненты встроена функция генерации ЧПУ (т.н. человекопонятные URL). Оригинальное английское название таких ссылок — SEF URL (Search Engines Friendly URL).

У комплексного компонента всегда есть входной параметр SEF_MODE, который может принимать значения Y и N.

Если параметр SEF_MODE равен N - значит, компонент работает с физическими ссылками и все параметры передает через стандартные параметры HTTP запроса. Например:

/fld/cat.php?IBLOCK_ID=12&SECTION_ID=371

Если параметр SEF_MODE равен Y, компонент генерирует и обрабатывает ссылки на основании шаблонов. Например, он может понять и обработать ссылку:

/catalog/section/371.php?IBLOCK_ID=12

даже если сам он лежит в файле /fld/cat.php.

Если параметр SEF_MODE равен Y, то у компонента должен так же присутствовать параметр SEF_FOLDER, который должен содержать путь до папки, с которой работает компонент. Этот путь может как совпадать с физическим путём, так и не совпадать. Например, в компоненте «bitrix:catalog», подключенном в файле /fld/cat.php, могут быть установлены параметры SEF_MODE = Y и SEF_FOLDER=/catalog/. Тогда компонент будет откликаться на запросы по пути /catalog/.... По умолчанию редактор должен устанавливать текущий физический путь к редактируемому файлу.

У комплексного компонента, который может работать в режиме SEF, должен быть определён набор шаблонов путей по умолчанию. Например, в комплексном компоненте «bitrix:catalog» может быть определён следующий массив:

$arDefaultUrlTemplatesSEF = array(
    "list" => "index.php",
    "section" => "section.php?IBLOCK_ID=#IBLOCK_ID#&SECTION_ID=#SECTION_ID#",
    "element" => "element.php?ELEMENT_ID=#ELEMENT_ID#"
);

Эти шаблоны путей могут быть переопределены с помощью входного параметра комплексного компонента SEF_URL_TEMPLATES, содержащего новый массив всех шаблонов путей или их части.

При сохранении страницы с компонентом, работающим в SEF режиме, в редакторе создаётся или обновляется запись в системе urlrewrite. Например, при сохранении файла /fld/cat.php, в котором лежит компонент «bitrix:catalog», переключенный в SEF режим с параметром SEF_FOLDER=/catalog/, в системе urlrewrite создаётся или обновляется запись типа:

array(
    "CONDITION" => "#^/catalog/#",
    "ID" => "bitrix:catalog",
    "PATH" => "/fld/cat.php"
),

В CONDITION записывается значение параметра SEF_FOLDER, обрамленное символами «#^» и «#», в ID записывается название компонента, а в PATH записывается физический путь к файлу, который сохраняется. Если запись с таким PATH и ID уже есть, что она обновляется, если нет - добавляется.

В run-time при запросе физически не существующей страницы механизм urlrewrite производит поиск соответствующей записи по CONDITION и передает управление на страницу PATH.

Компонент на странице PATH на основании шаблонов путей выясняет запрашиваемую страницу и восстанавливает переменные, спрятанные в пути.

Внимание!
Обязательное требование к набору шаблонов путей данного компонента - уникальность каждого шаблона пути без учета параметров и переменных. Это должно проверяться при сохранении страницы в визуальном редакторе. Другими словами, набор шаблонов путей
"section" => "section/#SECTION_ID#.php?IBLOCK_ID=#IBLOCK_ID#",
"element" => "element/#ELEMENT_ID#.php"
является допустимым, а набор шаблонов путей
"section" => "#SECTION_ID#.php?IBLOCK_ID=#IBLOCK_ID#",
"element" => "#ELEMENT_ID#.php"
допустимым не является.


Псевдонимы входящих переменных

Каждый компонент имеет набор переменных, в которых он принимает извне коды или другие атрибуты запрашиваемых данных. Например, компонент bitrix:catalog.section имеет переменные IBLOCK_ID и SECTION_ID, в которых он принимает и обрабатывает коды каталога и группы товаров соответственно.

Все компоненты, которые входят в состав комплексного компонента, должны иметь единообразный набор переменных. Например, комплексный компонент bitrix:catalog и все обычные компоненты (bitrix:catalog.list, bitrix:catalog.section и т.д.), которыми он управляет, работают с переменными IBLOCK_ID, SECTION_ID, ELEMENT_ID и пр.

Если пользователь при размещении комплексного компонента на странице хочет переопределить переменные компонента, то он среди входящих параметров компонента должен задать параметр VARIABLE_ALIASES.

При подключении компонента в режиме SEF этот параметр должен имет вид:

"VARIABLE_ALIASES" => array(
    "list" => array(),
    "section" => array(
        "IBLOCK_ID" => "BID",
        "SECTION_ID" => "ID"
    ),
    "element" => array(
        "SECTION_ID" => "SID",
        "ELEMENT_ID" => "ID"
    ),
)

Здесь коды массива соответствуют кодам в массиве шаблонов путей. Для каждого пути могут быть заданы свои переопределения переменных.

При подключении компонента не в режиме SEF этот параметр должен иметь вид:

"VARIABLE_ALIASES" => array(
    "IBLOCK_ID" => "BID",
    "SECTION_ID" => "GID",
    "ELEMENT_ID" => "ID",
)

Пример 1

Пусть требуется, чтобы компонент bitrix:catalog, лежащий в файле /fld/cat.php, работал с путями:

/catalog/index.php (для списка каталогов)
/catalog/section/код_группы.php?ID=код_каталога (для группы товаров)
/catalog/product/код_товара.php?ID=код_группы (для детальной информации о товаре)

Во входящих параметрах подключения компонента должны быть установлены следующие параметры:

"SEF_MODE" => "Y",
"SEF_FOLDER" => "/catalog/",
"SEF_URL_TEMPLATES" => array(
    "list" => "index.php",
    "section" => "section/#SECTION_ID#.php?ID=#IBLOCK_ID#",
    "element" => "element/#ELEMENT_ID#.php?ID=#SECTION_ID#"
),
"VARIABLE_ALIASES" => array(
    "list" => array(),
    "section" => array(
        "IBLOCK_ID" => "ID"
    ),
    "element" => array(
        "SECTION_ID" => "ID",
    ),
)

Пример 2

Пусть требуется, чтобы компонент bitrix:catalog, лежащий в файле /fld/cat.php, работал с путями

/fld/cat.php (для списка каталогов)
/fld/cat.php?BID=код_каталога&SID=код_группы (для группы товаров)
/fld/cat.php?ID=код_товара&SID=код_группы (для детальной информации о товаре)

Во входящих параметрах подключения компонента должны быть установлены следующие параметры:

"SEF_MODE" => "N",
"VARIABLE_ALIASES" => array(
    "IBLOCK_ID" => "BID",
    "SECTION_ID" => "SID",
    "ELEMENT_ID" => "ID",
)


HTTP POST запросы

Если на сайте не существующие страницы обрабатываются с помощью опции ErrorDocument (ErrorDocument 404 /404.php), то при отправке HTTP POST запроса на несуществующую страницу данные POST запроса будут потеряны. Поэтому, такие запросы нужно направлять на скрипты, которые физически сущестуют.

Один из способов организации ЧПУ в компонентах 2.0 предполагает использование опции ErrorDocument. Для компонентов 2.0 существует унифицированное решение, которое при написании компонентов и шаблонов компонентов позволяет не заботиться о том, осуществляется ли поддержка ЧПУ с помощью опции ErrorDocument или mod_rewrite.

При написании в шаблонах компонентов форм, отправляющих данные методом POST, в качестве action необходимо указывать константу POST_FORM_ACTION_URI:

<form method="post" action="<?=POST_FORM_ACTION_URI?>">
    * * *
</form>

В этом случае при работе с использованием опции ErrorDocument POST-запрос будет направлен на физически существующий скрипт, а в остальных случаях - по текущему адресу. При этом для компонента не будет разницы, вызван ли он POST- или GET-запросом. Все необходимые переменные будут соответствующим образом установлены.


Создание раздела панели управления

В данном разделе мы разберем создание раздела панели управления на примере раздела "Подписка".

  • Создание списка элементов - описание процесса создания административной страницы со списком элементов
  • Создание формы редактирования - описание процесса создания административной страницы, содержащей форму редактирования/добавления элементов

Также дополнительно рассмотрим создание собственных обработчиков закладок в форму добавления/редактирования элементов, а также конфигурацию административного меню модуля.


Конфигурация административного меню модуля

В данном разделе описывается управление главным административным меню.

Основная структура

Для каждого модуля параметры меню задаются файлом /bitrix/каталог_модуля/admin/menu.php. Результатом работы этого файла должен стать описательный массив меню модуля. Возможности API позволяют создать древовидное меню с любым уровнем вложенности, а также, с динамической подгрузкой отдельных ветвей.

Файл menu.php должен вернуть ассоциативный массив следующей структуры:

Ключ | Описание
parent_menu Идентификатор раздела меню. Имеет смысл только для элемента верхнего уровня дерева меню модуля. Может принимать одно из следующих значений:
  • global_menu_content - раздел "Контент"
  • global_menu_services - раздел "Сервисы"
  • global_menu_store - раздел "Магазин"
  • global_menu_statistics - раздел "Веб-аналитика"
  • 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=".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=".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

CAdminContextMenu - меню на страницах панели управления.

Методы для работы с фильтром

Метод | Описание
CAdminContextMenu | Конструктор класса.
Show | Вывод меню.

Пример работы с меню

Работа с меню описана в руководстве по созданию административных страниц.


CAdminContextMenu

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CAdminContextMenu::CAdminContextMenu

object
CAdminContextMenu(
    array $arMenu
)

Класс позволяет создать административное меню, которое обычно отображается над таблицей со списком (только если у текущего пользователя есть права на редактирование). Конфигурация меню передается первым и единственным параметром конструктора и формируется в виде массива, элементами которого являются ассоциативные массивы с ключами:

Ключ | Описание
TEXT | Текст пункта меню.
TITLE | Текст всплывающей подсказки пункта меню.
LINK | Ссылка на кнопке.
LINK_PARAM | Дополнительные параметры ссылки (напрямую подставляются в тэг <A>).
ICON | CSS-класс иконки действия.
HTML | Задание пункта меню напрямую HTML-кодом.
SEPARATOR | Разделитель между пунктами меню (true|false).
NEWBAR | Новый блок элементов меню (true|false).
MENU | Создание выпадающего подменю. Значение задается аналогично контекстному меню строки таблицы.

Пример

// сформируем меню из одного пункта - добавление рассылки
$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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CAdminException::CAdminException

object
CAdminException(
  array $arMessages[,
  string $id = false]
)

Конструктор класса принимает на вход массив сообщений. Каждое сообщение представляет собой ассоциативный массив вида array("id"=>"Идентификатор_ошибки", "text" => "Текст_ошибки"). Второй параметр вызова конструктора - $id - аналогичен такому же параметру CApplicationException и передается всквозную.


AddMessage

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CAdminException::AddMessage

void
CAdminException::AddMessage(
  array $arMessage
)

Добавляет сообщение к списку ошибок, зарегистрированных в экземпляре класса. Сообщение принимается в формате array("id"=>"Идентификатор_ошибки", "text" => "Текст_ошибки").


GetMessages

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CAdminException::GetMessages

array
CAdminException::GetMessages(
)

Возвращает массив ошибок, переданных экземпляру класса.


CAdminFilter

CAdminFilter - класс для работы с фильтром списка результатов на странице панели управления.

Методы для работы с фильтром

Метод | Описание
CAdminFilter | Конструктор класса.
Begin | Вывод шапки фильтра.
Buttons | Вывод кнопок фильтра.
End | Завершение вывода фильтра.

Пример работы с фильтром

Предварительная работа с фильтром осуществляется следующим образом:

// проверку значений фильтра для удобства вынесем в отдельную функцию
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,
    );
}

// далее, полученный массив передаем в 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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CAdminFilter::CAdminFilter

object
CAdminFilter(
    string $ID[,
    array $arPopup = false]
)

Конструктор класса фильтра.

Параметры

Параметр | Описание
ID | Идентификатор фильтра, уникальный в пределах страницы.
arPopup | Массив названий полей фильтра.


Begin

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CAdminFilter::Begin

void
CAdminFilter::Begin(
)

Выводит заголовок формы фильтра.


Buttons

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CAdminFilter::Buttons

void
CAdminFilter::Buttons(
  mixed $arParams = false
)

Кнопки управления формы фильтра.

Параметры

Параметр Описание
arParams Необязательный массив параметров. Возможные ключи массива:
  • url - путь к странице-обработчику фильтра. По умолчанию - текущая страница;
  • table_id - идентификатор таблицы списка;
  • report - используется на страницах с отчетами. По умолчанию - false.


End

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::CAdminList

object
CAdminList(
    string $ID[,
    mixed $oSort = false]
)

Конструктор класса списка.

Параметры

Параметр | Описание
ID | Уникальный на странице идентификатор таблицы списка.
oSort | Экземпляр класса CAdminSorting. Необязательный параметр.


ActionAjaxReload

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::ActionPost

string
CAdminList::ActionPost(
  string $url
)

Метод возвращает строку, которая представляет собой JavaScript-вызов для совершения переадресации пользователя на заданную страницу методом POST с отправкой формы изменений списка. Ссылка на страницу задается первым и единственным параметром вызова метода. Метод может служить, например, для формирования ссылок административного меню страницы или контекстного меню элементов списка.

Пример

  // создаем строку. результат - экземпляр класса 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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::AddAdminContextMenu

void
CAdminList::AddAdminContextMenu([
  array $aMenu = array(),
  bool $bShowExcel = true,
  bool $bShowSettings = true
])

Формирование административного меню страницы.

Параметры

Параметр | Описание
aMenu | Описательный массив меню. Подробнее см. CAdminContextMenu
bShowExcel | Добавлять ли в меню кнопку экспорта списка в MS Excel. Необязательный параметр. По умолчанию - true. Кнопка будет добавлена в конец последнего блока элементов меню.
bShowExcel | Добавлять ли в меню редактирования настроек списка. Необязательный параметр. По умолчанию - true. Кнопка будет добавлена в конец последнего блока элементов меню.


AddFilterError

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::AddFilterError

void
CAdminList::AddFilterError(
  string $strError
)

Метод служит для добавления в список ошибок, возникших в процессе обработки групповых действий над строками таблицы.

Параметры:

Параметр | Описание
strError | Текст ошибки.


AddFooter

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::AddGroupError

void
CAdminList::AddGroupError(
  string $strError[,
  mixed $ID = false]
)

Метод служит для добавления в список ошибок, возникших в процессе обработки групповых действий над строками таблицы.

Параметры:

Параметр | Описание
strError | Текст ошибки.
ID | Идентификатор стоки, в которой возникла ошибка.


AddHeaders

1С-Битрикс: Управление сайтом Отправить отзыв

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,
  ),
));


AddRow

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::AddUpdateError

void
CAdminList::AddUpdateError(
  string $strError[,
  mixed $ID = false]
)

Метод служит для добавления в список ошибок, возникших в процессе сохранения изменений строк таблицы.

Параметры:

Параметр | Описание
strError | Текст ошибки.
ID | Идентификатор стоки, в которой возникла ошибка.


CheckListMode

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::CheckListMode

void
CAdminList::CheckListMode(
)

Метод проверяет требуемый тип вывода списка. Если требуется вывод списка посредством AJAX или в виде Excel-таблицы, то выполнение скрипта прерывается и вывод списка осуществляется внутри метода.


Display

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::Display

void
CAdminList::Display(
)

Метод осуществляет вывод предварительно подготовленного списка.


DisplayList

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::DisplayList

void
CAdminList::DisplayList(
)

Метод осуществляет вывод предварительно подготовленного списка. В отличие от CAdminList::Display() добавляет к списку все "обрамление" - кнопки, вывод из AJAX и т.д.


EditAction

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::GroupAction

bool
CAdminList::GroupAction(
)

Функция возвращает true, если были совершены групповые операции над строками таблицы и требуется сохранение изменений.

Пример

// обработка одиночных и групповых действий
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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminList::InitFilter

void
CAdminList::InitFilter(
  array $arFilterFields
)

Метод инициализирует фильтр. Пример создания административной страницы с фильтром подробно разобран здесь.


IsUpdated

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminListRow::AddCalendarField

void
CAdminListRow::AddCalendarField(
  string $ID[,
  array $arAttributes = array()]
)

Метод позволяет настроить отображение поля списка в режиме редактирования в виде поля ввода даты.

Параметры

Параметр | Описание
ID | Идентификатор ячейки.
arAttributes | Массив дополнительных атрибутов тэга INPUT в виде "атрибут" => "значение".

Пример:

$row->AddCalendarField(
    "DATE",
    array(
        "size" => "15"
    )
);


AddCheckField

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminListRow::AddCheckField

void
CAdminListRow::AddCheckField(
  string $ID
)

Метод позволяет настроить отображение поля списка в режиме редактирования в виде чекбокса. Чекбокс будет включенным, если значение ячейки равно 'Y'.

Параметры

Параметр | Описание
ID | Идентификатор ячейки.

Пример:

// флаги ACTIVE и VISIBLE будут редактироваться чекбоксами
$row->AddCheckField("ACTIVE");
$row->AddCheckField("VISIBLE");


AddEditField

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminMessage::GetMessages

array
CAdminMessage::GetMessages(
)

Получение списка сообщений. При создании экземпляра класса CAdminMessage в качестве второго параметра должен быть передан экземпляр класса CAdminException.


Show

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminMessage::Show

string
CAdminMessage::Show(
)

Вывод подготовленного сообщения.

Пример:

if($ex = $APPLICATION->GetException())
{
  $message = new CAdminMessage(GetMessage("FORM_ERROR_SAVE"), $ex);
  echo $message->Show();
}


ShowMessage

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminMessage::ShowMessage

string
CAdminMessage::ShowMessage(
    string $message
)

Вывод сообщения об ошибке.

Пример:

if (strlen(strError) > 0)
{
  echo CAdminMessage::ShowMessage($strError);
}


ShowNote

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminMessage::ShowNote

string
CAdminMessage::ShowNote(
  string $message
)

Вывод уведомления.

Пример:

echo CAdminMessage::ShowNote('Не нажимайте кнопки "Назад" и "Обновить" Вашего браузера!');


CAdminResult

CAdminResult - класс-потомок класса CDBResult, изменяющий некоторые методы для адаптации к использованию в скриптах панели управления. Работа с ним осуществляется аналогично CDBResult.


CAdminSorting

Класс CAdminSorting представляет собой дескриптор сортировки таблицы списка элементов на страницах панели управления.

Методы

Метод | Описание
CAdminSorting | Конструктор класса.

Пример работы с сортировками

Работа сортировок описана в руководстве по созданию административных страниц.


CAdminSorting

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminTabControl::CAdminTabControl

object
CAdminTabControl(
   string $NAME,
   array $aTabs[,
   bool $bCanExpand = true]
)

Конструктор класса, реализующего механизм форм, разбитых нас страницы, динамически переключаемые закладками.

Параметры

Параметр | Описание
NAME | Уникальный в рамках страницы идентификатор.
aTabs | Массив, описывающий список закладок. Формат массива см. ниже.
bCanExpand | Флаг, означающий возможность развернуть страницы в одну. Необязательный параметр. По умолчанию - true - можно развернуть.

Конфигурация закладок задается в виде массива, элементами которого являются ассоциативные массивы, которые могут иметь следующие ключи:

Ключ | Описание
DIV | Уникальный идентификатор закладки.
TAB | Текст, помещаемый на закладку.
TITLE | Описание страницы, к которой ведет закладка.
ICON | CSS-класс иконки, выводимой рыдом с описанием страницы.
ONSELECT | JavaScript-сценарий, который будет выполнен при переключении на закладку.

Пример

$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

1C-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminTabControl::End

void
CAdminTabControl::End(
)

Завершает вывод формы с закладками. Если есть открытые закладки - закрывает их.

Пример

<?
// завершение формы - вывод кнопок сохранения изменений
$tabControl->Buttons(
  array(
    "disabled"=>($POST_RIGHT<"W"),
    "back_url"=>"rubric_admin.php?lang=".LANG,
  )
);
?>
<?
// завершаем интерфейс закладки
$tabControl->End();
?>


EndTab

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminTabControl::EndTab

void
CAdminTabControl::EndTab(
)

Завершает текущую страницу формы. Вызывается автоматически в CAdminTabControl::BeginNextTab, CAdminTabControl::Buttons и CAdminTabControl::End.


ShowWarnings

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminTabEngine::Action

bool
CAdminTabEngine::Action(
)

Метод вызывает обработчики собственных закладок для обработки данных формы. Если в одном из обработчиков возникла ошибка, остальные все равно вызываются.

Пример

if (!$customTabber->Action())
{
  if ($ex = $APPLICATION->GetException())
    $errorMessage .= $ex->GetString();
  else
    $errorMessage .= "Error. ";
}


Check

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminTabEngine::Check

bool
CAdminTabEngine::Check(
)

Метод вызывает обработчики собственных закладок для проверки данных формы. Если в одном из обработчиков возникла ошибка, остальные все равно вызываются.

Пример

if (!$customTabber->Check())
{
  if ($ex = $APPLICATION->GetException())
    $errorMessage .= $ex->GetString();
  else
    $errorMessage .= "Error. ";
}


GetTabs

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminTabEngine::GetTabs

array
CAdminTabEngine::GetTabs(
)

Метод вызывает обработчики собственных закладок для получения конфигурации закладок. Автоматически вызывается в CAdminTabControl::AddTabs.


SetArgs

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminTabEngine::SetArgs

void
CAdminTabEngine::SetArgs([
  array $arArgs = array()
])

Метод служит для установки дополнительных аргументов, которые будут переданы обработчикам собственных закладок. Аналогично заполнению второго параметра конструктора класса CAdminTabEngine.


SetErrorState

1С-Битрикс: Управление сайтом Отправить отзыв

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

1С-Битрикс: Управление сайтом Отправить отзыв

CAdminTabEngine::ShowTab

void
CAdminTabEngine::ShowTab(
  string $tabName
)

Метод вызывает обработчики собственных закладок для получения HTML-кода страниц. В качестве параметра принимает идентификатор закладки. Автоматически вызывается в CAdminTabControl::BeginNextTab.


Классы и функции

"Ядро" системы состоит из функций, событий и следующих классов:

Класс | Описание
CMain | Основной класс.
CDatabase | Класс для работы с базой данной.
CDBResult | Класс результата выполнения запроса.
CAgent | Класс для работы с агентами.
CEvent | Класс для отправки почтовых событий.
CEventMessage | Класс для работы с шаблонами почтовых событий.
CEventType | Класс для работы с типами почтовых событий.
CFile | Класс для работы с файлами и изображениями.
CUser | Класс для работы с пользователями.
CGroup | Класс для работы с группами пользователей.
CSite | Класс для работы с сайтами.
CLanguage | Класс для работы с языками.
CMainPage | Класс для использования на индексной странице портала.
CMenu | Обработка меню.
CModule | Управление модулями.
COption | Класс для работы с параметрами модулей.
CPageOption | Класс для работы с параметрами действующими только на странице.
CPageCache | Класс для кеширования HTML.
CPHPCache | Класс для кеширования PHP переменных и HTML.


CAdminFileDialog

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CAdminFileDialog

CAdminFileDialog - класс для работы с файловым диалогом в административной части системы

Методы класса

Метод | Описание
ShowScript | Генерирует и добавляет скрипты, необходимые для показа диалога.


ShowScript

1С-Битрикс: Управление сайтом Отправить отзыв

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>


CAgent

CAgent - класс для работы с функциями-агентами.

Методы класса

Метод | Описание
AddAgent | Добавляет функцию-агент.
CheckAgents | Проверяет и запускает функции-агенты.
Delete | Удаляет функцию-агент по ее ID.
RemoveAgent | Удаляет функцию-агент по ее имени.
RemoveModuleAgents | Удаляет все функции-агенты указанного модуля.

См. также

  • Агенты


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. Как правило, подобное используется в агентах которые должны гарантированно запуститься определённое количество раз.

Если значение - "N", то очередная дата запуска агента (next_exec) будет рассчитываться как:

next_exec = дата последнего запуска + interval
Т.е. агент после первого запуска будет в дальнейшем запускаться с периодичностью указанной в параметре interval. Параметр необязательный, по умолчанию - "N".
interval Интервал (в секундах), с какой периодичностью запускать агента.
Необязательный. По умолчанию - 86400 (1 сутки).
datecheck Дата первой проверки "не пора ли запустить агент" в формате текущего языка.
Необязательный. По умолчанию - текущее время.
active Активность агента (Y|N).
Необязательный. По умолчанию - "Y" (активен).
next_exec Дата первого запуска агента в формате текущего языка.
Необязательный. По умолчанию - текущее время.
sort Индекс сортировки позволяющий указать порядок запуска данного агента относительно других агентов для которых подошло время запуска.
Необязательный. По умолчанию - 100.

Возвращаемые значения

При успешном выполнении, возвращает 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).")";
   }
}
?>


CAgent::CheckAgents

CAgent::CheckAgents()

Выполняет функцию-агента, время запуска которой наступило. Функция автоматически вызывается вначале каждой страницы и не требует ручного запуска.

Параметры функции

Без параметров.

См. также

  • Агенты


CAgent::Delete

CAgent::Delete(
 int id
)

Удаляет функцию-агент из таблицы зарегистрированных агентов.

Параметры функции

Параметр | Описание
id | ID функции-агента.

См. также

  • Агенты
  • CAgent::RemoveAgent
  • CAgent::RemoveModuleAgents

Примеры использования

<?
if (CAgent::Delete(34)) echo "Агент #34 успешно удален.";
?>


CAgent::RemoveAgent

CAgent::RemoveAgent(
 string name,
 string module=""
)

Удаляет функцию-агента из таблицы зарегистрированных агентов.

Параметры функции

Параметр | Описание
name | Функция-агент.
module | Идентификатор модуля. Необязательный. По умолчанию - главный модуль ("main").

См. также

  • Агенты
  • CAgent::RemoveModuleAgents
  • CAgent::Delete

Примеры использования

<?
CAgent::RemoveAgent("CCatalog::PreGenerateXML(\"yandex\");", "catalog");
if ($bNeedAgent)
{
    CAgent::AddAgent("CCatalog::PreGenerateXML(\"yandex\");", "catalog", "N", 24*60*60, "", "Y");
}
?>


CAgent::RemoveModuleAgents

CAgent::RemoveModuleAgents(
 string module
)

Удаляет все функции-агенты указанного модуля из таблицы зарегистрированных агентов.

Параметры функции

Параметр | Описание
module | Идентификатор модуля.

См. также

  • Агенты
  • CAgent::RemoveAgent
  • CAgent::Delete

Примеры использования

<?
CAgent::RemoveModuleAgents("statistic");
?>


CApplicationException

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CApplicationException

CApplicationException - класс для работы с исключениями.

Методы класса

Метод | Описание
CApplicationException | Инициализирует исключение (конструктор)
GetString | Возвращает текст исключения.

См. также

  • CMain::ThrowException


Конструктор 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);
?>


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();
?>


CBitrixComponent

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CBitrixComponent

Класс CBitrixComponent является оболочкой компонента. Для каждого подключаемого компонента создаётся свой экземпляр класса CBitrixComponent, который живет до конца подключения компонента. Внутри компонента методы этого класса доступны через переменную-псевдоним $this.


AbortResultCache

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::AbortResultCache

void
AbortResultCache();

Метод поддержки внутреннего кэширования компонента.

Применяется, если в результате выборки данных (в случае отсутствия валидного кэша) выяснилось, что кэшировать данные не требуется. Например, если новости с требуемым ID нет, следует прервать кэширование и выдать сообщение, что такой новости нет. Если кэширование не прервать, то злоумышленники смогут увеличить кэш до всего отведенного сайту дискового пространства, вызывая страницу с произвольными (в том числе и не существующими) ID.

Пример

// Проверка и инициализация входных параметров
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"]);

См. также

  • CBitrixComponent::StartResultCache
  • CBitrixComponent::ClearResultCache
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


AddIncludeAreaIcon

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::AddIncludeAreaIcon

void
AddIncludeAreaIcon(
 array arIcon
);

Добавляет новую кнопку к тем кнопкам компонента, которые отображаются в области компонента в режиме редактирования сайта.

Параметры функции

Параметр Описание
arIcon Массив, описывающий кнопку, в формате:
array(
    'URL'   => "javascript:alert('Это новая кнопка');",
    'SRC'   => $this->GetPath().'/images/znak.gif',
    'TITLE' => "Это новая кнопка"
)

Пример

$this->AddIncludeAreaIcon(
    array(
        'URL'   => "javascript:alert('Это новая кнопка для ".$this->GetName()."');",
        'SRC'   => $this->GetPath().'/images/znak.gif',
        'TITLE' => "Это новая кнопка"
    )
);

См. также

  • CBitrixComponent::AddIncludeAreaIcons
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


AddIncludeAreaIcons

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::AddIncludeAreaIcons

void
AddIncludeAreaIcons(
 array arIcons
);

Добавляет массив новых кнопок к тем кнопкам компонента, которые отображаются в области компонента в режиме редактирования сайта. При этом, вызов метода AddIncludeAreaIcons отменяет все предыдущие вызовы методов AddIncludeAreaIcons и AddIncludeAreaIcon.

Параметры функции

Параметр Описание
arIcons Массив, содержащий массивы, которые описывают кнопку. Каждый из массивов, описывающих кнопку, имеет формат:
array(
    'URL'   => "javascript:alert('Это новая кнопка');",
    'SRC'   => $this->GetPath().'/images/znak.gif',
    'TITLE' => "Это новая кнопка"
)

Пример

$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' => "Это ещё одна кнопка"
        ),
    )
);

См. также

  • CBitrixComponent::AddIncludeAreaIcon
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


ClearResultCache

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 1С-Битрикс: Управление сайтом


GetName

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::GetName

string
GetName();

Метод возвращает имя компонента.

Пример

$name = $this->GetName();


GetParent

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::GetParent

object &
GetParent();

Метод возвращает ссылку на объект родительского комплексного компонента.

Пример

$parent = & $this->GetParent();
$parentName = $parent->GetName();


GetPath

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::GetPath

string
GetPath();

Метод возвращает путь к папке компонента относительно корня сайта.

Пример

$path = $this->GetPath();


GetRelativePath

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::GetRelativePath

string
GetRelativePath();

Метод возвращает путь к папке компонента относительно папки /bitrix/components.

Пример

$relativePath = $this->GetRelativePath();


GetTemplate

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::GetTemplate

object &
GetTemplate();

Метод возвращает ссылку на объект шаблона компонента. Шаблон компонента становится известен только после вызова методов IncludeComponentTemplate или InitComponentTemplate. До вызова указанных методов возвращается ссылка на значение null.

Пример

$template = & $this->GetTemplate();
$tamplateFile = $template->GetFile();


GetTemplateCachedData

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::GetTemplateCachedData

mixed
GetTemplateCachedData();

Метод GetTemplateCachedData вызывают, если не используется встроенное в компонент кэширование и при этом вызов IncludeComponentTemplate кэшируется. Этот метод возвращает данные, которые необходимо сохранить в кэше, а потом восстановить из кэша и вернуть шаблону методом 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 CPageCache;
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);
}

См. также

  • Кэширование в компоненте
  • CBitrixComponent::SetTemplateCachedData
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


GetTemplateName

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::GetTemplateName

string
GetTemplateName();

Метод возвращает имя шаблона компонента в том виде, в котором оно было передано при подключении компонента.

Пример

$name = $this->GetTemplateName();


GetTemplatePage

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::GetTemplatePage

string
GetTemplatePage();

Метод возвращает имя страницы шаблона компонента.

Пример

$name = $this->GetTemplatePage();


IncludeComponentTemplate

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::IncludeComponentTemplate

void
IncludeComponentTemplate([
 string templatePage]
);

Метод инициализирует и подключает шаблон компонента. Если инициализация шаблона прошла неудачно, он выводит ошибку на экран.

Параметры функции

Параметр | Описание
templatePage | Имя страницы шаблона компонента. Устанавливается для комплексных компонентов. Для обычных компонентов должно быть равно пустой строке или не установлено.

Пример

$this->IncludeComponentTemplate();

См. также

  • CBitrixComponent::InitComponentTemplate
  • CBitrixComponent::ShowComponentTemplate
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


InitComponentTemplate

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::InitComponentTemplate

bool
InitComponentTemplate([
 string templatePage]
);

Метод инициализирует шаблон компонента. После вызова этого метода можно получить объект шаблона с помощью метода CBitrixComponent::GetTemplate. Шаблон компонента в этом случае подключается методом CBitrixComponent::ShowComponentTemplate.

Если объект шаблона коду компонента не нужен, воспользуйтесь одним методом CBitrixComponent::IncludeComponentTemplate, который сразу и инициализирует и подключает шаблон.

Параметры функции

Параметр | Описание
templatePage | Имя страницы шаблона компонента. Устанавливается для комплексных компонентов. Для обычных компонентов должно быть равно пустой строке или не установлено.

Возвращаемое значение

Возвращает True в случае успешной инициализации, иначе - False.

Пример

if ($this->InitComponentTemplate($templatePage))
{
    $template = & $this->GetTemplate();
    $folderPath = $template->GetFolder();
    if (strlen($folderPath) > 0)
    {
        * * *
    }
    $this->ShowComponentTemplate();
}

См. также

  • CBitrixComponent::ShowComponentTemplate
  • CBitrixComponent::GetTemplate
  • CBitrixComponent::IncludeComponentTemplate
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


SetTemplateCachedData

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::SetTemplateCachedData

void
SetTemplateCachedData(
 mixed templateCachedData
);

Метод SetTemplateCachedData вызывают, если не используется встроенное в компонент кэширование, и при этом вызов CBitrixComponent::IncludeComponentTemplate кэшируется. Этот метод возвращает шаблону данные, которые необходимо было сохранить в кэше.

Пример

// Проверка и инициализация входных параметров
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 CPageCache;
if ($cache->StartDataCache($arParams["CACHE_TIME"], $CACHE_ID, "/".SITE_ID.$this->GetRelativePath()))
{
    // Запрос данных и формирование массива $arResult
    $arResult = array("a" => 1, "b" => 2);

    // Подключение шаблона компонента
    $this->IncludeComponentTemplate();

    $templateCachedData = $this->SetTemplateCachedData();

    $cache->EndDataCache(
        array(
            "arResult" => $arResult,
            "templateCachedData" => $templateCachedData
        )
    );
}
else
{
    extract($cache->GetVars());
    $this->SetTemplateCachedData($templateCachedData);
}

См. также

  • Кэширование в компоненте
  • CBitrixComponent::GetTemplateCachedData
    •


ShowComponentTemplate

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponent::ShowComponentTemplate

void
ShowComponentTemplate();

Метод подключает шаблон компонента. Перед вызовом этого метода шаблон должен быть инициализирован методом CBitrixComponent::InitComponentTemplate.

Если объект шаблона коду компонента не нужен, используйте CBitrixComponent::IncludeComponentTemplate, который сразу и инициализирует и подключает шаблон.

Пример

if ($this->InitComponentTemplate($templatePage))
{
    $template = & $this->GetTemplate();
    $folderPath = $template->GetFolder();
    if (strlen($folderPath) > 0)
    {
        * * *
    }
    $this->ShowComponentTemplate();
}

См. также

  • CBitrixComponent::GetTemplate
    •


StartResultCache

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 в противном случае.

Пример

// Проверка и инициализация входных параметров
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
}

См. также

  • CBitrixComponent::AbortResultCache
  • CBitrixComponent::ClearResultCache
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


CBitrixComponentTemplate

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CBitrixComponentTemplate

Класс CBitrixComponentTemplate является оболочкой шаблона компонента. Для каждого подключаемого шаблона компонента создаётся свой экземпляр класса CBitrixComponentTemplate, который живет от момента инициализации шаблона в коде компонента до конца подключения компонента.

Для получения доступа к методам этого класса внутри компонента (после инициализации шаблона) нужно получить объект шаблона с помощью метода компонента CBitrixComponent::GetTemplate:

$template = & $this->GetTemplate();
$templateFile = $template->GetFile();


GetFile

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponentTemplate::GetFile

string
GetFile();

Метод возвращает путь к файлу шаблона относительно корня сайта.

Пример

// В коде компонента
$template = & $this->GetTemplate();
$templateFile = $template->GetFile();


GetFolder

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponentTemplate::GetFolder

string
GetFolder();

Метод возвращает путь к папке шаблона относительно корня сайта, если шаблон лежит в папке. Если шаблон представляет собой самостоятельный файл, то метод возвращает пустую строку.

Пример

// В коде компонента
$template = & $this->GetTemplate();
$templateFolder = $template->GetFolder();


GetName

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponentTemplate::GetName

string
GetName();

Метод возвращает имя шаблона компонента.

Пример

// В коде компонента
$template = & $this->GetTemplate();
$templateName = $template->GetName();


GetSiteTemplate

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBitrixComponentTemplate::GetSiteTemplate

string
GetSiteTemplate();

Метод возвращает шаблон сайта, в котором лежит шаблон компонента. Если это системный шаблон компонента (т.е. лежит в папке компонента), то возвращается пустая строка.

Пример

// В коде компонента
$template = & $this->GetTemplate();
$siteTemplate = $template->GetSiteTemplate();


CComponentEngine

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CComponentEngine

Класс CComponentEngine инкапсулирует вспомогательные методы, полезные при разработке компонентов.


InitComponentVariables

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Переменная, в которой возвращаются восстановленные переменные.

Пример

// Для ЧПУ режима

// В этой переменной будем накапливать значения истинных переменных
$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";

$this->IncludeComponentTemplate(
    array(
        "FOLDER" => $arParams["SEF_FOLDER"],
        "URL_TEMPLATES" => $arUrlTemplates,
        "VARIABLES" => $arVariables,
        "ALIASES" => $arVariableAliases
    ),
    $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
);

См. также

  • Структура комплексного компонента
  • Псевдонимы входящих переменных
  • CComponentEngine::MakeComponentVariableAliases
  • CComponentEngine::MakeComponentUrlTemplates
    •


MakeComponentUrlTemplates

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CComponentEngine::MakeComponentUrlTemplates

array
MakeComponentUrlTemplates(
 array arDefaultUrlTemplates,
 array arCustomUrlTemplates
);

Метод служит для поддержки ЧПУ режима в комплексных компонентах. Метод принимает на входе шаблоны путей по умолчанию и шаблоны путей, переданные во входных параметрах компонента и заменяет те шаблоны путей по умолчанию, которые были переопределены во входных параметрах компонента.

Параметры функции

Параметр | Описание
arDefaultUrlTemplates | Массив шаблонов путей по умолчанию.
arCustomUrlTemplates | Массив шаблонов путей, переданных во входных параметрах компонента.

Возвращаемое значение

Массив шаблонов путей.

Пример

// если массив шаблонов путей по умолчанию имеет вид
$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"
)

См. также

  • Структура комплексного компонента
  • CComponentEngine::ParseComponentPath
    •


MakeComponentVariableAliases

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CComponentEngine::MakeComponentVariableAliases

array
MakeComponentVariableAliases(
 array arDefaultVariableAliases ,
 array arCustomVariableAliases
);

Метод принимает псевдонимы переменных по умолчанию и псевдонимы переменных, переданные во входных параметрах компонента и заменяет те псевдонимы переменных по умолчанию, которые были переопределены во входных параметрах компонента.

Параметры функции

Параметр | Описание
arDefaultVariableAliases | Массив псевдонимов переменных по умолчанию.
arCustomUrlTemplates | Массив псевдонимов переменных, переданных во входных параметрах компонента.

Возвращаемое значение

Массив псевдонимов переменных.

Пример

// если псевдонимов переменных по умолчанию имеет вид
$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",
    )
)

См. также

  • Структура комплексного компонента
  • Псевдонимы входящих переменных
  • CComponentEngine::InitComponentVariables
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


MakePathFromTemplate

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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" и т.д.

Возвращаемое значение

Итоговая строка, получившаяся после замен из шаблона.

Пример

// Пусть во входных параметрах компонента - шаблон пути
$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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CComponentEngine::ParseComponentPath

bool
ParseComponentPath(
 string folder404 ,
 array arUrlTemplates ,
 array & arVariables [,
 string requestURL]
);

Метод служит для поддержки ЧПУ режима в комплексных компонентах.

Метод выясняет код шаблона пути комплексного компонента на основании папки, в которой работает компонент, массива шаблонов путей и текущей запрошенной страницы. Кроме того, этот метод восстанавливает те переменные, которые были заданы с помощью пути.

Параметры функции

Параметр | Описание
folder404 | Путь, в котором работает комплексный компонент в режиме ЧПУ. Этот путь передается во входном параметре $arParams["SEF_FOLDER"].
arUrlTemplates | Массив шаблонов путей комплексного компонента для режима ЧПУ. Этот массив задается в коде комплексного компонента и может полностью или частично переопределиться с помощью входного параметра $arParams["SEF_URL_TEMPLATES"].
arVariables | Переменная, в которой возвращаются восстановленные из запрощенного пути переменные (на основании найденного шаблона пути).
requestURL | Запрошенный путь. По умолчанию равен $APPLICATION->GetCurPage().

Возвращаемое значение

Если шаблон был найден, то возвращается его код, иначе возвращается пустая строка.

Пример

// если массив шаблонов путей имеет вид
$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
)

См. также

  • Структура комплексного компонента
  • Псевдонимы входящих переменных
  • CComponentEngine::MakeComponentUrlTemplates
    •


CDatabase

CDatabase - класс для работы с базой данной.

При запуске каждой страницы автоматически создаётся глобальный объект $DB класса CDatabase. Именно при помощи этого объекта и следует проводить все действия с базой данных.

Методы класса

Метод | Описание
ForSql | Преобразует строки для вставки в SQL запрос.
Query | Выполняет запрос.
QueryBind | Выполняет SQL-запросы типа "UPDATE", "INSERT", в которых есть необходимость связывания переменных (как правило для полей типа BLOB, CLOB, LONG и т.п.).
QueryBindSelect | Выполняет SQL-запрос типа "SELECT", в котором есть необходимость связывания переменных.
Update | Универсальный update в базу данных (без подготовки значений полей).
NextID | Возвращает очередное значения сиквенса.
Insert | Универсальный insert в базу данных (без подготовки значений полей).
LastID | Получает ID последней вставленной записи.
PrepareFields | Инициализирует глобальные переменные для вставки в SQL запрос.
PrepareInsert | Универсальный insert в базу данных (c подготовкой значений полей).
PrepareUpdate | Универсальный update в базу данных (c подготовкой значений полей).
InitTableVarsForEdit | Инициализирует глобальные переменные для показа.
ParseSqlBatch | Разбирает пакет запросов на массив.
RunSqlBatch | Выполняет файл с пакетом запросов.
StartTransaction | Открывает транзакцию.
Commit | Записывает транзакцию.
Rollback | Откатывает транзакцию.
Connect | Соединяет с базой данных.
Disconnect | Закрывает соединение с базой данных.

Функции для работы с датой и временем

Метод | Описание
CurrentDateFunction | Возвращает функцию текущей даты.
CurrentTimeFunction | Возвращает функцию текущей даты-время.
CharToDateFunction | Строка для вставки значения даты в запрос к базе данных.
DateToCharFunction | Строка для получения значения даты в запросе к базе данных.
DateFormatToPHP | Конвертирует формат даты заданный для языка (сайта) в формат принятый в PHP (в функции date).
FormatDate | Форматирует дату из одного формата в другой.
CompareDates | Сравнивает две даты между собой.
IsDate | Проверяет дату на правильность.

См. также

  • Работа с датой и временем
  • Функции для работы с датой и временем


CDatabase::CharToDateFunction

string
CDatabase::CharToDateFunction(
 string value,
 string type = "FULL",
 string site = false
 )

Возвращает для MySQL значение сконвертированное в формат YYYY-MM-DD [HH:MI:SS], для Oracle - функция вернет строку TO_DATE с нужными параметрами.
Форматы даты устанавливается в настройках языка, либо настройках сайта.

Параметры функции

Параметр | Описание
value | Если функция вызывается в публичной части сайта, то это - значение даты для формата текущего сайта. Если функция вызывается в административной части, то это - значение даты для формата текущего языка.
type | Тип формата даты: "FULL" - для даты со временем, "SHORT" - для даты (без времени) Необязательный. По умолчанию "FULL".
site | Код сайта для публичной части, либо код языка для административной части. Необязательный. По умолчанию текущий.

См. также

  • 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__);
?>


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)
        {
            <b>$DB->Commit</b>();
            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();
    }
}?>


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($date2, $date1);

if ($result==1) echo $date1." > ".$date2;
elseif ($result==-1) echo $date1." < ".$date2;
elseif ($result==0) echo $date1." = ".$date2;
?>


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();
}
?>


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__);
?>


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__);
?>


CDatabase::DateFormatToPHP

string
CDatabase::DateFormatToPHP(
 string date_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)

Параметры функции

Параметр | Описание
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);
?>


CDatabase::DateToCharFunction

string
CDatabase::DateToCharFunction(
 string value,
 string type = "FULL",
 string site = false
 )

Возвращает для MySQL строку DATE_FORMAT, для Oracle - TO_CHAR с нужными параметрами.
Форматы даты устанавливается в настройках языка или сайта.

Параметры функции

Параметр | Описание
value | Значение даты для формата текущего сайта.
type | Тип формата даты: "FULL" - для даты со временем, "SHORT" - для даты (без времени) Необязательный. По умолчанию "FULL".
site | Код сайта для публичной части, либо код языка для административной части. Необязательный. По умолчанию текущий.

См. также

  • CDatabase::CharToDateFunction
  • Функции для работы с датой и временем

Примеры использования

<?
$strSql = "
    SELECT
        ID,
        ".$DB->DateToCharFunction("DATE_CREATE")."    DATE_CREATE
    FROM
        my_table
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>


CDatabase::Disconnect

CDatabase::Disconnect()

Закрывает соединение с базой данных.

Параметры функции

Без параметров.

См. также

  • CDatabase::Connect

Примеры использования

<?
$DB->Disconnect();
?>


CDatabase::FormatDate

string
CDatabase::FormatDate(
 string date,
 string from_format = "DD.MM.YYYY HH:MI:SS",
 string to_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 | Дата для конвертации.
from_format | Текущий формат даты. Необязательный. По умолчанию - "DD.MM.YYYY HH:MI:SS".
to_format | В какой формат необходимо преобразовать. Необязательный. По умолчанию - "DD.MM.YYYY HH:MI:SS".

См. также

  • CDatabase::DateFormatToPHP
  • CSite::GetDateFormat
  • ConvertDateTime
  • Функции для работы с датой и временем

Примеры использования

<?
// зададим дату
$date = "31.12.2008";

// укажем формат этой даты
$format = "DD.MM.YYYY";

// получим формат текущего сайта
$new_format = CSite::GetDateFormat("SHORT"); // YYYY-MM-DD

// переведем дату из одного формата в другой
$new_date = $DB->FormatDate($date, $format, $new_format);

// в результате получим дату в новом формате
echo $new_date; // 2008-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; // 2008-12-31
?>


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__);
?>


CDatabase::InitTableVarsForEdit

CDatabase::InitTableVarsForEdit(
 string table,
 string prefix_from = "str_",
 string prefix_to = "str_",
 string postfix_from = "",
 bool init_anyway = false
 )

Создает глобальные переменные с именами ${prefix_to.имя_поля} и присваивает им значения переменных с именами ${prefix_from.имя_поля.postfix_from} переводя при этом в HTML-безопасный вид. Под "имя_поля" подразумеваются имена полей таблицы table.

Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов.

Параметры функции

Параметр | Описание
table | Название таблицы.
prefix_from | Префикс для переменных ИЗ которых будет производиться преобразование. Необязательный. По умолчанию "str_".
prefix_to | Префикс для переменных В которые будет производиться преобразование. Необязательный. По умолчанию "str_".
postfix_from | Суффикс (постфикс) для переменных ИЗ которых будет производиться преобразование. Необязательный. По умолчанию "".
init_anyway | Значение "true" - инициализировать переменные всегда, т.е. не зависимо были ли они изначально. Необязательный. По умолчанию - "false".

См. также

  • 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_");
?>


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 в случае ошибки.

Примечание: все значения полей должны быть подготовлены для 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 запроса, она будет проигнорирована и работа скрипта продолжена.

См. также

  • 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();
    }
}
?>


CDatabase::IsDate

bool
CDatabase::IsDate(
 string date,
 string format=false,
 string site=false,
 string type="SHORT"
 )

Проверяет дату на корректность и возвращает "true" если дата корректна, в противном случае - "false".

Параметры функции

Параметр | Описание
date | Строка с проверяемой датой.
format | Формат даты. Необязательный. По умолчанию - "false" - определять формат по текущему сайту, либо языку (если административная часть).
site | Код сайта для публичной части, либо код языка для административной части (для определения формата, если format равен false). Необязательный. По умолчанию - текущий сайт, либо текущий язык (если административная часть).
type | Тип формата даты: "FULL" - для даты со временем, "SHORT" - для даты (без времени) Необязательный. По умолчанию "SHORT".

См. также

  • Функции для работы с датой и временем
  • CheckFilterDates

Примеры использования

<?
if (!$DB->IsDate("12.10.2005 22:34:15", "DD.MM.YYYY HH:MI:SS"))
  echo "Ошибка. Неверный формат даты.";
?>


CDatabase::LastID

int
CDatabase::LastID()

Функция возвращает ID последней вставленной записи.

Только для MySQL версии!

Параметры функции

Без параметров.

См. также

  • 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());
}
?>


CDatabase::NextID

int
CDatabase::NextID(
 string sequence_name
)

Только для Oracle версии!

Функция возвращает следующее значение из 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;
}
?>


CDatabase::ParseSqlBatch

array
CDatabase::ParseSqlBatch(
 string sql
)

Функция разбирает строку из пакета запросов на массив запросов и возвращает этот массив.

Параметры функции

Параметр | Описание
sql | Строка с пакетом запросов, разделенных символом ";" для MySQL версии и символом "/" для Oracle версии.

См. также

  • 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;
}
?>


CDatabase::PrepareFields

CDatabase::PrepareFields(
 string table,
 string prefix = "str_",
 string postfix = ""
)

Функция подготавливает глобальные переменные, соответствующие именам полей таблицы table для записи в БД.

Создает глобальные переменные ${prefix.имя_поля.postfix} и устанавливает их значениями глобальных переменных, соответствующих именам полей из таблицы table, предварительно преобразовав их в зависимости от типа поля.

Например, для поля типа int будет выполнено:

${prefix.имя_поля.postfix} = intval(${имя_поля});
Для поля типа varchar:

${prefix.имя_поля.postfix} = CDatabase::ForSql(${имя_поля}, размер_поля);

Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов.

Параметры функции

Параметр | Описание
table | Имя таблицы.
prefix | Префикс переменных. Необязательный. По умолчанию "str_".
postfix | Постфикс переменных. Необязательный. По умолчанию пустая строка.

См. также

  • 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);
        }
    }
}
?>


CDatabase::PrepareInsert

array
CDatabase::PrepareInsert(
 string table,
 array fields,
 string dir = "",
 string site = false
)

Функция подготавливает массив из двух строк для SQL запроса вставки записи в базу данных. Возвращает массив из двух элементов, где элемент с ключом 0 строка список полей вида "имя поля1, имя поля2[, ...]", а элемент с ключом 1 строка значений вида "значение1, значение2[, ...]". При этом функция сама преобразует все значение в SQL вид в зависимости от типа поля и обрабатывает загрузку файлов, возвращая ID из таблицы файлов.

Параметры функции

Параметр | Описание
table | Имя таблицы для вставки записи.
fields Массив значений полей в формате "имя поля1"=>"значение1", "имя поля2"=>"значение2" [, ...].
Если необходимо вставить значение NULL, то значение должно быть равно false. При вставке файла, привязанного к записи, "значение" должно быть представлено в виде массива
Array(
"name" => "название файла",
"size" => "размер",
"tmp_name" => "временный путь на сервере",
"type" => "тип загружаемого файла",
"del" => "флажок - удалить ли существующий файл (Y|N)",
"MODULE_ID" => "название модуля");

Массив такого вида может быть получен, например, объединением массивов $HTTP_POST_FILES[имя поля] и Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля");
dir Имя папки (будет находится внутри папки upload) для хранения файлов. Используется для вставки файлов, привязанных к записи.
Необязательный. По умолчанию пустая строка.
site Код сайта для публичной части, либо код языка для административной части. Используется для определения формата даты, для вставки полей типа date или datetime.
Необязательный. По умолчанию текущий.

См. также

  • 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());
}
?>


CDatabase::PrepareUpdate

array
CDatabase::PrepareUpdate(
 string table,
 array fields,
 string dir="",
 string site=false
)

Функция подготавливает строку для SQL запроса изменения записи в базе данных. Возвращает строку вида "имя поля1 = значение1", имя поля2 = значение2[, ...]". При этом функция сама преобразует все значение в SQL вид в зависимости от типа поля и обрабатывает загрузку файлов, возвращая ID из таблицы файлов.

Параметры функции

Параметр | Описание
table | Имя таблицы.
fields Массив значений полей в формате "имя поля1"=>"значение1", "имя поля2"=>"значение2" [, ...].
Если необходимо изменить значение на NULL, то значение в массиве должно быть равно false. При вставке файла, привязанного к записи, "значение" должно быть представленно в виде массива
Array(
"name" => "название файла",
"size" => "размер",
"tmp_name" => "временный путь на сервере",
"type" => "тип загружаемого файла",
"del" => "флажок - удалить ли существующий файл (Y|N)",
"MODULE_ID" => "название модуля");

Массив такого вида может быть получен, например, объединением массивов $HTTP_POST_FILES[имя поля] и Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля");
Если какого-либо поля нет в массиве, то его значение в таблице останется прежним.
dir Имя папки (будет находится внутри папки upload) для хранения файлов. Используется для вставки файлов, привязанных к записи.
Необязательный. По умолчанию пустая строка.
site Код сайта для публичной части, либо код языка для административной части. Используется для определения формата даты, для вставки полей типа date или datetime.
Необязательный. По умолчанию текущий.

См. также

  • 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__);
}
?>


CDatabase::Query

mixed
CDatabase::Query(
 string sql,
 bool ignore_errors=false,
 string error_position=""
)

Функция выполняет запрос к базе данных и если не произошло ошибки возвращает результат. В случае успешного выполнения функция возвращает объект класса 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.

Параметры функции

Параметр | Описание
sql | SQL запрос.
ignore_errors | Игнорировать ошибки. Если true, то в случае ошибки функция возвращает "false". Если параметр ignore_errors равен "false", то в случае ошибки функция прекращает выполнение всей страницы. Необязательный. По умолчанию - "false".
error_position | Строка идентифицирующая позицию в коде, откуда была вызвана данная функция CDatabase::Query. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос.

См. также

  • 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;
}
?>


CDatabase::QueryBind

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

Только для Oracle версии!

Параметры функции

Параметр | Описание
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");
?>


CDatabase::QueryBindSelect

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

Только для Oracle версии!

Параметры функции

Параметр | Описание
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__);
?>


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();
    }
}
?>


CDatabase::RunSqlBatch

mixed
CDatabase::RunSqlBatch(
 string path
)

Функция выполняет пакет запросов из файла path. Возвращает "false", если все запросы выполнились, или массив ошибок для запросов которые привели к ошибке.

Параметры функции

Параметр | Описание
path | Файл с пакетом запросов. Для MySQL версии запросы разделяются символом ";", для Oracle версии разделитель "/".

См. также

  • 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)
/


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();
    }
}
?>


CDatabase::Update

int
CDatabase::Update(
 string table,
 array fields,
 string where = "",
 string error_position = "",
 bool debug = false,
 bool ignore_errors = false
 )

Функция изменяет записи в таблицы 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 запроса, она будет проигнорирована и работа скрипта продолжена.

См. также

  • 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();
    }
}
?>


CDiskQuota

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CDiskQuota

CDiskQuota - класс для работы с дисковыми квотами.

Фильтр

С помощью данной формы можно найти ... в соответствии с указанными условиями.

Метод | Описание
checkDiskQuota | Проверяет свободное место на диске для заданных данных.
reCount | Производит пересчет счетчика.
updateDiskQuota | Изменяет значение счетчика.


checkDiskQuota

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CDiskQuota::checkDiskQuota

boolean
CDiskQuota::checkdiskquota(
 mixed size
);

Проверяет свободное место на диске для данных размером size.

Параметры функции

Параметр | Описание
size | Может быть массивом с полями "FILE_SIZE" или "SIZE", где size["SIZE"] - размер в байтах, числом, строкой.

Возвращаемое значение

Если есть свободное место на диске для данных размером size - true, иначе - false.


reCount

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CDiskQuota::reCount

CDiskQuota::reCount(
 string ID [,
 boolean recount]
);

Производит пересчёт счётчика ID.

Параметры функции

Параметр | Описание
ID | Идентификатор счётчика.
recount | Если значение - true, то будет запущен механизм пересчёта сначала, а не с последнего шага.

Возвращаемое значение

При завершённом пересчёте вернётся массив, содержащий информацию о стадии пересчёта, последний файл в шаге, суммарный размер файлов за шаг, временная метка финала последнего шага.


updateDiskQuota

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CDiskQuota::updateDiskQuota

CDiskQuota::updateDiskQuota(
 string ID,
 int size,
 string action
);

Изменяет счетчик ID на величину size в зависимости от указанного action.

Параметры функции

Параметр | Описание
ID | Идентификатор счетчика.
size | Размер в байтах.
action | Направление счета.

Возвращаемое значение

При успешном выполнении, возвращает true, иначе - false.


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 | Возвращает массив значений полей.
NavPrint | Выводит ссылки для постраничной навигации.
NavStart | Разбивает результат выборки на страницы.
NavStringForCache | Возвращает уникальную строку идентифицирующую состояние постраничной навигации (номер текущей страницы, нажата ли ссылка "Все").
IsNavPrint | Определяет, все ли записи умещаются в одну страницу при постраничной навигации.
GetNext | Возвращает массив значений полей приведенный в HTML-безопасный вид.
ExtractFields | Создает глобальные переменные с именами соответствующими именам полей.
FieldName | Возвращает название поля по его номеру.
FieldsCount | Возвращает количество полей результата выборки.
SelectedRowsCount | Возвращает количество записей, которые вернул SELECT.
AffectedRowsCount | Возвращает количество записей, измененных операцией INSERT, UPDATE или DELETE.
InitFromArray | Инициализирует объект класса CDBResult значениями из массива.


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__);
}
?>


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>


CDBResult::Fetch

mixed
CDBResult::Fetch()

Делает выборку значений полей в массив. Возвращает массив вида Array("поле"=>"значение" [, ...]) и передвигает курсор на следующую запись. Если достигнута последняя запись (или в результате нет ни одной записи) - функция вернет "false".

Параметры функции

Без параметров.

См. также

  • CDBResult::GetNext
  • CDBResult::ExtractFields
  • CDBResult::NavNext

Примеры использования

<?
$rsUser = CUser::GetByID($USER_ID);
$arUser = $rsUser->Fetch();
?>


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++;
}
?>


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++;
}
?>


CDBResult::GetNext

mixed
CDBResult::GetNext(
 bool text_html=true,
 bool original=true
 )

Возвращает массив значений полей приведенный в HTML-безопасный вид. Если достигнут конец результата выборки функция вернет false.

Параметры функции

Параметр | Описание
text_html | Если значение данного параметра - "true", то функция будет автоматически обрабатывать поля с выбором формата text/html. Необязательный. По умолчанию - "true".
original | Если значение данного параметра - "true", то помимо преобразованных в HTML-безопасный вид полей, в результирующий массив будут включены также оригинальные (исходные) значения этих полей (ключи массива с оригинальными значениями этих полей будут иметь суффикс "~"). Необязательный. По умолчанию - "true".

См. также

  • 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>


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(50);
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;
?>


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>";
}
?>


CDBResult::NavNext

mixed
CDBResult::NavNext(
 bool init_globals = true,
 string prefix = "str_",
 bool safe_for_html = true
 )

Возвращает массив значений полей. Если установлен флаг init_globals, то объявляет глобальные переменные с именами prefix.имя_поля. Если достигнут конец результата выборки, то функция вернет "false".

Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов.

Параметры функции

Параметр | Описание
init_globals | Если "true", то функция будет объявлять глобальные переменные соответствующие именам полей выборки. Необязательный. По умолчанию - "true".
prefix | Префикс глобальных переменных (только если init_globals установлен). Необязательный. По умолчанию - "str_".
safe_for_html | Приводить глобальные переменные в HTML-безопасный вид (только если init_globals установлен). Необязательный. По умолчанию - "true".

См. также

  • 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("Баннеры");
?>


CDBResult::NavPrint

CDBResult::NavPrint(
 string title,
 bool show_always=false,
 string text_css_class="text",
 string template_path=false
)

Функция выводит ссылки для постраничной навигации. Перед использованием данной функции необходимо вызвать метод NavStart.

По умолчанию в сессии запоминается последняя открытая страница постраничной навигации. Если вы хотите изменить такое поведение для данной текущей страницы, то до вызова функции необходимо воспользоваться следующим кодом:

CPageOption::SetOptionString("main", "nav_page_in_session", "N");

Параметры функции

Параметр | Описание
title | Названия выводимых элементов.
show_always | Если "false", то функция не будет выводить навигационные ссылки если все записи умещаются на одну страницу. Если "true", то ссылки для постраничной навигации будут выводиться всегда. Необязательный. По умолчанию - "false".
text_css_class | CSS класс шрифта для вывода навигационных ссылок. Необязательный. По умолчанию "text".
template_path | Путь к шаблону показа навигационных ссылок. Если "false", то используется шаблон по умолчанию.

См. также

  • 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>');
?>


CDBResult::NavStart

CDBResult::NavStart(
 int page_size=10,
 bool show_all=true,
 int page_number=false
)

Функция разбивает результат выборки на страницы.

Для встраивания системы автоматической постраничной навигации необходимо сначала вызвать данную функцию CDBResult::NavStart. После ее вызова, методы

  • CDBResult::Fetch
  • CDBResult::GetNext
  • CDBResult::ExtractFields
  • CDBResult::NavNext
будут ограничены только текущей страницей (а не всей выборкой). Для вывода ссылок постраничной навигации необходимо воспользоваться функций CDBResult::NavPrint.

Параметры функции

Параметр | Описание
page_size | Размер страницы (от 1 и более). Необязательный. По умолчанию 10.
show_all | Разрешить показывать все записи (и выводить ссылку "Все" в навигации). Необязательный. По умолчанию - "true".
page_number | Принудительно всегда открывать страницу с этим номером (не зависящую от параметров в URL). Необязательный. По умолчанию - "false" (показывать автоматически).

См. также

  • 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("Баннеры");
?>


CDBResult::NavStringForCache

string
CDBResult::NavStringForCache(
 int page_size=10,
 bool show_all=true,
 int page_number=false
)

Возвращает уникальную строку идентифицирующую текущее состояние постраничной навигации (номер текущей страницы, нажата ли ссылка "Все"). Результат данной функции применяется как правило для составления идентификатора кэша, который в свою очередь используется в функциях классов CPageCache и CPHPCache.

Параметры функции

Параметр | Описание
page_size | Размер страницы постраничной навигации (от 1 и более). Необязательный. По умолчанию 10.
show_all | Разрешить ли показывать все записи (и выводить ссылку "Все" в навигации). Необязательный. По умолчанию - "true".
page_number | Принудительно ли открывать страницу с этим номером (в независимости от параметров в 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;
?>


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;
?>


CEvent

CEvent - класс для работы с почтовыми событиями.

Методы класса

Метод | Описание
CheckEvents | Проверяет и отсылает неотправленные события.
Send | Добавляет событие в почтовую систему (регистрирует для отправки)

См. также

  • Почтовая система


CEvent::CheckEvents

CEvent::CheckEvents()

Собирает неотправленные почтовые события и отправляет их в виде E-Mail сообщений. Функция автоматически вызывается при загрузке каждой страницы и не требует ручного вызова.

Параметры функции

Без параметров.

См. также

  • Почтовая система


CEvent::Send

int
CEvent::Send(
 string event_type,
 mixed site,
 array fields,
 string duplicate="Y",
 int template_id=""
)

Функция создает почтовое событие которое будет в дальнейшем отправлено в качестве E-Mail сообщения. Возвращает идентификатор созданного события.

Параметры функции

Параметр | Описание
event_type | Идентификатор типа почтового события.
site | Идентификатор сайта, либо массив идентификаторов сайта.
fields | Массив полей типа почтового события идентификатор которого задается в параметре event_type. Массив имеет следующий формат: array("поле"=>"значение" [, ...]).
duplicate | Отправить ли копию письма на адрес указанный в настройках главного модуля в поле "E-Mail адрес или список адресов через запятую на который будут дублироваться все исходящие сообщения". Необязательный. По умолчанию "Y".
template_id | Идентификатор почтового шаблона по которому будет отправлено письмо. Если данный параметр не задан, либо равен "", то письма будут отправлены по всем шаблонам привязанным к типу почтового события, идентификатор которого задается в параметре event_type, а также привязанных к сайту(ам) идентификатор которого указан в параметре site. Необязательный. По умолчанию - "".

См. также

  • Почтовая система

Примеры использования

<?
$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);
?>


CEventMessage

CEventMessage - класс предназначеный для работы с почтовыми шаблонами.

Поля

Поле | Тип | Описание
ID | Int | ID почтового шаблона.
EVENT_NAME | Varchar(50) | ID почтового события.
LID | Char(2) | ID языка.
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 | Получает список шаблонов по фильтру.
GetByID | Получает данные о шаблоне по его ID
Add | Добавляет новый шаблон.
Update | Изменяет существующий почтовый шаблон.
Delete | Удаляет шаблон.

См. также

  • Почтовая система


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 - тело почтового сообщения

См. также

  • Поля шаблона почтового сообщения
  • CEventMessage::Update

Примеры использования

<?
$arr["ACTIVE"] = "Y";
$arr["EVENT_NAME"] = "ADV_CONTRACT_INFO";
$arr["LID"] = array("ru","en");
$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);
?>


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();
}
?>


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>";
?>


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 - код и заголовок типа события (допустима сложная логика);
  • TYPE_ID - код типа события (допустима сложная логика);
  • TIMESTAMP_1 - левая часть интервала ("c") для поиска по дате изменения;
  • TIMESTAMP_2 - правая часть интервала ("по") для поиска по дате изменения;
  • SITE_ID - идентификатор сайта (допустимо задание массива для поиска по логике "или", либо допустимо использование сложной логики);
  • ACTIVE - флаг активности (Y|N);
  • FROM - поле "От кого" (допустима сложная логика);
  • TO - поле "Кому" (допустима сложная логика);
  • BCC - поле "Скрытая копия" (допустима сложная логика);
  • SUBJECT - по теме сообщения (допустима сложная логика);
  • BODY_TYPE - по типу тела сообщения (text|html);
  • BODY - по телу сообщения (допустима сложная логика);

См. также

  • Поля шаблона почтового сообщения
  • CEventMessage::GetByID
  • Класс CDBResult

Примеры использования

<?
$arFilter = Array(
    "ID"            => "12 | 134",
    "TYPE"          => "контракт & рекл",
    "TYPE_ID"       => "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);
$is_filtered = $rsMess->is_filtered;
?>


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 | Получает список типов по фильтру.
GetByID | Получает данные о типе по его ID
Add | Добавляет новый тип.
Delete | Удаляет тип.

См. также

  • Почтовая система


CEventType::Add

mixed
CEventType::Add(
 array fields
)

Добавляет тип почтового события. Возвращает ID вставленного типа. При возникновении ошибки функция вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Параметры функции

Параметр Описание
fields Массив значений полей вида array("поле"=>"значение" [, ...]). В качестве "полей" допустимо использовать:
  • SITE_ID - идентификатор сайта
  • EVENT_NAME - идентификатор типа почтового события
  • NAME - заголовок типа почтового события
  • DESCRIPTION - описание задающее поля типа почтового события

См. также

  • Поля типа почтового события

Примеры использования

<?
function UET($EVENT_NAME, $NAME, $SITE_ID, $DESCRIPTION)
{
    $et = new CEventType;
    $et->Add(array(
        "SITE_ID"       => $SITE_ID,
        "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# - кем изменен баннер
"
);
?>


CEventType::Delete

CDBResult
CEventType::Delete(
 string type_id
)

Удаляет тип почтового события. Возвращается объект класса CDBResult.

Параметры функции

Параметр | Описание
type_id | Тип почтового события.

См. также

  • Класс CDBResult

Примеры использования

<?
$et = new CEventType;
$et->Delete("ADV_BANNER_STATUS_CHANGE");
?>


CEventType::GetByID

CDBResult
CEventType::GetByID(
 string type_id,
 string site_id
)

Возвращает тип почтового события в виде объекта класса CDBResult.

Параметры функции

Параметр | Описание
type_id | Идентификатор типа почтового события.
site_id | Идентификатор сайта.

См. также

  • Поля типа события
  • CEventType::GetList
  • Класс CDBResult

Примеры использования

<?
$rsET = CEventType::GetByID("ADV_BANNER_STATUS_CHANGE", "ru");
$arET = $rsET->Fetch();
?>


CEventType::GetList

CDBResult
CEventType::GetList(
 array filter
)

Возвращает список типов почтовых событий по фильтру filter в виде объекта класса CDBResult.

Параметры функции

Параметр Описание
filter Массив фильтрации вида array("фильтруемое поле"=>"значение" [, ...]). "Фильтруемое поле" может принимать значения:
  • TYPE_ID - идентификатор типа события;
  • LID - идентификатор языка;

См. также

  • Поля типа события
  • 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>";
}
?>


CFile

Класс для работы с файлами и изображениями.

Поля

Поле | Тип | Описание
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 | Возвращает информацию по одному зарегистрированному файлу.
GetPath | Функция возвращает путь от корня сайта к зарегистрированному файлу.
ShowImage | Возвращает HTML для показа изображения.
Show2Images | Возвращает HTML для показа изображения при клике на которое в отдельном окне отображается другое изображение.
CheckFile | Проверяет размер, расширение и mime тип файла. В случае ошибки функция вернет строку с текстом ошибки.
CheckImageFile | Проверяет что файл является картинкой и проверяет ее параметры. В случае ошибки функция вернет строку с текстом ошибки.
IsImage | Функция проверяет расширение и заданный MIME тип файла. Если расширение и MIME тип файла соответствуют изображению, то возвращает "true", иначе "false".
MakeFileArray | Функция формирует массив описывающий файл. Структура массива аналогична структуре массива $_FILES[имя] (или $HTTP_POST_FILES[имя]). Данный массив может быть использован в функциях CFile::SaveFile, CFile::CheckFile, CFile::CheckImageFile.
InputFile | Возвращает HTML код предназначенный для загрузки нового, либо замены существующего файла.
SaveFile | Сохраняет файл и регистрирует его в таблице файлов.
UpdateDesc | Обновляет описание к зарегистрированному файлу.
CopyFile | Копирует зарегистрированный файл.
Delete | Удаляет файл из таблицы зарегистрированных файлов и с диска.


CFile::CheckFile

string
CFile::CheckFile(
 array file,
 int max_size = 0,
 string mime_types = false,
 string extensions = 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" - без ограничений.
extensions Перечисленные через запятую разрешенные расширения файла.
Необязательный. По умолчанию - "false" - без ограничений.

См. также

  • 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>";
?>


CFile::CheckImageFile

string
CFile::CheckImageFile(
 array file,
 int max_size = 0,
 int max_width = 0,
 int max_height = 0
 array possible_typies = array()
)

Функция проверяет что файл является картинкой и проверяет ее параметры. В случае ошибки функция вернет строку с текстом ошибки.

Параметры функции

Параметр Описание
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" - без ограничений.
possible_typies Массив символьных идентификаторов типов файлов; допустимые следующие идентификаторы:
  • IMAGE - изображение;
  • FLASH - flash файл.
Параметр необязательный. По умолчанию - пустой массив (допустимы только файлы типа IMAGE).

См. также

  • 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>";
?>


CFile::CopyFile

int
CFile::CopyFile(
 int file_id
)

Функция копирует зарегистрированный файл и возвращает ID нового файла копии.

Параметры функции

Параметр | Описание
file_id | Цифровой идентификатор файла предназначенного для копирования.

См. также

  • 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;
?>


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"]);
}
?>


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;
?>


CFile::GetPath

string
CFile::GetPath(
 int file_id
)

Функция возвращает путь от корня к зарегистрированному файлу.

Параметры функции

Параметр | Описание
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::InputFile

string
CFile::InputFile(
 string input_file_name,
 int input_file_width,
 int file_id,
 string file_path = false,
 int file_max_size = 0,
 string file_type = "IMAGE",
 string add_to_input_file = "class=typefile",
 int input_description_width = 0,
 string add_to_input_description = "class=typeinput",
 string add_to_checkbox_delete = "",
 bool show_file_info = true,
)

Функция возвращает HTML код предназначенный для загрузки нового, либо замены существующего файла.

Параметры функции

Параметр | Описание
input_file_name | Название поля для ввода файла: <input type="file" name="input_file_name" ... >
input_file_width | Ширина поля для ввода файла: <input type="file" size="input_file_width" ... >
file_id | Цифровой идентификатор существующего файла.
file_path | Путь к папке от корня сайта в которой хранятся файлы. Например: "/upload/iblock/". Необязательный. По умолочанию false - путь берется из настроек системы.
file_max_size | Максимальный размер файла (байт): <input type="hidden" name="MAX_FILE_SIZE" value="file_max_size"> Необязательный. По умолчанию "0" - без ограничений.
file_type | Тип файла, если "IMAGE", то в информацию по файлу будет добавлена ширина и высота изображения. Необязательный. По умолчанию "IMAGE".
add_to_input_file | Произвольный HTML который будет добавлен в поле для ввода файла: <input type="file" add_to_input_file ... > Необязательный. По умолчанию "class=typefile" - стандартный класс для полей ввода файлов в административной части.
input_description_width | Ширина поля ввода для комментария к файлу: <input type="text" size="input_description_width" ... > Необязательный. По умолчанию "0" - поле ввода для комментария к файлу не показывать.
add_to_input_description | Произвольный HTML который будет добавлен в поле ввода для комментария к файлу: <input type="text" add_to_input_description ... > Необязательный. По умолчанию "class=typeinput" - стандартный класс для однострочных элементов ввода в административной части.
add_to_checkbox_delete | Произвольный HTML который будет добавлен в поле типа "checkbox" для удаления файла: <input type="checkbox" name="input_file_name_del" value="Y" add_to_checkbox_delete ... > Необязательный.
show_file_info | Флаг позволяющий включить, либо отключить показ информации по файлу (размер, ширину, высоту). Необязательный. По умолчанию - "true" - информацию по файлу показать.

См. также

  • 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>


CFile::IsImage

string
CFile::IsImage(
 string file_name,
 mixed mime_type = false
)

Функция проверяет расширение и заданный MIME тип файла. Если расширение и MIME тип файла соответствуют изображению, то возвращает "true", иначе "false".

Параметры функции

Параметр | Описание
file_name | Краткое имя файла (без пути).
mime_type | MIME тип файла (например, "image/"). Необязательный. По умолчанию - "false" - проверку на MIME тип не делать.

См. также

  • 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;
?>


CFile::MakeFileArray

array
CFile::MakeFileArray(
 mixed file,
 mixed mime_type = false
)

Функция формирует массив описывающий файл. Структура массива аналогична структуре массива $_FILES[имя] (или $HTTP_POST_FILES[имя]). Данный массив может быть использован в функциях SaveFile, CheckFile, CheckImageFile. Структура возвращаемого массива:

Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла")

Параметры функции

Параметр Описание
file одно из значений:
  • ID файла
  • абсолютный путь к файлу
  • URL к файлу лежащем на другом сайте.
mime_type MIME тип файла (например, "image/gif").
Необязательный. По умолчанию - "false" - MIME тип файла будет определён автоматически.

См. также

  • 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");
?>


CFile::SaveFile

mixed
CFile::SaveFile(
 array file,
 string save_path
)

Функция сохраняет файл и регистрирует его в таблице файлов (b_file).

Параметры функции

Параметр | Описание
file Массив с данными файла формата:

Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла",
    "old_file" => "ID старого файла",
    "del" => "флажок - удалить ли существующий файл (Y|N)",
    "MODULE_ID" => "название модуля");
Массив такого вида может быть получен, например, объединением массивов $_FILES[имя поля] и Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля");
save_path | Путь к папке в которой хранятся файлы (относительно папки /upload).

См. также

  • 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__);
    }
}
?>


CFile::Show2Images

string
CFile::Show2Images(
 mixed image1,
 mixed image2,
 int max_width = 0,
 int max_height = 0,
 string image_params = "border=0",
 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 ...> Необязательный. По умолчанию "border=0".
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;
?>


CFile::ShowImage

string
CFile::ShowImage(
 mixed image,
 int max_width = 0,
 int max_height = 0,
 string image_params = "border=0",
 string url = "",
 bool popup = false,
 string popup_alt = false,
 int image_width = 0,
 int image_height = 0
)

Функция возвращает HTML для показа изображения.

Параметры функции

Параметр | Описание
image | ID файла или путь к файлу на текущем сайте либо URL к файлу лежащем на другом сайте. Если задается путь к файлу на текущем сайте, то его необходимо задавать относительно корня.
max_width | Максимальная ширина изображения. Если ширина картинки больше max_width, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений.
max_height | Максимальная высота изображения. Если высота картинки больше max_height, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений.
image_params | Произвольный HTML добавляемый в тэг IMG: <img image_params ...> Необязательный. По умолчанию "border=0".
url | Ссылка для перехода при нажатии на картинку. Необязательный. По умолчанию "" - не выводить ссылку.
popup | Открывать ли при клике на изображении дополнительное popup окно с увеличенным изображением. Необязательный. По умолчанию - "false".
popup_alt | Текст всплывающей подсказки на изображении (только если popup = true) Необязательный. По умолчанию выводится фраза "Нажмите чтобы увеличить" на языке страницы.
image_width | Ширина изображения (в пикселах) (только если в параметре image задан URL начинающийся с "http://") Необязательный. По умолчанию "0".
image_height | Высота изображения (в пикселах) (только если в параметре image задан URL начинающийся с "http://") Необязательный. По умолчанию "0".

См. также

  • 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>


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 - класс для работы с группами пользователей.

Поля

Поле | Тип | Описание
ID | Int | ID группы.
TIMESTAMP_X | datetime | Последнее изменение.
ACTIVE | char | Активна (Y|N)
NAME | varchar (50) | Наименование группы.
DESCRIPTION | varchar (255) | Описание.

Методы класса

Метод | Описание
GetList | Получает список групп по фильтру.
GetByID | Получает данные о группе по ее ID
GetGroupUser | Список всех пользователей группы.
Add | Добавляет новую группу пользователей.
Update | Изменяет существующую группу.
Delete | Удаляет группу.


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)
  );
$NEW_GROUP_ID = $group->Add($arFields);
if (strlen($group->LAST_ERROR)>0) ShowError($group->LAST_ERROR);
?>


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();
}
?>


CGroup::GetByID

CDBResult
CGroup::GetByID(
 int id,
 string get_users_amount = "N"
)

Возвращает группу пользователей по ее коду ID в виде объекта класса CDBResult.

Параметры функции

Параметр | Описание
id | ID группы.
get_users_amount | "Y" - в выборке будет присутствовать поле ("USERS") с количеством пользователей в группе; "N" - в выборке не будет поля с количеством пользователей в группе (по умолчанию);

См. также

  • Поля CGroup
  • CGroup::GetList

Примеры использования

<?
$rsGroup = CGroup::GetByID(2, "Y");
$arGroup = $rsGroup->Fetch();
echo "<pre>"; print_r($arGroup); echo "</pre>";
?>


CGroup::GetGroupUser

array
CGroup::GetGroupUser(
 int group_id
)

Возвращает массив ID всех пользователей группы по ее коду group_id.

Параметры функции

Параметр | Описание
group_id | ID группы.

См. также

  • Поля CGroup
  • Поля CUser

Примеры использования

<?
$arUsers = CGroup::GetGroupUser(1);
echo "<pre>"; print_r($arUsers); echo "</pre>";
?>


CGroup::GetList

CDBResult
CGroup::GetList(
 string &by = "c_sort",
 string &order = "asc",
 array filter,
 string get_users_amount = "N"
)

Возвращает список групп в виде объекта класса CDBResult.

Параметры функции

Параметр | Описание
by Ссылка на переменную с полем для сортировки, может принимать следующие значения:
  • id - ID группы
  • timestamp_x - дата изменения
  • name - название
  • active - активность
  • c_sort - порядок сортировки
  • description - описание
  • users - кол-во пользователей входящих в группу
оrder Ссылка на переменную с порядком сортировки, может принимать следующие значения:
  • asc - по возрастанию
  • desc - по убыванию
filter Массив для фильтрации пользователей. В массиве допустимы следующие индексы:
  • ID - ID группы (допускается сложная логика)
  • TIMESTAMP_1 - дата изменения настроек группы "с"
  • TIMESTAMP_2 - дата изменения настроек группы "по"
  • ACTIVE - фильтр по активности (Y|N)
  • ADMIN - фильтр по типу группы ("Y" - администраторы | "N" - не администраторы)
  • NAME - по названию (допускается сложная логика)
  • DESCRIPTION - по описанию (допускается сложная логика)
  • USERS_1 - кол-во пользователей "с"
  • USERS_2 - кол-во пользователей "по"
get_users_amount | "Y" - в выборке будет присутствовать поле ("USERS") с количеством пользователей в каждой группе; "N" - в выборке не будет поля с количеством пользователей в каждой группе (по умолчанию);

См. также

  • Поля 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;
?>


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 | Удаляет язык.

См. также

  • Языки


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;
?>


CLanguage::Delete

CDBResult
CLanguage::Delete(
 string id
)

Функция удаляет язык. Возвращается объект CDBResult.

Параметры функции

Параметр | Описание
id | Двухсимвольный ID языка.

См. также

  • CLanguage::Add
  • CLanguage::Update
  • Событие "OnBeforeLanguageDelete"
  • Событие "OnLanguageDelete"

Примеры использования

<?
if (CLanguage::Delete("en"))
  echo "Язык успешно удален.";
?>


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>";
?>


CLanguage::GetList

CDBResult
CLanguage::GetList(
 string &by = "sort",
 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="sort", $order="desc", Array("NAME" => "russian"));
while ($arLang = $rsLang->Fetch())
{
  echo "<pre>"; print_r($arLang); echo "</pre>";
}
?>


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>


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 | Отображает заголовок страницы.
GetTitle | Возвращает заголовок страницы.
SetTitle | Устанавливает заголовок страницы.

CSS стили

Метод | Описание
ShowCSS | Отображает HTML для подключения CSS на странице.
GetCSS | Возвращает HTML для подключения CSS на странице.
SetTemplateCSS | Устанавливает путь к файлу с CSS стилями компонента.
SetAdditionalCSS | Устанавливает путь к файлу с CSS стилями.

Навигационная цепочка

Метод | Описание
ShowNavChain | Отображает HTML с навигационной цепочкой.
GetNavChain | Возвращает HTML с навигационной цепочкой.
AddChainItem | Добавляет пункт в конец навигационной цепочки.

Меню

Метод | Описание
GetMenu | Возвращает объект CMenu для текущей папки.
GetMenuHtml | Возвращает строку с меню типа type для текущей папки в виде HTML.
GetMenuHtmlEx | Аналог GetMenuHtml с применением другого типа шаблона меню.

Свойства страниц и разделов

Метод | Описание
ShowProperty | Отображает свойство страницы, учитывая свойства раздела.
GetProperty | Возвращает свойство страницы, учитывая свойства раздела.
GetPageProperty | Возвращает свойство страницы.
GetDirProperty | Возвращает свойство раздела.
GetPagePropertyList | Возвращает массив всех свойств страницы.
GetDirPropertyList | Возвращает массив всех свойств раздела.
SetPageProperty | Устанавливает свойство страницы.
SetDirProperty | Устанавливает свойство раздела.
ShowMeta | Отображает свойство страницы (раздела) обрамленное тегом <meta>.
GetMeta | Возвращает свойство страницы (раздела) обрамленное тегом <meta>.

Файлы

Метод | Описание
SaveFileContent | Сохраняет страницу на диске.
GetFileContent | Возвращает содержимое файла.
GetFileRecursive | Ищет файл с заданным именем последовательно вверх по иерархии каталогов.
GetFileAccessPermission | Определяет права доступа к файлу или каталогу.
SetFileAccessPermission | Устанавливает права доступа к файлу или каталогу.
CopyFileAccessPermission | Копирует права доступа одного файла (каталога) другому файлу (каталогу).
RemoveFileAccessPermission | Удаляет права доступа для файла или каталогу.

Права доступа и роли пользователя в модуле

Метод | Описание
GetUserRight | Возвращает максимальное право пользователя на тот или иной модуль.
GetUserRoles | Возвращает массив ролей пользователя в том или ином модуле.

Текущий адрес страницы

Метод | Описание
GetCurUri | Возвращает адрес текущей страницы с параметрами.
GetCurPage | Возвращает адрес текущей страницы без параметров.
GetCurPageParam | Возвращает URL текущей страницы c добавленными новыми и(или) удаленными параметрами.
GetCurDir | Возвращает раздел текущей страницы.
SetCurPage | Устанавливает адрес текущей страницы.

Панель управления

Метод | Описание
ShowPanel | Отображает HTML представляющий из себя панель управления публичной частью.
GetPanel | Возвращает HTML представляющий из себя панель управления публичной частью.
AddPanelButton | Добавляет кнопку в панель управления публичной частью.

Куки (cookie)

Метод | Описание
set_cookie | Устанавливает значение cookie.
get_cookie | Возвращает значение cookie.
ShowSpreadCookieHTML | Отображает HTML позволяющий установить cookie пользователю.

Компоненты

Метод | Описание
IncludeFile | Подключает произвольные файлы и компоненты.
GetTemplatePath | Возвращает полный путь к файлу следуя алгоритму подключения компонент.

Прочие методы

Метод | Описание
IncludeAdminFile | Подключает скрипт с административным прологом и эпилогом.
IncludeString | Выводит произвольную строку (HTML код) обрамленную рамкой, в правом верхнем углу которой выводятся заданные иконки.
GetShowIncludeAreas | Возвращает состояние кнопки "Показать включаемые области" на панели управления.
AddBufferContent | Позволяет создавать отложенные функции.
ShowBanner | Подключает модуль "Реклама, баннеры" и если подключение успешно, выводит баннер.
GetSiteByDir | Определяет сайт по заданному каталогу и хосту.
AuthForm | Выводит форму авторизации.
IsHTTPS | Возвращает "true" если используемый текущий протокол - HTTPS.


CMain::AddBufferContent

CMain::AddBufferContent(
 callback function,
 mixed parameter_1,
 mixed parameter_2,
 ...
 mixed parameter_N
)

Позволяет создавать отложенные функции.

Параметры функции

Параметр | Описание
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;
    echo $APPLICATION->AddBufferContent(Array(&$APPLICATION, "GetProperty"),
    $property_id, $default_value);
}
?>

<?
function myShowTitle($property_name="title", $strip_tags = true)
{
    global $APPLICATION;
    echo $APPLICATION->AddBufferContent(Array(&$APPLICATION, "GetTitle"),
    $property_name, $strip_tags);
}
?>

<?
function myShowPanel()
{
    global $APPLICATION;
    echo $APPLICATION->AddBufferContent(Array(&$APPLICATION, "GetPanel"));
}
?>


CMain::AddChainItem

CMain::AddChainItem(
 string title,
 string url = "",
 bool convert_html_entity = true
)

Добавляет пункт в конец навигационной цепочки.

Параметры функции

Параметр | Описание
title | Заголовок добавляемого пункта навигационной цепочки.
url | 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");
?>


CMain::AddPanelButton

CMain::AddPanelButton(
 array button
)

Добавляет в панель управления кнопку.

Параметры функции

Параметр Описание
button Массив описывающий добавляемую кнопку. Ключи массива:
  • HREF - ссылка на кнопке
  • SRC - путь от корня сайта к картинке которая будет выведена на кнопке
  • ALT - текст всплывающей подсказки на кнопке
  • MAIN_SORT - индекс сортировки для группы кнопок, для стандартных групп иконок данный параметр имеет следующие значения:
    • 100 - группа иконок модуля управления статикой
    • 200 - группа иконок модуля документооборота
    • 300 - группа иконок модуля информационных блоков
  • SORT - индекс сортировки внутри группы кнопок
Если у пользователя не хватает прав на ту или иную операцию и вы хотите в любом случае вывести кнопку, то необходимо HREF оставлять пустым, при этом кнопка будет выведена черно-белой и без ссылки.

См. также

  • Панель управления
  • 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;
?>


CMain::AuthForm

CMain::AuthForm(
 mixed message,
 bool show_header = true,
 bool show_footer = true,
 string not_show_links = "N"
)

Функция подключает ряд компонентов в зависимости от параметров пришедших на страницу:
Параметр | Значение | Название компонента | Путь к компоненту
forgot_password | yes | "Форма отсылки забытого пароля" | main/auth/forgot_password.php
change_password | yes | "Форма смены забытого пароля" | main/auth/change_password.php
register | yes | "Форма регистрации" | main/auth/registration.php
authorize_registration | yes | "Форма авторизации и регистрации" | main/auth/authorize_registration.php

Если не указан ни один из параметров, то по умолчанию функция подключит компонент "Форма авторизации" (main/auth/authorize.php).

После вывода соответствующего компонента функция завершает выполнение страницы.

Параметры функции

Параметр | Описание
message | Строка - сообщение об ошибке или массив вида Array("MESSAGE" => сообщение, "TYPE" => "ERROR"|"OK") (обрабатывается функцией ShowMessage)
show_header | Если значение "true" - то будет выведен пролог (верх) сайта, "false" - пролог выводиться не будет.
show_footer | Если значение "true" - то будет выведен эпилог (низ) сайта, "false" - эпилог выводиться не будет.
not_show_links | Данный параметр передается в компонент "Форма авторизации" (main/auth/authorize.php). Если значение "Y" - то ссылки ведущие на регистрацию и форму запроса и смены забытого пароля выводиться не будут, если "N" - ссылки выводиться будут (значение по умолчанию).

См. также

  • Компоненты
  • Права доступа
  • 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("У вас нет права доступа к данному файлу.");
?>


CMain::CopyFileAccessPermission

bool
CMain::CopyFileAccessPermission(
 string path_from,
 string path_to,
 bool overwrite = false
)

Копирует права доступа одного файла (каталогу) другому файлу (каталогу). Возвращает "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("Права успешно скопированы.");
}
?>


CMain::get_cookie

CMain::get_cookie(
 string name,
 mixed name_prefix = false
)

Возвращает значение cookie.

Параметры функции

Параметр | Описание
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");
?>


CMain::GetCSS

string
CMain::GetCSS(
 bool external = 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 (как правило это используется в стандартных компонентах).

См. также

  • CMain::ShowCSS
  • CMain::SetTemplateCSS
  • CMain::SetAdditionalCSS


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/"
?>


CMain::GetCurPage

string
CMain::GetCurPage()

Возвращает путь к текущей странице относительно корня без параметров.

Если файл текущей страницы явно не определён, то определение индексного файла каталога будет проходить по алгоритму представленному в описании функции GetDirIndex.

Параметры функции

Без параметров.

См. также

  • CMain::GetCurUri
  • CMain::GetCurDir
  • CMain::GetCurPageParam
  • CMain::SetCurPage
  • GetPagePath
  • GetDirPath

Примеры использования

<?
// текущая страница: /ru/?id=3&s=5
$page = $APPLICATION->GetCurPage(); // результат - /ru/index.php
?>


CMain::GetCurPageParam

string
CMain::GetCurPageParam(
  string add_params = "",
  array remove_params = array()
)

Возвращает путь к текущей странице относительно корня c добавленными новыми и(или) удаленными текущими параметрами.

Если файл текущей страницы явно не определён, то определение индексного файла каталога будет проходить по алгоритму представленному в описании функции GetDirIndex.

Параметры функции

Параметр | Описание
add_params | Строка с параметрами которые нужно добавить к возвращаемому значению. Необязательный. По умолчанию "".
remove_params | Массив параметров, которые необходимо удалить из URL-а страницы. Необязательный. По умолчанию - пустой массив.

См. также

  • 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;?>


CMain::GetCurUri

string
CMain::GetCurUri(
 string add_params = ""
)

Возвращает путь к текущей странице относительно корня вместе с параметрами.

Если файл текущей страницы явно не определён, то определение индексного файла каталога будет проходить по алгоритму представленному в описании функции GetDirIndex.

Параметры функции

Параметр | Описание
add_params | Строка параметров добавляемая к возвращаемому значению. Необязательный. По умолчанию - "".

См. также

  • 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
?>


CMain::GetDirProperty

string
CMain::GetDirProperty(
 string property_id,
 mixed path = false,
 mixed default_value = false
)

Возвращает свойство текущего раздела.

Параметры

Параметр | Описание
property_id | Идентификатор свойства.
path Путь к каталогу. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "путь")
Необязателен. По умолчанию - "false" - текущий каталог.
default_value Значение свойства по умолчанию.
Необязательный. По умолчанию - "false" - значение свойства по умолчанию не задано.

См. также

  • Свойства страниц и мета-тэги
  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

Пример использования

<?
$APPLICATION->GetDirProperty("keywords");
?>


CMain::GetDirPropertyList

array
CMain::GetDirPropertyList(
 string path = false
)

Возвращает массив свойств раздела, собранных рекурсивно до корня сайта.

Параметры

Параметр Описание
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).'">';
?>


CMain::GetException

CApplicationException
CMain::GetException();

Метод возвращает объект класса CApplicationException, содержащий последнее исключение.

См. также

  • Класс CApplicationException
  • CMain::ThrowException

Примеры использования

<?
if(!$langs->Delete($del_id))
{
   if($ex = $APPLICATION->GetException())
      $strError = $ex->GetString();
}
?>


CMain::GetFileAccessPermission

string
CMain::GetFileAccessPermission(
 mixed path,
 array groups
)

Определяет права доступа к файлу или каталогу. Возвращает символ обозначающий то или иное право:

  • D - доступ запрещён
  • R - чтение (право просмотра содержимого файла)
  • U - документооборот (право на редактирование файла в режиме документооборота)
  • W - запись (право на прямое редактирование)
  • X - полный доступ (право на прямое редактирование файла и право на изменение прав доступа на данных файл)

Параметры функции

Параметр Описание
path Путь к файлу или папке относительно корня. В случае многосайтовой версии, если корневой каталог у сайтов разный, то в данном параметре необходимо передавать массив вида:
array("ID сайта", "Путь к файлу или папке относительно корня")
groups Массив ID групп пользователей, для которых необходимо определить права доступа. Если false, то определять группу прав для текущего пользователя.
Необязателен. По умолчанию - "false".

См. также

  • Права доступа
  • CMain::SetFileAccessPermission
  • CMain::CopyFileAccessPermission
  • CMain::RemoveFileAccessPermission

Примеры использования

<?
if ($APPLICATION->GetFileAccessPermission("/ru/index.php") <= "D")
   ShowError("Доступ к файлу запрещён.");
?>


CMain::GetFileContent

mixed
CMain::GetFileContent(
 string abs_path
)

Возвращает содержимое файла. Если файл не существует - вернет "false".

Параметры функции

Параметр | Описание
abs_path | Абсолютный путь к файлу на диске.

См. также

  • CMain::SaveFileContent

Примеры использования

<?
$APPLICATION->GetFileContent($_SERVER["DOCUMENT_ROOT"]."/ru/index.php");
?>


CMain::GetFileRecursive

mixed
CMain::GetFileRecursive(
 string file,
 mixed dir
)

Ищет файл с заданным именем последовательно вверх по иерархии папок. Если файл найден - возвращает путь к найденному файлу относительно корня, в противном случае возвращает "false".

Параметры функции

Параметр | Описание
file | Имя файла.
dir | Путь к разделу с которого нужно начинать поиск файла. Если "false", то поиск будет начинаться с текущего раздела. Необязателен. По умолчанию - "false".

Примеры использования

<?
// ищем файл params.php вверх по иерархии разделов начиная с текущего каталога
// если файл найден то подключаем его как PHP код
include($_SERVER["DOCUMENT_ROOT"].$APPLICATION->GetFileRecursive("params.php"));
?>


CMain::GetMenu

CMenu
CMain::GetMenu(
 string type = "left",
 bool use_ext = false,
 mixed template_path = false,
 mixed init_dir = false
)

Возвращает объект класса CMenu, инициализированный функцией CMenu::Init. Если произошла ошибка, то текст ошибки будет содержаться в свойстве LAST_ERROR данного объекта.

Параметры функции

Параметр | Описание
type | Тип меню. Необязателен. По умолчанию "left".
use_ext | Если значение - "true", то для формирования массива меню, помимо файлов .тип меню.menu.php будут также подключаться файлы с именами вида .тип меню.menu_ext.php. В которых вы можете манипулировать массивом меню $aMenuLinks произвольно, по вашему усмотрению (например, дополнять пункты меню значениями из инфо-блоков). Необязателен. По умолчанию - "false".
template_path | Путь относительно корня к шаблону меню. Необязателен. По умолчанию - "false", что означает искать по алгоритму указанному на странице "Меню".
init_dir | Каталог для которого будет строится меню. Необязателен. По умолчанию - "false", что означает - текущий каталог.

См. также

  • Меню
  • Класс 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();
?>


CMain::GetMenuHtml

string
CMain::GetMenuHtml(
 string type = "left",
 bool use_ext = false,
 mixed template_path = false,
 mixed init_dir = false
)

Возвращает HTML-код для отображения меню заданного типа. В отличии от функции CMain::GetMenuHtmlEx шаблон меню будет подключаться на каждый пункт меню.

Параметры функции

Параметр | Описание
type | Тип меню. Необязателен. По умолчанию "left".
use_ext | Если значение - "true", то для формирования массива меню, помимо файлов .тип меню.menu.php будут также подключаться файлы с именами вида .тип меню.menu_ext.php. В которых вы можете манипулировать массивом меню $aMenuLinks произвольно, по вашему усмотрению (например, дополнять пункты меню значениями из инфо-блоков). Необязателен. По умолчанию - "false".
template_path | Путь относительно корня к шаблону меню. Необязателен. По умолчанию - "false", что означает искать по алгоритму указанному на странице "Меню".
init_dir | Каталог для которого будет строится меню. Необязателен. По умолчанию - "false", что означает - текущий каталог.

См. также

  • Меню
  • Класс 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>';

}
?>


CMain::GetMenuHtmlEx

string
CMain::GetMenuHtmlEx(
 string type = "left",
 bool use_ext = false,
 mixed template_path = false,
 mixed init_dir = false
)

Возвращает HTML-код для отображения меню заданного типа. В отличие от функции CMain::GetMenuHtml шаблон меню будет подключаться только один раз.

В шаблоне меню, используемом данной функцией, в обязательном порядке необходимо инициализировать переменную $sMenu, в которой должен храниться HTML представляющий из себя все меню целиком.

Параметры функции

Параметр | Описание
type | Тип меню. Необязателен. По умолчанию "left".
use_ext | Если значение - "true", то для формирования массива меню, помимо файлов .тип меню.menu.php будут также подключаться файлы с именами вида .тип меню.menu_ext.php. В которых вы можете манипулировать массивом меню $aMenuLinks произвольно, по вашему усмотрению (например, дополнять пункты меню значениями из инфо-блоков). Необязателен. По умолчанию - "false".
template_path | Путь относительно корня к шаблону меню. Необязателен. По умолчанию - "false", что означает искать по алгоритму указанному на странице "Меню".
init_dir | Каталог для которого будет строится меню. Необязателен. По умолчанию - "false", что означает - текущий каталог.

См. также

  • Меню
  • Класс 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";
    }
}


CMain::GetMeta

string
CMain::GetMeta(
 string property_id,
 string meta_name = false
)

Возвращает свойство страницы обрамленное тегом <meta>. Если на самой страницы свойство не задано, то будет взято значение свойства вышестоящего раздела (рекурсивно до корня сайта). Если свойство не задано, то метод вернет пустую строку.

Параметры

Параметр | Описание
property_id | Идентификатор свойства страницы или раздела, значение которого (value) будет выведено в аттрибуте "content" мета-тэга: <meta content="value" ...>
meta_name | Аттрибут "name" мета-тэга: <meta name="meta_name" ...> Необязательный. По умолчанию равен идентификатору свойства property_id.

См. также

  • Свойства страниц и мета-тэги
  • CMain::ShowMeta
  • CMain::SetPageProperty
  • CMain::SetDirProperty

Пример использования

<?
$meta_keywords = $APPLICATION->GetMeta("keywords_prop", "keywords");
if (strlen($meta_keywords)>0) echo $meta_keywords;
?>


CMain::GetNavChain

string
CMain::GetNavChain(
 mixed path = false,
 int start_from = 0,
 mixed template_path = false
)

Возвращает HTML представляющий из себя навигационную цепочку.

Если вам не нужно показывать навигационную цепочку на какой либо странице, вам достаточно вставить в теле страницы код, инициализирующий свойство страницы "NOT_SHOW_NAV_CHAIN" значением "Y":

$APPLICATION->SetPageProperty("NOT_SHOW_NAV_CHAIN", "Y");
Поддержка этого свойства встроена в данную функцию.

Параметры функции

Параметр Описание
path Путь для которого будет построена навигационная цепочка. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "путь")
Необязателен. По умолчанию - "false" - текущий путь.
start_from Начиная от какого пункта будет построена навигационная цепочка
Необязателен. По умолчанию - "0".
template_path Путь к шаблону навигационной цепочки.
Необязателен. По умолчанию - "false", что предполагает поиск пути к шаблону навигационной цепочки по алгоритму представленному на странице "Навигационная цепочка"

См. также

  • Навигационная цепочка
  • CMain::ShowNavChain
  • CMain::AddChainItem


CMain::GetPageProperty

string
CMain::GetPageProperty(
 string property_id,
 mixed default_value = false
)

Возвращает свойство текущей страницы.

Параметры

Параметр | Описание
property_id | Идентификатор свойства.
default_value | Значение свойства по умолчанию. Необязательный. По умолчанию - "false" - значение свойства по умолчанию не задано.

См. также

  • Свойства страниц и мета-тэги
  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

Пример использования

<?
$APPLICATION->GetPageProperty("keywords");
?>


CMain::GetPagePropertyList

array
CMain::GetPagePropertyList()

Возвращает массив всех свойств страницы.

Параметры функции

Без параметров.

См. также

  • Свойства страниц и мета-тэги
  • 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).'">';
?>


CMain::GetPanel

string CMain::GetPanel()

Возвращает HTML представляющий из себя панель управления публичной частью.

Параметры функции

Без параметров.

См. также

  • CMain::ShowPanel
  • CMain::AddPanelButton


CMain::GetProperty

string
CMain::GetProperty(
 string property_id,
 mixed default_value = false
)

Возвращает свойство текущей страницы или раздела. Если на самой странице свойство не задано, то будет возвращено значение свойства вышестоящего раздела (рекурсивно до корня сайта).

Параметры

Параметр | Описание
property_id | Идентификатор свойства.
default_value | Значение свойства по умолчанию. Необязательный. По умолчанию - "false" - значение свойства по умолчанию не задано.

См. также

  • Свойства страниц и мета-тэги
  • CMain::ShowProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

Пример использования

<?
$keywords = $APPLICATION->GetProperty("keywords");
if (strlen($keywords)>0) echo $keywords;
?>


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;
}
?>


CMain::GetSiteByDir

array
CMain::GetSiteByDir(
 mixed path = false,
 mixed host = false
)

Возвращает массив описывающий сайт, определяемый по указанному пути и домену. Описание ключей данного массива вы можете найти на странице Поля CSite. Алгоритм работы функции следующий:

  1. Ищем сайты для которых удовлетворяют path и host, если нашли, то возвращаем, иначе
  2. Ищем сайты для которых удовлетворяет path, если нашли, то возвращаем, иначе
  3. Ищем сайты для которых удовлетворяет host, если нашли, то возвращаем, иначе
  4. Возвращаем сайт с установленным флагом "Сайт по умолчанию"

Параметры функции

Параметр | Описание
path | Путь относительно корня. Необязательный. По умолчанию - путь к текущей странице.
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"]);
?>


CMain::GetTemplatePath

string
CMain::GetTemplatePath(
 string component_path
)

Возвращает путь от корня сайта к файлу по пути задаваемому для компонента.

Параметры функции

Параметр Описание
component_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"
?>


CMain::GetTitle

string
CMain::GetTitle(
 mixed property_name = false,
 bool strip_tags = false
)

Возвращает заголовок страницы.

Параметры функции

Параметр | Описание
property_name | Если указано значение "false", то будет возвращен заголовок страницы, устанавливаемый с помощью функции SetTitle. В противном случае в параметре передается идентификатор свойства страницы, значение которого будет выведено в качестве заголовка (если это значение задано, например, с помощью функции CMain::SetPageProperty). Необязательный. По умолчанию "false".
strip_tags | Если значение - "true", то из заголовка страницы будут удалены все HTML тэги. Необязательный. По умолчанию - "false".

См. также

  • CMain::ShowTitle
  • CMain::SetTitle


CMain::GetUserRight

string
CMain::GetUserRight(
 string module_id,
 mixed groups = false,
 string use_default = "Y",
 string max_for_admin = "Y"
)

Возвращает право в рамках логики модуля установленное для определённого набора групп (по умолчанию - это группы текущего пользователя).

Как правило в каждом модуле определены свои символы означающие то или иной право, в противном случае используются значения по умолчанию:

  • D - доступ к модулю запрещён
  • R - право на просмотр страниц модуля (без права модификации)
  • W - право на модификацию данных модуля
Установка своего уникального набора прав для каждого модуля осуществляется методом GetModuleRightList класса с именем равным ID модуля. Например для модуля веб-форм, это будет метод form::GetModuleRightList() описаный в файле /bitrix/modules/form/install/index.php. Администрирование прав обычно осуществляется в настройках соответствующего модуля.

Для некоторых модулей (например, "информационные блоки") права устанавливаются индивидуально и к ним данная функция не применима, некоторые модули (например, "компрессия") вовсе не имеют прав доступа.

Для любого модуля максимальное право (полный доступ к модулю) всегда обозначается символом "W", минимальное право - символом "D" (доступ к модулю закрыт).

Параметры функции

Параметр | Описание
module_id | ID модуля.
groups | Массив групп для которых необходимо определить максимальное право. Если значение - "false", то будет взят массив групп текущего пользователя. Необязательный. По умолчанию - "false".
use_default | Если значение - "Y", то для определения максимального уровня прав будет учитываться уровень прав установленный по умолчанию. Необязательный. По умолчанию - "Y".
max_for_admin | Если значение - "Y" и groups = false, то пользователю входящему в группу администраторов (группа #1) всегда будет возвращаться максимальное право - "W", независимо от того какие права установлены в настройках модуля. Необязательный. По умолчанию - "Y".

См. также

  • Права доступа
  • CMain::GetUserRoles
  • CModule::GetModuleRightList

Примеры использования

<?
// получим максимальное право доступа к модулю "Веб-формы" для текущего пользователя
if($APPLICATION->GetUserRight("form") <= "D")
    $APPLICATION->AuthForm("Доступ к модулю запрещён.");
?>


CMain::GetUserRoles

string
CMain::GetUserRoles(
 string module_id,
 mixed groups = false,
 string use_default = "Y",
 string max_for_admin = "Y"
)

Возвращает массив ролей в рамках логики модуля для определённого набора групп (по умолчанию - это группы текущего пользователя).

Как правило в каждом модуле определены свои символы означающие ту или иную роль. Установка своего уникального набора ролей для каждого модуля осуществляется методом GetModuleRightList класса с именем равным ID модуля. Например, для модуля техподдержки, это будет метод support::GetModuleRightList(), описанный в файле /bitrix/modules/support/install/index.php. Администрирование ролей обычно осуществляется в настройках соответствующего модуля.

Для любого модуля роль с максимальными правами (администратор модуля) всегда обозначается символом "W", с минимальным правами - символом "D" (доступ к модулю закрыт).

Параметры функции

Параметр | Описание
module_id | ID модуля.
groups | Массив групп для которых необходимо определить их роли. Если значение - "false", то будет взят массив групп текущего пользователя. Необязательный. По умолчанию - "false".
use_default | Если значение - "Y", то для определения массива ролей будет учитываться роль установленная по умолчанию. Необязательный. По умолчанию - "Y".
max_for_admin | Если значение - "Y" и groups = false, то пользователю входящему в группу администраторов (группа #1) всегда будет возвращаться массив ролей с обязательно включенной туда ролью с максимальными правами - "W". Необязательный. По умолчанию - "Y".

См. также

  • Права доступа
  • 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);
?>


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");
    }
}
?>


CMain::IncludeComponent

mixed
IncludeComponent(
 string componentName ,
 string componentTemplate [,
 array arParams [,
 object parentComponent]]
);

Метод подключает компонент 2.0

Параметры функции

Параметр | Описание
componentName | Имя компонента. Например: "bitrix:news.detail".
componentTemplate | Имя шаблона компонента. Если имя пустое, то подразумевается имя ".default".
arParams | Массив входных параметров компонента.
parentComponent | Объект родительского комплексного компонента, если компонент подключается из шаблона комплексного компонента. В шаблоне комплексного компонента определена переменная $component, которая содержит объект этого комплексного компонента.

Возвращаемое значение

Возвращает код компонента.

Пример

// Подключим компонент каталога с шаблоном "по-умолчанию" на публичной странице сайта
$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
);


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"                    // имя шаблона для нового файла
    ));
?>
© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1C-Битрикс: Управление сайтом


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;
}
?>


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"
?>


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("Права успешно модифицированы.");
?>


CMain::ResetException

CMain::ResetException()

Метод очищает последнее исключение.

См. также

  • Класс 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");
}
?>


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("Ошибка при сохранениии файла");
?>


CMain::set_cookie

CMain::set_cookie(
 string name,
 string value,
 mixed expire = false,
 string path = "/",
 mixed domain = false,
 bool secure = false,
 bool spread = true,
 mixed name_prefix = false
)

Устанавливает cookie и при необходимости запоминает параметры установленного cookie для дальнейшего распространения по сайтам с разными доменными именами.

Параметры функции

Параметр | Описание
name | Имя cookie переменной.
value | Значение cookie переменной.
expire Дата в Unix-формате после которой cookie будет считаться истекшим и его значение не будет передаваться от посетителя на сайт.
Необязательный. По умолчанию - cookie устанавливается сроком на 1 год.
path Каталог веб-сайта для которого cookie будет действителен.
Необязательный. По умолчанию - весь сайт.
domain Домен для которого cookie будет действительным.
Необязательный. По умолчанию - текущий сайт.
secure Флаг secure для устанавливаемого cookie. Если значение "true", то будет установлен как "защищенный", т.е. его значение будет возвращаться на сайт только если посетитель зашел на сайт по протоколу HTTPS.
Необязательный. По умолчанию - "false".
spread | Если значение "true", то параметры установленного cookie будут запоминаться для дальнейшего его распространения по доменам (административное меню "Сайты", в настройках сайта - поле "Доменное имя").
name_prefix Префикс имени переменной cookie.
Необязательный. По умолчанию - значение параметра "Имя префикса для названия cookies" в настройках главного модуля (значение данного параметра можно получить с помощью функции:
COption::GetOptionString("main", "cookie_name", "BITRIX_SM")

См. также

  • Перенос посетителей
  • 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/");
?>


CMain::SetAdditionalCSS

CMain::SetAdditionalCSS(
 string path
)

Устанавливает CSS стиль для страницы.

Параметры функции

Параметр | Описание
path | Путь относительно корня к файлу с CSS стилями.

См. также

  • CMain::ShowCSS
  • CMain::GetCSS
  • CMain::SetTemplateCSS

Примеры использования

<?
$APPLICATION->SetAdditionalCSS("/bitrix/templates/demo/additional.css");
?>


CMain::SetCurPage

CMain::SetCurPage(
  string page,
  mixed params = false
)

Устанавливает в объекте класса CMain текущую страницу и ее параметры.

Параметры функции

Параметр | Описание
page | Адрес страницы. Например, "/ru/index.php".
params | Строка параметров. Например, "id=2&s=3&t=4". Параметр необызательный. Если его не задавать, то параметры страницы в объекте класса CMain остаются без изменений.

См. также

  • CMain::GetCurUri
  • CMain::GetCurPage
  • CMain::GetCurPageParam
  • CMain::GetCurDir

Примеры использования

<?
$APPLICATION->SetCurPage("/ru/index.php", "id=2&s=3");
?>


CMain::SetDirProperty

CMain::SetDirProperty(
 string property_id,
 string property_value
)

Устанавливает свойство для текущего раздела.

Параметры функции

Параметр | Описание
property_id | Идентификатор свойства.
property_value | Значение свойства.

См. также

  • Свойства страниц и мета-тэги
  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty

Примеры использования

<?
$APPLICATION->SetDirProperty("keywords", "дизайн, веб, сайт");
?>


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("Права на файл успешно установлены.");
?>


CMain::SetPageProperty

CMain::SetPageProperty(
 string property_id,
 string property_value
)

Устанавливает свойство для текущей страницы.

Параметры функции

Параметр | Описание
property_id | Идентификатор свойства.
property_value | Значение свойства.

См. также

  • Свойства страниц и мета-тэги
  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetDirProperty

Примеры использования

<?
$APPLICATION->SetPageProperty("keywords", "веб, разработка, программирование");
?>


CMain::SetTemplateCSS

CMain::SetTemplateCSS(
 string rel_path
)

Устанавливает CSS стиль для компоненты.

Параметры функции

Параметр | Описание
rel_path | Относительный путь к CSS стилю компоненты.

См. также

  • CMain::ShowCSS
  • CMain::GetCSS
  • CMain::SetAdditionalCSS

Примеры использования

$APPLICATION->SetTemplateCSS("form/form.css");


CMain::SetTitle

CMain::SetTitle(
 string title
)

Устанавливает заголовок страницы. Если заголовок страницы у вас выводится с помощью функции CMain::ShowTitle, то устанавливать его вы можете уже после того как у вас будет выведена пролог сайта.

Параметры функции

Параметр | Описание
title | Заголовок страницы.

См. также

  • CMain::ShowTitle
  • CMain::GetTitle

Примеры использования

<?
$APPLICATION->SetTitle("Page title");
?>


CMain::ShowBanner

CMain::ShowBanner(
 string banner_type,
 string html_before = false,
 string html_after = false
)

Подключает модуль рекламы и отображает баннер заданного типа.

Параметры функции

Параметр | Описание
banner_type | Тип баннера (административный пункт меню "Реклама" -> "Типы баннеров").
html_before | HTML код выводимый перед баннером.
html_after | HTML код выводимый после баннера.

См. также

  • Модуль рекламы
  • Классы модуля рекламы

Примеры использования

<?
// подключим модуль рекламы и выведем баннер типа "LEFT"
$APPLICATION->ShowBanner("LEFT", "<div align=\"center\">", "<br></div><br>");
?>


CMain::ShowCSS

CMain::ShowCSS(
 bool external = true
)

Отображает CSS страницы.

Данная функция использует технологию "отложенных функций", позволяющую, помимо всего прочего, задавать 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 (как правило это используется в стандартных компонентах).

См. также

  • Отложенные функции
  • 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">
...


CMain::ShowHeadStrings

CMain::ShowHeadStrings()

Отображает специальные стили, JavaScript либо произвольный php-код.

Данная функция использует технологию "отложенных функций". Используется в шаблоне сайта для вывода совершенно любого кода, который задается, например, в компонентах с помощью CMain::AddHeadString().

Т.е. эта функция - аналог ShowMeta, ShowTitle, ShowCSS, только более универсальная.

См. также

  • Отложенные функции
  • CMain::AddHeadString()

Примеры использования

<?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" />');
}
...


CMain::ShowMeta

CMain::ShowMeta(
 string property_id,
 string meta_name = false
)

Отображает свойство страницы в виде мета-тэга.

Если на самой странице свойство не задано, то будет взято значение свойства вышестоящего раздела (рекурсивно до корня сайта). Если значение свойства не определено, то метод отобразит пустую строку.

Данная функция использует технологию "отложенных функций", позволяющую, помимо всего прочего, задавать значения мета-тэгов через свойства страницы или раздела (с помощью функций CMain::SetPageProperty, CMain::SetDirProperty) уже после того как был выведен пролог сайта.

Параметры функции

Параметр | Описание
property_id | Идентификатор свойства страницы или раздела, значение которого (value) будет выведено в аттрибуте "content" мета-тэга: <meta content="value" ...>
meta_name | Аттрибут "name" мета-тэга: <meta name="meta_name" ...> Необязательный. По умолчанию равен идентификатору свойства property_id.

См. также

  • Отложенные функции
  • Свойства страниц и мета-тэги
  • 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">
...


CMain::ShowNavChain

CMain::ShowNavChain(
 mixed path = false,
 int start_from = 0,
 mixed template_path = false
)

Отображает навигационную цепочку.

Данная функция использует технологию "отложенных функций", позволяющую, помимо всего прочего, добавлять пункты в навигационную цепочку (например, внутри компонента) уже после того как был выведен пролог сайта.

Если вам не нужно показывать навигационную цепочку на какой либо странице, вам достаточно вставить в теле страницы код, инициализирующий свойство страницы "NOT_SHOW_NAV_CHAIN" значением "Y":

$APPLICATION->SetPageProperty("NOT_SHOW_NAV_CHAIN", "Y");
Поддержка этого свойства встроена в данную функцию.

Параметры функции

Параметр Описание
path Путь для которого будет построена навигационная цепочка. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "путь")
Необязателен. По умолчанию - "false" - текущий путь.
start_from Номер пункта начиная с которого будет построена навигационная цепочка. Пункты навигационной цепочки нумеруются с нуля.
Необязателен. По умолчанию - "0".
template_path Путь к шаблону навигационной цепочки.
Необязателен. По умолчанию - "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>";
}
?>


CMain::ShowPanel

CMain::ShowPanel()

Отображает панель управления в публичной части сайта.
Данная функция использует технологию "отложенных функций", позволяющую, помимо всего прочего, добавлять кнопку в панель управления уже после того как будет выведена пролог сайта.

Если у пользователя не хватает прав ни на одну операцию задаваемую кнопками панели управления, то панель выведена не будет. Если вам необходимо вывести панель в обязательном порядке, необходимо задать в теле страницы:

$APPLICATION->ShowPanel = true;
Если вам необходимо определить выводилась ли панель управления, то необходимо обратиться к свойству PanelShowed объекта $APPLICATION:

if ($APPLICATION->PanelShowed) echo "Панель выведена!"

Параметры функции

Без параметров.

См. также

  • Панель управления
  • Отложенные функции
  • 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();?>
...


CMain::ShowProperty

CMain::ShowProperty(
 string property_id,
 mixed default_value = false
)

Отображает свойство страницы, учитывая свойства раздела.

Данная функция использует технологию "отложенных функций", позволяющую, помимо всего прочего, задавать свойство страницы (например, внутри компонента) и использовать его в прологе уже после того как он был выведен.

Параметры функции

Параметр | Описание
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">
...


CMain::ShowSpreadCookieHTML

CMain::ShowSpreadCookieHTML()

Отображает HTML представляющий из себя набор IFRAME'ов предназначенный для распространения cookie по доменам. Данная функция используется в технологии переноса посетителей между разными сайтами. Она стандартно включена в визуальную часть эпилога.

Параметры функции

Без параметров.

См. также

  • Перенос посетителей
  • CMain::set_cookie
  • CMain::get_cookie


CMain::ShowTitle

CMain::ShowTitle(
 string property_name = "title",
 bool strip_tags = true
)

Отображает заголовок страницы.

Данная функция использует технологию "отложенных функций", позволяющую, помимо всего прочего, задавать заголовок страницы (например, внутри компонента) уже после того как был выведен пролог сайта.

Параметры функции

Параметр | Описание
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">
...


ThrowException

1С-Битрикс: Управление сайтом Отправить отзыв

CMain::ThrowException

CMain::ThrowException(
 mixed msg,
 mixed id = false
)

Метод фиксирует исключение msg c кодом id. Получить последнее исключение можно методом $APPLICATION->GetException()

Параметры

Параметр | Описание
msg | Текст ошибки или объект класса, наследованного от CApplicationException.
id | Идентификатор ошибки.

См. также

  • CMain::ResetException
  • CMain::GetException

Примеры использования

<?
if($login=='')
{
   global $APPLICATION;
   $APPLICATION->ThrowException('Имя входа должно быть заполнено.');
   return false;
}
?>


CMainPage

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CMainPage

CMainPage - класс для использования на индексной странице портала.

Функции данного класса используются, как правило, если многосайтовость организована по способу 1.

Методы класса

Метод | Описание
GetSiteByHost | Возвращает идентификатор сайта, определяя его по текущему хосту.
GetSiteByAcceptLanguage | Возвращает идентификатор сайта, определяя его по переменной Accept-Language в настройках браузера посетителя.
RedirectToSite | Перенаправляет на индексную страницу сайта.
GetIncludeSitePage | Возвращает полный путь на индексную страницу заданного сайта, для дальнейшего ее подключения при помощи require() или include().

См. также

  • Список терминов
  • Многосайтовость: способы организации


CMainPage::GetIncludeSitePage

mixed
CMainPage::GetIncludeSitePage(
 string site_id
)

Возвращает абсолютный путь на индексную страницу заданного сайта, для дальнейшего ее подключения при помощи require() или include(). Если ни один из сайтов не найден по хосту, то функция вернет - "false".

Параметры функции

Параметр | Описание
site_id | Идентификатор сайта.

См. также

  • Список терминов
  • Многосайтовость: способы организации

Пример индексной страницы портала

<?
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");?>


CMainPage::GetSiteByAcceptLanguage

mixed
CMainPage::GetSiteByAcceptLanguage(
 bool compare_site_id = false
)

Возвращает идентификатор сайта, определяя его по переменной Accept-Language в настройках браузера посетителя. Приоритетным для данной функции является порядок языков установленный в настройках браузера посетителя. Если ни один из этих языков не подойдет, то будет выбран сайт с установленным флагом "Сайт по умолчанию".

Параметры функции

Параметр | Описание
compare_site_id | Если значение "true", то поиск сайта будет осуществляться через сравнение идентификатора языка из Accept-Language и идентификатора сайта, если значение "false" - то сравнение будет между идентификатором языка из Accept-Language и идентификатором языка выбранного в настройках сайта. Необязательный. По умолчанию - "false".

См. также

  • Список терминов
  • Многосайтовость: способы организации

Пример индексной страницы портала

Для использования данного примера в качестве индексной страницы портала необходимо убедиться что:
1. Многосайтовость организована по способу 1.
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");?>


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");?>


CMainPage::RedirectToSite

mixed
CMainPage::RedirectToSite(
 string site_id
)

Перенаправляет на индексную страницу сайта.

Параметры функции

Параметр | Описание
site_id | Идентификатор сайта.

См. также

  • Список терминов
  • Многосайтовость: способы организации

Пример индексной страницы портала

Для использования данного примера в качестве индексной страницы портала необходимо убедиться что:
1. Многосайтовость организована по способу 1.
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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CMenu

CMenu - класс для работы с меню.

Свойства класса

Параметр | Описание
type | Тип меню.
arMenu | Массив пунктов меню (доступен только после CMenu::Init)
MenuDir | Папка, в которой находится файл содержащий параметры и пункты меню (доступен только после CMenu::Init)
template | Путь к файлу с шаблоном (доступен только после CMenu::Init)

Методы класса

Метод | Описание
CMenu | (конструктор) инициализирует меню заданного типа.
Init | Ищет рекурсивно меню начиная c папки.
GetMenuHtml | Возвращает меню трансформированное в HTML.
GetMenuHtmlEx | Возвращает меню трансформированное в HTML.

См. также

  • Меню


Конструктор 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();
?>


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();
?>


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();
?>


CMenu::Init

bool
CMenu::Init(
 string dir
 bool use_ext = false,
 string template_path = false
)

Инициализирует (заполняет пунктами) объект класса CMenu. Возвращает "true" если в каталоге сайта найден файл меню .тип меню.menu.php (поиск идет вверх по иерархии начиная с каталога dir), и "false" в противном случае.

Параметры функции

Параметр | Описание
dir | Папка, начиная с которой, объект будет искать файл .тип меню.menu.php (файл с параметрами и пунктами меню).
use_ext Если значение - "true", то для формирования массива меню, помимо файлов .тип меню.menu.php будут также подключаться файлы с именами вида .тип меню.menu_ext.php. В которых вы можете манипулировать массивом меню $aMenuLinks произвольно, по вашему усмотрению (например, дополнять пункты меню значениями из инфо-блоков).
Необязателен. По умолчанию - "false".
template_path Шаблон для вывода меню.
Необязателен. По умолчанию - "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)

См. также

  • Меню
  • 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 выпадающего списка.
Add | Вставляет идентификатор модуля в таблицу b_module.
Remove | Удаляет идентификатор модуля из таблицы b_module.
GetModuleRightList | Возвращает массив описывающий индивидуальную схему распределения прав модуля.
DoInstall | Запускает процедуру инсталляции модуля.
DoUninstall | Запускает процедуру деинсталляции модуля.
IncludeModule | Проверяет установлен ли модуль и если установлен, то подключает его (точнее подключает файл /bitrix/modules/ID модуля/include.php).
IsInstalled | Проверяет установлен ли модуль.

См. также

  • Описание концепции модулей
  • Идентификаторы модулей
  • Функции для работы с модулями


Add

CModule::Add()

Вставляет идентификатор модуля в таблицу b_module.

Параметры функции

Без параметров.

См. также

  • RegisterModule
  • CModule::Remove

Примеры использования

<?
$m = new CModule;
$m->MODULE_ID = "iblock";
$m->Add();
?>


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();
    }
}
?>


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

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

CDBResult
CModule::GetList()

Возвращает список модулей в виде объекта класса CDBResult.

Параметры функции

Без параметров.

См. также

  • CModule::GetDropDownList

Примеры использования

<?
$rsInstalledModules = CModule::GetList();
while ($ar = $rsInstalledModules->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


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;
?>


CModule::IncludeModule

bool
CModule::IncludeModule(
 string module_id
)

Проверяет установлен ли модуль и если установлен, то подключает его (точнее подключает файл /bitrix/modules/ID модуля/include.php). Возвращает "true", если модуль установлен, иначе - "false".

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.

См. также

  • IsModuleInstalled
  • CModule::IsInstalled
  • Идентификаторы модулей

Примеры использования

<?
// проверим установлен ли модуль "Информационные блоки" и если да то подключим его
if (CModule::IncludeModule("iblock")):
    // здесь необходимо использовать функции модуля "Информационные блоки"
    ...
endif;
?>


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()

Удаляет регистрационную запись о модуле из базы данных.

Параметры функции

Без параметров.

См. также

  • 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


COption::GetOptionInt

int
COption::GetOptionInt(
 string module_id,
 string option_id,
 mixed default_value = false,
 string site_id = false
)

Возвращает числовое значение параметра option_id, принадлежащего модулю module_id. Если не установлен параметр site_id то делается попытка найти числовой параметр option_id, принадлежащий модулю module_id для текущего сайта. Если такого параметра нет, возвращается параметр, общий для всех сайтов.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
option_id | Идентификатор параметра.
default_value | Значение по умолчанию. Если default_value не задан, то значение для default_value будет браться из массива с именем ${module_id."_default_option"} заданного в файле /bitrix/modules/module_id/default_option.php.
site_id | Идентификатор сайта для которого будут возвращены параметры. Необязательный. По умолчанию - false (для текущего сайта или если не установлены то общие для всех сайтов)

См. также

  • Параметры модуля
  • Настройки главного модуля
  • COption::GetOptionString

Примеры использования

<?
// получим поле "Ответственный по умолчанию"
// из настроек модуля "Техподдержка"
$RESPONSIBLE_USER_ID = COption::GetOptionInt("support", "DEFAULT_RESPONSIBLE_ID"));
?>


COption::GetOptionString

string
COption::GetOptionString(
 string module_id,
 string option_id,
 mixed default_value = false
 string site_id = false
)

Возвращает строковое значение параметра option_id, принадлежащего модулю module_id. Если не установлен параметр site_id то делается попытка найти числовой параметр option_id, принадлежащий модулю module_id для текущего сайта. Если такого параметра нет, возвращается параметр, общий для всех сайтов.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
option_id | Идентификатор параметра.
default_value | Значение по умолчанию. Если default_value не задан, то значение для default_value будет браться из массива с именем ${module_id."_default_option"} заданного в файле /bitrix/modules/module_id/default_option.php.
site_id | Идентификатор сайта для которого будут возвращены параметры. Необязательный. По умолчанию - false (для текущего сайта или если не установлены то общие для всех сайтов)

См. также

  • Параметры модуля
  • Настройки главного модуля
  • COption::GetOptionInt

Примеры использования

<?
// получим поле "При регистрации добавлять в группу"
// из настроек главного модуля
$default_group = COption::GetOptionString("main", "new_user_registration_def_group", "2");
if($default_group!="")
    $arrGroups = explode(",",$default_group);
?>


COption::RemoveOption

bool
COption::RemoveOption(
 string module_id,
 string option_id = "",
 string site_id = false
)

Удаляет значение одного (option_id) или всех параметров модуля module_id из базы. Если не установлен параметр site_id то делается попытка найти числовой параметр option_id, принадлежащий модулю module_id для текущего сайта. Если такого параметра нет, возвращается параметр, общий для всех сайтов.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
option_id | Идентификатор параметра. Необязательный. По умолчанию - "" (удалить все значения параметров модуля).
site_id | Идентификатор сайта для которого будут возвращены параметры. Необязательный. По умолчанию - false (для текущего сайта или если не установлены то общие для всех сайтов)

См. также

  • Параметры модуля
  • Настройки главного модуля

Примеры использования

<?
// удалим значение параметра "Количество результатов на одной странице"
// для модуля "Веб-формы" из базы
COption::RemoveOption("form", "RESULTS_PAGEN");
?>


COption::SetOptionInt

bool
COption::SetOptionInt(
 string module_id,
 string option_id,
 mixed value = "",
 mixed description = false,
 string site_id = false
)

Устанавливает числовое значение параметра option_id для модуля module_id. Если указан site_id, параметр установится только для этого сайта и не будет влиять на аналогичный параметр другого сайта. Возвращает "true", если операция прошла успешна, в противном случае - "false".

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
option_id | Идентификатор параметра.
value | Значение параметра. Необязательный. По умолчанию - "".
description | Описание параметра. Необязательный. По умолчанию - "false" (описание отсутствует).
site_id | Идентификатор сайта, для которого устанавливается параметр. Необязательный. По умолчанию - false (общий для всех сайтов параметр).

См. также

  • Параметры модуля
  • Настройки главного модуля
  • COption::SetOptionString

Примеры использования

<?
// установим значение для поля
// "Количество дополнительных параметров меню"
// из настроек модуля "Управление структурой сайта"
COption::SetOptionInt("fileman", "num_menu_param", 2);
?>


COption::SetOptionString

bool
COption::SetOptionString(
 string module_id,
 string option_id,
 string value = "",
 mixed description = false,
 string site_id = false
)

Устанавливает строковое значение параметра option_id для модуля module_id. Если указан site_id, параметр установится только для этого сайта и не будет влиять на аналогичный параметр другого сайта. Возвращает "true", если операция прошла успешна, в противном случае - "false".

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
option_id | Идентификатор параметра.
value | Значение параметра. Необязательный. По умолчанию - "".
description | Описание параметра. Необязательный. По умолчанию - "false" (описание отсутствует).
site_id | Идентификатор сайта, для которого устанавливается параметр. Необязательный. По умолчанию - false (общий для всех сайтов параметр).

См. также

  • Параметры модуля
  • Настройки главного модуля
  • COption::SetOptionInt

Примеры использования

<?
// установим значение для поля
// "E-Mail администратора сайта (отправитель по умолчанию)"
// из настроек главного модуля
COption::SetOptionString("main","email_from","admin@site.com");
?>


CPageCache

CPageCache - класс для кеширования HTML результата выполнения скрипта.

Методы класса

Метод | Описание
StartDataCache | Инициализирует механизм кеширования и начинает буферизацию или выводит содержимое из кеша.
EndDataCache | Сохраняет буферизированный HTML в файле кеша.
InitCache | Инициализирует механизм кеширования.
Output | Выводит сохраненный в кеше HTML результат.
IsCacheExpired | Проверяет истек ли период жизни кэша.

См. также

  • Кеширование
  • Класс CPHPCache
  • Специальный параметры


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;
?>


CPageCache::InitCache

bool
CPageCache::InitCache(
 int cache_life_time,
 string cache_id,
 mixed init_dir = false
)

Инициализирует ряд свойств объекта класса CPageCache. Если файл кеша отсутствует или истек период его жизни, то функция вернет "false", в противном случае функция вернет "true".

Параметры функции

Параметр | Описание
cache_life_time | Время жизни кеша в секундах.
cache_id | Уникальный идентификатор кэша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кэшируемого кода.
init_dir | Имя каталога на сайте для которого кэш будет действительным. Если значение - "/", то кэш будет действительным для всех каталогов сайта. Необязательный. По умолчанию - текущий каталог.

См. также

  • Кеширование
  • CPageCache::Output
  • CDBResult::NavStringForCache


CPageCache::IsCacheExpired

bool
CPageCache::IsCacheExpired(
 string full_path
)

Проверяет не истек ли период жизни кеша. Функция как правило используется для удаления файлов кеша, период жизни которых истек.

Файл кеша создаваемый функциями класса CPageCache имеет расширение ".html"

Параметры функции

Параметр | Описание
full_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);
        }
    }
}
?>


CPageCache::Output

CPageCache::Output()

Выводит содержимое кеша. HTML-содержимое кэша доступно, только если файл кеша существует и предварительно был вызван метод CPageCache::InitCache или CPageCache::StartDataCache.

Параметры функции

Без параметров.

См. также

  • Кеширование
  • CPageCache::InitCache
  • CPageCache::StartDataCache


CPageCache::StartDataCache

bool
CPageCache::StartDataCache(
 int cache_life_time,
 string cache_id,
 mixed init_dir = false
)

Начинает буферизацию выводимого HTML, либо выводит содержимое кеша если он ещё не истек. Если файл кеша истек, то функция возвращает "true", в противном случае - "false".

Параметры функции

Параметр | Описание
cache_life_time | Время жизни кеша в секундах.
cache_id | Уникальный идентификатор кеша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кэшируемого кода.
init_dir | Имя каталога на сайте для которого кеш будет действительным. Если значение - "/", то кеш будет действительным для всех каталогов сайта. Необязательный. По умолчанию - текущий каталог.

См. также

  • Кеширование
  • 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 - класс для работы с параметрами страницы.

Методы класса

Метод | Описание
GetOptionString | Возвращает строковое значение параметра страницы.
SetOptionString | Устанавливает строковое значение параметра страницы.
GetOptionInt | Возвращает числовое значение параметра страницы.
SetOptionInt | Устанавливает числовое значение параметра страницы.
RemoveOption | Удаляет параметр страницы.

См. также

  • Параметры страницы
  • Класс COption


CPageOption::GetOptionInt

int
CPageOption::GetOptionInt(
 string module_id,
 string page_option_id,
 mixed default_value = false
)

Возвращает числовое значение параметра page_option_id, принадлежащего модулю module_id.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
page_option_id | Произвольный идентификатор параметра страницы.
default_value | Значение по умолчанию.

См. также

  • Параметры страницы
  • CPageOption::GetOptionString

Примеры использования

<?
$my_parameter = CPageOption::GetOptionInt("main", "MY_PARAMETER", 21);
?>


CPageOption::GetOptionString

string
CPageOption::GetOptionString(
 string module_id,
 string page_option_id,
 mixed default_value = false
)

Возвращает строковое значение параметра page_option_id, принадлежащего модулю module_id.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
page_option_id | Произвольный идентификатор параметра страницы.
default_value | Значение по умолчанию.

См. также

  • Параметры страницы
  • CPageOption::GetOptionInt

Примеры использования

<?
$my_parameter = CPageOption::GetOptionString("main", "MY_PARAMETER", "Y");
?>


CPageOption::RemoveOption

bool
CPageOption::RemoveOption(
 string module_id,
 string page_option_id = ""
)

Удаляет значение одного (page_option_id) или всех параметров модуля module_id для данной страницы.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
page_option_id | Произвольный идентификатор параметра страницы. Необязательный. По умолчанию - "" (удалить все значения параметров страницы для модуля module_id).

См. также

  • Параметры страницы

Примеры использования

<?
// удалим значение параметра MY_PARAMETER для текущей страницы
CPageOption::RemoveOption("main", "MY_PARAMETER");
?>


CPageOption::SetOptionInt

bool
CPageOption::SetOptionInt(
 string module_id,
 string page_option_id,
 mixed value = ""
)

Устанавливает числовое значение параметра page_option_id для модуля module_id. Возвращает "true", если операция прошла успешна, в противном случае - "false".

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
page_option_id | Произвольный идентификатор параметра страницы.
value | Значение параметра. Необязательный. По умолчанию - "".

См. также

  • Параметры страницы
  • CPageOption::SetOptionString

Примеры использования

<?
CPageOption::SetOptionInt("main", "MY_PARAMETER", 2);
?>


CPageOption::SetOptionString

bool
CPageOption::SetOptionString(
 string module_id,
 string page_option_id,
 string value = ""
)

Устанавливает строковое значение параметра page_option_id для модуля module_id. Возвращает "true", если операция прошла успешна, в противном случае - "false".

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
page_option_id | Произвольный идентификатор параметра страницы.
value | Значение параметра. Необязательный. По умолчанию - "".

См. также

  • Параметры страницы
  • CPageOption::SetOptionInt

Примеры использования

<?
// Пример запрещает сохранение в сессии номера последней страницы
// при стандартной постраничной навигации.
// По умолчанию в сессии запоминается последняя открытая страница постраничной навигации.
// Если вы хотите изменить такое поведение для данной текущей страницы,
// то до вызова функции CDBResult::NavPrint необходимо воспользоваться следующим кодом:
CPageOption::SetOptionString("main", "nav_page_in_session", "N");

// Для того чтобы вернуть режим по умолчанию:
CPageOption::SetOptionString("main", "nav_page_in_session", "Y");
?>


CPHPCache

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CPHPCache

CPHPCache - класс для кеширования PHP переменных и HTML результата выполнения скрипта.

Методы класса

Метод | Описание
StartDataCache | Инициализирует механизм кеширования и начинает буферизацию или выводит содержимое из кеша.
EndDataCache | Сохраняет буферизированный HTML и PHP переменные файле кеша.
InitCache | Инициализирует механизм кеширования.
GetVars | Возвращает сохраненные в кеше PHP переменные.
Output | Выводит сохраненный в кеше HTML результат.
IsCacheExpired | Проверяет истек ли период жизни кэша.

Дополнительно

  • Кеширование
  • Класс CPageCache
  • Специальный параметры
    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


CPHPCache::EndDataCache

CPHPCache::EndDataCache(
 mixed vars = false
)

Выводит буферизированный HTML и сохраняет его на диске вместе с заданным массивом переменных в файл кэша.

Параметры функции

Параметр Описание
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;
?>


CPHPCache::GetVars

array
CPHPCache::GetVars()

Возвращает PHP переменные сохраненные в кэше.

Параметры функции

Без параметров.

См. также

  • Кеширование
  • 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;
?>


CPHPCache::InitCache

bool
CPHPCache::InitCache(
 int cache_life_time,
 string cache_id,
 mixed init_dir = false
)

Инициализирует ряд свойств объекта класса CPHPCache. Если файл кеша отсутствует или истек период его жизни, то функция вернет "false", в противном случае функция вернет "true".

Параметры функции

Параметр | Описание
cache_life_time | Время жизни кеша в секундах.
cache_id | Уникальный идентификатор кэша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кэшируемого кода.
init_dir | Имя каталога на сайте для которого кэш будет действительным. Если значение - "/", то кэш будет действительным для всех каталогов сайта. Необязательный. По умолчанию - текущий каталог.

См. также

  • Кеширование
  • 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;
?>


CPHPCache::IsCacheExpired

bool
CPHPCache::IsCacheExpired(
 string full_path
)

Проверяет не истек ли период жизни кэша. Функция как правило используется для удаления файлов кэша, период жизни которых истек.

Файл кэша создаваемый функциями класса CPHPCache имеет расширение ".php"

Параметры функции

Параметр | Описание
full_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);
        }
    }
}
?>


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;
?>


CPHPCache::StartDataCache

bool
CPHPCache::StartDataCache(
 int cache_life_time = false,
 string cache_id = false,
 mixed init_dir = false,
 array vars = array()
)

Начинает буферизацию выводимого HTML, либо выводит содержимое кеша если он ещё не истек. Если файл кеша истек, то функция возвращает "true", в противном случае - "false".

Параметры функции

Параметр Описание
cache_life_time Время жизни кеша в секундах.
Необязательный. По умолчанию - время жизни кеша предварительно заданное в функции InitCache.
cache_id Уникальный идентификатор кеша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кешируемого кода.
Необязательный. По умолчанию - уникальный идентификатор кеша предварительно заданный в функции CPHPCache::InitCache.
init_dir Имя каталога на сайте для которого кеш будет действительным. Если значение - "/", то кеш будет действительным для всех каталогов сайта.
Необязательный. По умолчанию - имя каталога предварительно заданное в функции CPHPCache::InitCache.
vars Массив переменных, которые необходимо закешировать, вида:
array(
 "ИМЯ ПЕРЕМЕННОЙ 1" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 1",
 "ИМЯ ПЕРЕМЕННОЙ 2" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 2",
 ...)
Непосредственно запись переменных в файл кеша осуществляется функцией CPHPCache::EndDataCache.
Необязательный. По умолчанию - пустой массив.

См. также

  • Кеширование
  • 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;
?>


CSite

CSite - класс для работы с сайтами.

Поля

Поле | Тип | Описание
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) | Полное название сайта.
EMAIL | varchar (255) | E-Mail адрес по умолчанию.

Методы класса

Метод | Описание
GetList | Получает список сайтов.
GetByID | Получает данные об одном сайте.
GetDateFormat | Возвращает формат даты для языка сайта.
Add | Добавляет новый сайт.
Update | Изменяет существующий сайт.
Delete | Удаляет сайт.

См. также

  • Сайты


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;
?>


CSite::Delete

mixed
CSite::Delete(
 string id
)

Функция удаляет сайт. Если удаление успешно, то возвращает объект CDBResult, иначе "false".

Параметры функции

Параметр | Описание
id | ID удаляемого сайта.

См. также

  • CSite::Add
  • CSite::Update
  • Событие "OnBeforeSiteDelete"
  • Событие "OnSiteDelete"

Примеры использования

<?
if (CSite::Delete("ru")===false)
  echo "Сайт удалить нельзя т.к. найдены связанные записи.";
?>


CSite::GetByID

CDBResult
CSite::GetByID(
 string id
)

Возвращает информацию по сайту в виде объекта класса CDBResult.

Параметры функции

Параметр | Описание
id | ID сайта.

См. также

  • Поля CSite
  • Класс CDBResult
  • CSite::GetList

Примеры использования

<?
$rsSites = CSite::GetByID("ru");
$arSite = $rsSites->Fetch();
echo "<pre>"; print_r($arSite); echo "</pre>";
?>


CSite::GetDateFormat

string
CSite::GetDateFormat(
  string format_type = "FULL",
  mixed site_id = false
)

Возвращает формат даты (времени) сайта.

Параметры функции

Параметр Описание
format_type Тип формата. Допустимы следующие значения:
  • FULL - для дата-время
  • SHORT - для даты
Необязательный. По умолчанию "FULL".
site_id ID сайта.
Необязательный. По умолчанию используется ID текущего сайта.

См. также

  • Методы класса CDataBase для работы с датой и временем
  • Функции для работы с датой и временем

Примеры использования

<?
// выводит текущую дату в формате текущего сайта
echo date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), time());
?>


CSite::GetList

CDBResult
CSite::GetList(
 string &by = "sort",
 string &order = "asc",
 array filter = array()
)

Возвращает список сайтов в виде объекта класса CDBResult.

Параметры функции

Параметр Описание
by По какому полю сортируем. Допустимы следующие значения:
  • id - по ID сайта
  • active - по флагу активности
  • name - по краткому названию сайта
  • dir - по каталогу от которого начинается содержимое сайта
  • lendir - по длине имени каталога от которого начинается содержимое сайта
  • def - по флагу "Сайт по умолчанию"
  • sort - по индексу сортировки
Параметр необязательный. По умолчанию - "sort".
оrder Порядок сортировки. Допустимы следующие значения:
  • asc - по возрастанию
  • desc - по убыванию
Параметр необязательный. По умолчанию - "asc".
filter Массив вида array("фильтруемое поле"=>"значение" [, ...]). "Фильтруемое поле" может принимать следующие значения:
  • ID - ID сайта
  • NAME - поле "Название" из настроек сайта
  • DOMAIN - поле "Доменное имя" из настроек сайта
  • IN_DIR - префикс для поля "Папка сайта" из настроек сайта
  • LANGUAGE_ID - двухсимвольный ID языка сайта
  • ACTIVE - флаг активности (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>";
}
?>


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;
?>


CUser

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CUser

CUser - класс для работы с пользователями.

При запуске каждой страницы автоматически создаётся объект этого класса $USER - данные о текущем пользователе.

Поля

Поле | Тип | Описание
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) | Фамилия.
EMAIL | varchar (255) | E-mail адрес.
LAST_LOGIN | datetime | Дата последней авторизации.
DATE_REGISTER | datetime | Дата регистрации.
LID | char (2) | ID сайта по умолчанию для уведомлений.
ADMIN_NOTES | varchar (2000) | Заметки администратора.
EXTERNAL_AUTH_ID | varchar (255) | Код источника внешней авторизации
Личные данные:
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 | Возвращает пользователя по его логину.
GetUserGroup | Возвращает ID всех групп, которым принадлежит пользователь.
Add | Создает нового пользователя.
Update | Изменяет параметры пользователя.
Delete | Удаляет пользователя.
GetID | Возвращает ID текущего авторизованного пользователя.
GetLogin | Возвращает логин текущего авторизованного пользователя.
GetEmail | Возвращает E-Mail текущего авторизованного пользователя.
GetFullName | Возвращает имя и фамилию текущего авторизованного пользователя.
GetFirstName | Возвращает имя текущего авторизованного пользователя.
GetLastName | Возвращает фамилию текущего авторизованного пользователя.
GetParam | Возвращает один из параметров пользователя.
GetUserGroupArray | Возвращает ID всех групп которым принадлежит текущий пользователь.
GetUserGroupString | Возвращает строку с перечисленными группами пользователя.
IsAdmin | Проверяет принадлежность пользователя группе администраторов.
IsAuthorized | Проверяет авторизован ли пользователь.
Login | Авторизует пользователя по введенному логину.
LoginByHash | Авторизует пользователя по хранимому в куках хэшу.
SavePasswordHash | Сохраняет специальный хэш в куках пользователя в целях дальнейшей автоматической авторизации.
GetPasswordHash | Возвращает специальный хэш от пароля пользователя который может быть использован в функциях LoginByHash и SavePasswordHash.
Authorize | Непосредственно осуществляет процесс авторизации пользователя. Инициализирует необходимые сессионные переменные и переменные объекта класса CUser.
Logout | Заканчивает сеанс авторизации пользователя.
Register | Создает нового пользователя, авторизует его и отсылает письмо по шаблону типа NEW_USER.
SimpleRegister | Создает нового пользователя с генерацией логина и пароля, затем авторизует его. На вход функции поступает только E-Mail.
ChangePassword | Изменяет пароль пользователя.
SendPassword | Создает почтовое событие для отправки пользователю сообщения для смены пароля.
SendUserInfo | Создает почтовое событие для отправки пользователю сообщения с его параметрами.
GetCount | Возвращает количество пользователей в базе.


CUser::SendPassword

array
CUser::SendPassword(
 string login,
 string email,
 string site_id = SITE_ID
)

Отсылает пользователю почтовое сообщение с контрольной строкой для смены пароля. Сообщение отсылается по шаблону типа USER_INFO. Пользователь определяется по логину login или E-Mail адресу - параметр email. Возвращает массив с сообщением о результате выполнения (массив может быть обработан функцией ShowMessage).

Параметры функции

Параметр | Описание
login | Логин пользователя.
email | E-Mail адрес пользователя.
site_id | ID сайта почтового шаблона типа USER_INFO. Необязательный. По умолчанию - текущий сайт.

См. также

  • CUser::SendUserInfo
  • CUser::ChangePassword

Примеры использования

<?
global $USER;
$arResult = $USER->SendPassword($USER->GetLogin(), $USER->GetParam("EMAIL"));
if($arResult["TYPE"] == "OK") echo "Контрольная строка для смены пароля выслана.";
else echo "Введенные логин (email) не найдены.";
?>


CUser::SendUserInfo

CUser::SendUserInfo(
 int user_id,
 string site_id,
 string message
)

Отсылает почтовое сообщение с параметрами пользователя по шаблону типа USER_INFO.

Параметры функции

Параметр | Описание
user_id | ID пользователя.
site_id | ID сайта почтового шаблона.
message | Произвольный текст сообщения (#MESSAGE#).

См. также

  • SendPassword

Примеры использования

<?
$USER_ID = 1;
// отсылаем почтовое сообщение пользователю с ID=1,
// по шаблону привязанному к текущему сайту
CUser::SendUserInfo($USER_ID, SITE_ID, "Приветствуем Вас как нового пользователя нашего сайта!");
?>


CUser::SetParam

CUser::SetParam(
 string param_name,
 mixed param_value
)

Метод устанавливает произвольный параметр пользователя param_name для хранения в сессии авторизации (как правило вызывается для объекта $USER). Получить значение установленного параметра можно методом CUser::GetParam.

Параметры функции

Параметр | Описание
param_name | Произвольный параметр.
param_value | Значение параметра.

См. также

  • CUser::GetParam

Примеры использования

<?
global $USER;
$USER->SetParam("IP_LOGIN", $_SERVER['REMOTE_ADDR']);
?>


SetUserGroup

1С-Битрикс: Управление сайтом Отправить отзыв

CUser::SetUserGroup

CUser::SetUserGroup(
   int user_id,
   array groups
);

Метод устанавливает привязку пользователя user_id к группам groups. Привязка к группам сохраняется в базе данных, но не влияет на уже авторизованного посетителя user_id.

Параметры функции

Параметр | Описание
user_id | Идентификаторр пользователя.
groups | Массив со значениями идентификаторов групп пользователей.

См. также

  • CUser::GetUserGroup

Примеры использования

<?
// привязка пользователя с кодом 10 дополнительно к группе c кодом 5
$arGroups = СUser::GetUserGroup(10);
$arGroups[] = 5;
CUser::SetUserGroup(10, $arGroups);
?>


SetUserGroupArray

1С-Битрикс: Управление сайтом Отправить отзыв

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);
?>


CUser::SimpleRegister

array
CUser::SimpleRegister(
 string email,
 string site_id = SITE_ID
)

Создает нового пользователя предварительно сгенерировав случайный логин и пароль. Возвращает массив с сообщением о результате выполнения (массив может быть обработан функцией ShowMessage).

Функция может использоваться только в публичной части сайта!

Параметры функции

Параметр | Описание
email | E-Mail нового пользователя (не менее 3-х символов). E-Mail будет проверен функцией check_email.
site_id | ID сайта почтового шаблона для отсылки уведомлений (NEW_USER, USER_INFO и др.). Необязательный. По умолчанию - текущий сайт.

См. также

  • CUser::Register
  • CUser::Login
  • CUser::Add
  • CUser::Authorize
  • Событие "OnAfterUserSimpleRegister"
  • Событие "OnBeforeUserSimpleRegister"

Примеры использования

<?
global $USER;
$arResult = $USER->SimpleRegister("admin@mysite.ru");
ShowMessage($arResult); // выводим результат в виде сообщения
echo $USER->GetID(); // ID нового пользователя
?>


CUser::Update

bool
CUser::Update(
 int id,
 array fields
)

Функция изменяет параметры пользователя с идентификатором id. Возвращает "true", если изменение прошло успешно, при возникновении ошибки функция вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Параметры функции

Параметр | Описание
id | ID пользователя.
fields | Массив значений полей вида array("поле"=>"значение" [, ...]). В качестве полей могут быть использованы все поля CUser, а также GROUP_ID - массив с ID групп пользователей, в которые входит этот пользователь.

См. также

  • Поля 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;
?>


CUser::Add

mixed
CUser::Add(
 array fields
)

Функция добавляет нового пользователя. При успешном выполнении возвращает ID нового пользователя, в противном случае - вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

CUser::Add() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CUser.

Параметры функции

fields Массив значений полей, в качестве ключей данного массива допустимо использовать:
  • LOGIN* - логин (имя входа)
  • NAME - имя пользователя
  • LAST_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 - код источника внешней авторизации
  • 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 - личные заметки
  • 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(1,2),
  "PASSWORD"          => "123456",
  "CONFIRM_PASSWORD"  => "123456",
  "PERSONAL_PHOTO"    => $arIMAGE
);

$ID = $user->Add($arFields);
if (intval($ID) > 0)
    echo "Пользователь успешно добавлен.";
else
    echo $user->LAST_ERROR;
?>


CUser::Authorize

bool
CUser::Authorize(
 int user_id
)

Функция непосредственно осуществляет процесс авторизации пользователя. Инициализирует необходимые сессионные переменные и переменные объекта класса CUser. Если авторизация успешна, то возвращает "true", иначе - "false".

Параметры функции

Параметр | Описание
user_id | ID пользователя.

См. также

  • 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()); // авторизуем
?>


CUser::ChangePassword

array
CUser::ChangePassword(
 string login,
 string checkword,
 string new_password,
 string new_password_confirmation,
 string site_id = SITE_ID
)

Изменяет пароль пользователя, затем вызывает на исполнение функцию CUser::SendUserInfo, которая в свою очередь отсылает почтовое сообщение по шаблону типа USER_INFO. Возвращает массив с сообщением о результате выполнения (массив может быть обработан функцией ShowMessage).

Параметры функции

Параметр | Описание
login | Логин пользователя.
checkword | Контрольная строка для смены пароля.
new_password | Новый пароль.
new_password_confirmation | Подтверждение пароля (для успешной смены пароля он должен совпадать с new_password).
site_id | ID сайта почтового шаблона типа USER_INFO для отсылки уведомления. Необязательный. По умолчанию - текущий сайт.

См. также

  • CUser::SendPassword
  • CUser::SendUserInfo
  • CUser::Update

Примеры использования

<?
global $USER;
$arResult = $USER->ChangePassword("admin", "WRD45GT", "123456", "123456");
if($arResult["TYPE"] == "OK") echo "Пароль успешно сменен.";
else ShowMessage($arResult);
?>


CUser::Delete

CDBResult
CUser::Delete(
 int id
)

Функция удаляет пользователя. Возвращается объект CDBResult.

Параметры функции

Параметр | Описание
id | ID пользователя.

См. также

  • CUser::Add
  • CUser::Update
  • Событие "OnBeforeUserDelete"
  • Событие "OnUserDelete"

Примеры использования

<?
if (CUser::Delete(1)) echo "Пользователь удален.";
?>


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>";
?>


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>";
?>


CUser::GetCount

int
CUser::GetCount()

Возвращает количество всех пользователей зарегистрированных на сайте.

Параметры функции

Без параметров.

Примеры использования

<?
echo "На сегодняшний день у нас зарегистрировалось пользователей: ".CUser::GetCount();
?>


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();
?>


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?>


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->Login().") ".$USER->GetFirstName()." ".$USER->GetLastName();
?>


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->Login().") ".$USER->GetFullName();
?>


CUser::GetID

int
CUser::GetID()

Возвращает ID текущего авторизованного пользователя (как правило вызывается с объекта $USER).

Параметры функции

Без параметров.

См. также

  • Поля 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();
?>


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->Login().") ".$USER->GetFirstName()." ".$USER->GetLastName();
?>


CUser::GetList

CDBResult
CUser::GetList(
 string &by = "timestamp_x",
 string &order = "desc",
 array filter
)

Возвращает список пользователей в виде объекта класса CDBResult.

Параметры функции

Параметр Описание
by ссылка на переменную с полем для сортировки, может принимать значения:
  • id - ID пользователя
  • active - активность
  • last_login - дата последней авторизации
  • login - имя входа
  • email - E-Mail адрес
  • name - имя
  • 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 - комментарий администратора
оrder Ссылка на переменную с порядком сортировки
может принимать значения
  • asc - по возрастанию
  • desc - по убыванию
filter Массив для фильтрации пользователей. В массиве допустимы следующие индексы:
  • 1ID - по ID пользователя
  • TIMESTAMP_1 - дата изменения профайла пользователя "с"
  • TIMESTAMP_2 - дата изменения профайла пользователя "по"
  • LAST_LOGIN_1 - дата последнего логина пользователя "с"
  • LAST_LOGIN_2 - дата последнего логина пользователя "по"
  • ACTIVE - фильтр по активности (Y|N)
  • 1LOGIN_EQUAL - по имени входа (ищет прямое совпадение с логином)
  • 1LOGIN - по имени входа (ищет подстроку в логине)
  • 1NAME - по имени и фамилии
  • 1EMAIL - по E-Mail адресу
  • 1COUNTRY_ID - по коду страны
  • 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 - в данных полях допускается сложная логика
* - поиск по "KEYWORDS" по сути является поиском по полям отмеченных символом "*"

См. также

  • Поля CUser
  • CUser::GetByID
  • CUser::GetByLogin

Примеры использования

<?
$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;
?>


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();
?>


CUser::GetParam

mixed
CUser::GetParam(
 string param_name
)

Возвращает один из параметров пользователя хранимых в сессии авторизации (как правило вызывается с объекта $USER).

Параметры функции

param_name Название параметра. Возможны следующие значения:
  • AUTHORIZED - если пользователь авторизован, то "Y"
  • USER_ID - ID пользователя
  • LOGIN - логин
  • EMAIL - E-mail
  • NAME - полное имя
  • GROUPS - массив групп, которым принадлежит пользователь
  • ADMIN - true, если пользователь принадлежит группе администраторов
  • PASSWORD_HASH - хэш от пароля пользователя (md5)
  • FIRST_NAME - имя пользователя
  • LAST_NAME - фамилия пользователя

См. также

  • Поля 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");
?>


CUser::GetPasswordHash

string
CUser::GetPasswordHash(
 string password_md5
)

Возвращает специальный хэш от пароля пользователя который может быть использован в функциях LoginByHash и SavePasswordHash.

Параметры функции

Параметр | Описание
password_md5 | Хэш (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, "/");
}
?>


CUser::GetUserGroup

array
CUser::GetUserGroup(
 int id
)

Возвращает массив ID групп, которым принадлежит пользователь с кодом id.

Параметры функции

Параметр | Описание
id | ID пользователя.

См. также

  • Класс CGroup
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

Примеры использования

<?
// получим массив групп пользователя ID=12
$arGroups = CUser::GetUserGroup(12);
echo "<pre>"; print_r($arGroups); echo "</pre>";
?>


CUser::GetUserGroupArray

array
CUser::GetUserGroupArray()

Метод возвращает ID групп которым принадлежит текущий авторизованный пользователь (как правило вызывается с объекта $USER).

Параметры функции

Без параметров.

См. также

  • Класс CGroup
  • CUser::GetUserGroupString
  • CUser::GetUserGroup

Примеры использования

<?
// получим массив групп текущего пользователя
global $USER;
$arGroups = $USER->GetUserGroupArray();
echo "<pre>"; print_r($arGroups); echo "</pre>";
?>


CUser::GetUserGroupString

string
CUser::GetUserGroupString()

Метод возвращает строку c перечисленными через запятую ID всех групп которым принадлежит текущий авторизованный пользователь (как правило вызывается с объекта $USER).

Параметры функции

Без параметров.

См. также

  • Класс CGroup
  • CUser::GetUserGroupArray
  • CUser::GetUserGroup

Примеры использования

<?
// получим массив групп текущего пользователя
global $USER;
$strGroups = $USER->GetUserGroupString();
echo $strGroups; // "1,2,3"
?>


CUser::IsAdmin

bool
CUser::IsAdmin()

Проверяет принадлежность текущего авторизованного пользователя группе администраторов (как правило вызывается с объекта $USER). Возращает "true" - если пользователь принадлежит группе администраторов, в противном случае вернет "false".

Параметры функции

Без параметров.

См. также

  • CUser::IsAuthorized
  • CUser::GetParam

Примеры использования

<?
global $USER;
if ($USER->IsAdmin()) echo "Вы администратор!";
?>


CUser::IsAuthorized

bool
CUser::IsAuthorized()

Проверяет авторизован ли посетитель сайта (как правило вызывается с объекта $USER). Возвращает "true" если посетитель авторизован, иначе "false".

Параметры функции

Без параметров.

См. также

  • CUser::Authorize
  • CUser::Login
  • CUser::LoginByHash
  • CUser::IsAdmin

Примеры использования

<?
global $USER;
if ($USER->IsAuthorized()) echo "Вы авторизованы!";
?>


CUser::Login

mixed
CUser::Login(
 string login,
 string password,
 string set_auth_cookie = "N",
 string convert_password_to_md5 = "Y"
)

Функция проверяет логин и пароль и если они корректные, то авторизует пользователя. Если авторизация успешная, то возвращает "true", иначе если логин и пароль некорректные, то возвращает массив с ошибкой для функции ShowMessage.

Параметры функции

Параметр | Описание
login | Логин пользователя.
password | Пароль. Если параметр convert_password_to_md5 = "Y", то в данном параметре необходимо передавать оригинальный пароль, в противном случае необходимо передавать md5 от оригинального пароля.
set_auth_cookie | Если значение равно "Y", то авторизация пользователя будет сохранена в куках (при следующем заходе посетитель будет автоматически авторизован), в противном случае - авторизация не будет сохранена в куках. В куках сохраняется специальный хэш получаемый с помощью функции CUser::GetPasswordHash. Затем когда посетитель снова приходит на сайт, система его автоматически авторизует используя функцию CUser::LoginByHash Необязательный. По умолчанию "N".
convert_password_to_md5 | Если значение равно "Y", то это означает что password ещё не сконвертирован в MD5 (т.е. в параметре password передается реальный пароль вводимый пользователем с клавиатуры), если значение равно "N", то это означает что password уже сконвертирован в MD5. Для текущего авторизованного пользователя MD5 от реального пароля можно получить с помощью функции $USER->GetParam("PASSWORD_HASH"). Для произвольного пользователя MD5 от пароля можно получить с помомщью функции CUser::GetByID (поле "PASSWORD"). Необязательный. По умолчанию "Y".

См. также

  • 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;
?>

<?
global $USER;
if (!is_object($USER)) $USER = new CUser;
$arAuthResult = $USER->Login("admin", md5("123456"), "Y", "N");
$APPLICATION->arAuthResult = $arAuthResult;
?>


CUser::LoginByHash

mixed
CUser::LoginByHash(
 string login,
 string cookie_hash
)

Функция проверяет логин и специальный хэш от пароля, который можно получить с помощью функции CUser::GetPasswordHash и если они корректные, то авторизует пользователя. Если авторизация успешная, то возвращает "true", иначе возвращает массив с ошибкой для функции ShowMessage.

Параметры функции

Параметр | Описание
login | Логин пользователя.
cookie_hash | Специальный хэш от пароля пользователя, получаемый с помощью функции CUser::GetPasswordHash. Данный хэш хранится в куках пользователя.

См. также

  • CUser::SavePasswordHash
  • CUser::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);
?>


CUser::Logout

CUser::Logout()

Заканчивает сеанс авторизации пользователя, при этом удаляются те куки пользователя которые используются при автоматической авторизации.

Параметры функции

Без параметров.

См. также

  • CUser::Login
  • CUser::Authorize
  • Событие "OnBeforeUserLogout"
  • Событие "OnAfterUserLogout"

Примеры использования

<?
$USER->Logout();
?>


CUser::Register

array
CUser::Register(
 string login,
 string first_name,
 string last_name,
 string password,
 string password_confirmation,
 string email,
 string site_id = SITE_ID
)

Регистрирует нового пользователя, авторизует его и отсылает письмо по шаблону типа NEW_USER. Возвращает массив с сообщением о результате выполнения (массив может быть обработан функцией ShowMessage).

Функция может использоваться только в публичной части сайта!

Параметры функции

Параметр | Описание
login | Логин нового пользователя (не менее 3-х символов).
first_name | Имя нового пользователя (может быть пустым).
last_name | Фамилия нового пользователя (может быть пустым).
password | Пароль (не менее 3-х символов).
password_confirmation | Подтверждение пароля (для успешной регистрации должен совпадать с password).
email | E-Mail нового пользователя (не менее 3-х символов). E-Mail будет проверен функцией check_email.
site_id | ID сайта почтового шаблона для отсылки уведомлений (NEW_USER, USER_INFO и др.). Необязательный. По умолчанию - текущий сайт.

См. также

  • 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 нового пользователя
?>


CUser::SavePasswordHash

CUser::SavePasswordHash()

Сохраняет специальный хэш в куках пользователя в целях дальнейшей автоматической авторизации. Для разных сайтов на базе "Битрикс: Управление сайтом", функция всегда сохраняет свой уникальный хэш от одного и того же пароля. Таким образом достигается невозможность использовать одно и тоже значение для авторизации на различных сайтах.

Параметры функции

Нет параметров.

См. также

  • CUser::LoginByHash
  • CUser::GetPasswordHash

Примеры использования

<?
global $USER;
if ($USER->IsAuthorized()) $USER->SavePasswordHash();
?>


Функции, главный модуль

1С-Битрикс: Управление сайтом Отправить отзыв

Введение

При разработке сайта на базе системы "Битрикс: Управление сайтом" можно применять функции следующих групп:

  • Строки - функции для работы со строками и текстом.
  • Массивы - функции для работы с массивами.
  • Даты и время - функции для работы с датами, временем и календарем.
  • Файлы и каталоги - функции для работы с файловой системой сайта.
  • Элементы HTML - функции для автоматического построения элементов форм.
  • Фильтр и сортировка - функции для построения и работы с фильтрами и сортировками.
  • Модули - функции для работы с модульной системой сайта.
  • Языковые файлы - функции для локализации скриптов сайта (для показа сайта на разных языках).
  • Отладка - функции для облегчения отладки сайта.
  • Прочее - прочие функции.


Работа со строками

Функции для обработки строк и текста:

Метод | Описание
TxtToHTML | Конвертирует обычный текст в HTML-код форматирующий исходный текст.
HTMLToTxt | Преобразует исходный HTML-код в обычный текст путём удаления тегов или замены их на эквивалентное текстовое форматирование.
TruncateText | Отсекает от строки все символы свыше указанной длины. Если отсечение произошло, то к строке справа дописывается многоточие.
InsertSpaces | Разбивает длинные слова тексте. Возвращает текст в котором максимальная длина каждого слова не превышает заданной длины.
RandString | Возвращает строку указанной длины, состоящую из случайных символов.
ToUpper | Преобразует символы исходной строки в верхний регистр.
ToLower | Преобразует символы исходной строки в нижний регистр.
htmlspecialcharsEx | Переводит текст в HTML-безопасный вид, заменяя специальные символы их визуальным HTML представлением.
htmlspecialcharsBack | Переводит текст из HTML-безопасного вида в исходное представление.
utf8win1251 | Конвертирует строку из кодировки UTF-8 в Windows-1251.


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()
);

Преобразует исходный HTML-код в обычный текст путём удаления тегов или замены их на эквивалентное текстовое форматирование.

Параметры функции

Параметр | Описание
text | Исходный текст в формате HTML.
host | Web-адрес сайта. Если задан, то дописывается перед каждой ссылкой в HTML для формирования абсолютной ссылки. Необязательный параметр. По умолчанию равен - "".
delete | Массив шаблонов регулярных выражений, которые удаляются из текста. Необязательный параметр. По умолчанию - пустой массив.

См. также

  • 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 max_length = 80,
 string symbol = " "
);

Разбивает длинные слова тексте. Возвращает текст в котором максимальная длина каждого слова не превышает заданной длины.

Параметры функции

Параметр | Описание
text | Исходный текст.
max_length | Максимальное количество символов в слове. Более длинные слова разбиваются символом заданным в параметре symbol.
symbol | Символ которым будут разбиты слова длина которых превышает max_length.

См. также

  • TruncateText

Примеры использования

<?
$str = "1234567890 1234 123456";
echo InsertSpaces($str, 5);
// результатом будет строчка "12345 67890 1234 12345 6"
?>


RandString

string
RandString(
 int length = 10
);

Возвращает строку указанной длины, состоящую из случайных символов. Символами могут быть буквы английского алфавита и цифры. Функция может использоваться например, для генерации пароля.

Параметры функции

Параметр | Описание
length | Длина результирующей случайной строки.

Примеры использования

<?
$new_password = RandString(7);
echo "Новый пароль: ".$new_password;
// выводит строку "Новый пароль: fK4ftTP"
?>


ToLower

string
ToLower(
  string text
);

Преобразует символы исходной строки в нижний регистр. Данная функция, помимо символов других алфавитов, корректно конвертирует кириллические символы (русские символы) в нижний регистр.

Данную функцию можно использовать в случае если возникают проблемы с преобразованием кириллических символов стандартной PHP функцией strtolower. Иногда это происходит на некоторых хостингах.

Параметры функции

Параметр | Описание
text | Исходная строка.

См. также

  • ToUpper

Примеры использования

<?
$lower = ToLower("АБВГД ABCDEF");
echo "Нижний регистр: ".$lower;
// выводит строку "Нижний регистр: абвгд abcdef"
?>


ToUpper

string
ToUpper(
  string text
);

Преобразует символы исходной строки в верхний регистр. Данная функция, помимо символов других алфавитов, корректно конвертирует кириллические символы (русские символы) в верхний регистр.

Данную функцию можно использовать в случае если возникают проблемы с преобразованием кириллических символов стандартной PHP функцией strtoupper. Иногда это происходит на некоторых хостингах.

Параметры функции

Параметр | Описание
text | Исходная строка.

См. также

  • ToLower

Примеры использования

<?
$upper = ToUpper("абвгд abcdef");
echo "Верхний регистр: ".$upper;
// выводит строку "Верхний регистр: АБВГД ABCDEF"
?>


TruncateText

string
TruncateText(
 string text,
 int max_length
);

Отсекает от строки все символы свыше указанной длины. Если отсечение произошло, то к строке справа дописывается многоточие.

Параметры функции

Параметр | Описание
text | Исходная строка.
max_length | Длина конечной строки.

См. также

  • 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 | Удаляет из массива все элементы с пустыми значениями.
is_set | Проверяет переменную (или ключ массива) на существование.


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
);

Функция удаляет из массива все элементы с пустыми значениями. Возвращает "true", если был удален хоть один пустой элемент, иначе - "false".

Параметры функции

Параметр | Описание
arr | Исходный массив. Данный параметр задается в виде ссылки на исходную переменную.

Пример использования

<?
$ar = array(
  "a" => "1",
  "b" => " ",
  "c" => "",
  "d" => "2"
);
TrimArr($ar);
// массив $ar будет выглядеть как array("a" => "1", "d" => "2")
?>


Дата и время

Функции для работы с датами, временем и календарем:

Метод | Описание
Calendar | Возвращает иконку, при нажатии на которую появляется стандартное окно выбора даты. Выбранная в этом окне дата вставляется в указанное поле формы (либо, в случае выбора интервала - в два поля).
CalendarDate | Возвращает поле ввода и иконку, при нажатии на которую появляется стандартное окно выбора даты. Выбранная в этом окне дата вставляется в поле ввода.
CalendarPeriod | Отображает два поля ввода для дат "с" и "по" с иконками, при нажатии на которые появляется стандартное окно выбора даты, помимо этого рядом с первым полем выводится выпадающий список дней для быстрого выбора даты "с".
ParseDateTime | Разбивает дату и время на части в соответствии с заданным форматом.
ConvertDateTime | Конвертирует дату из формата одного из сайтов в строку произвольного формата.
MakeTimeStamp | Конвертирует время из строки в Unix-формат.
ConvertTimeStamp | Конвертирует время из Unix-формата в строку в формате сайта.
AddToTimeStamp | Добавляет к дате в Unix-формате заданный интервал времени.
getmicrotime | Возвращает текущее время в Unix-формате.

См. также

  • Работа с датой и временем
  • Методы класса CDataBase для работы с датой и временем
  • CheckFilterDates


AddToTimeStamp

int
AddToTimeStamp(
 array add,
 int timestamp = false
);

Добавляет к дате в Unix-формате заданный интервал времени. Возвращает новую дату также в Unix-формате.

Параметры функции

Параметр Описание
add Массив, описывающий добавляемый интервал времени. Допустимы следующие ключи данного массива:
  • DD - дни
  • MM - месяцы
  • YYYY - годы
  • HH - часы
  • MI - минуты
  • SS - секунды
timestamp Время, к которому будет добавляться интервал в 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 field,
 string form = "skform",
 string field_from = "",
 string field_to = ""
);

Возвращает иконку, при нажатии на которую появляется стандартное окно выбора даты. Выбранная в этом окне дата вставляется в указанное поле формы (либо, в случае выбора интервала - в два поля). Работает на JavaScript.

Параметры функции

Параметр | Описание
field | Имя поля, в которое будет вставлена выбранная дата.
form | Имя формы, в которой находится поле для вставки даты. Необязательный параметр, по умолчанию принимает значение "skform".
field_form | Имя поля, в которое будет вставлена первая дата из выбранного интервала (дата "с"). Необязательный параметр, по умолчанию - "".
field_to | Имя поля, в которое будет вставлена вторая дата из выбранного интервала (дата "по"). Необязательный параметр, по умолчанию - "".

См. также

  • 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 field_name,
 string field_value,
 string form = "skform",
 string field_size = "10",
 string field_param = "class=\"typeinput\""
);

Возвращает поле ввода и иконку, при нажатии на которую появляется стандартное окно выбора даты. Выбранная в этом окне дата вставляется в поле ввода. Работает на JavaScript.

Параметры функции

Параметр Описание
field_name Имя поля ввода:
<input type="text" name="field_name" ... >
field_value Начальное значение для поля ввода:
<input type="text" value="field_value" ... >
form Имя формы, в которой находится поле ввода для вставки даты:
<form name="form">
Необязательный параметр, по умолчанию принимает значение - "skform".
field_size Ширина поля ввода:
<input type="text" size="field_size" ... >
Необязательный параметр, по умолчанию принимает значение - "10".
field_param Строка дополнительных атрибутов поля ввода:
<input type="text" field_param ... >
Необязательный параметр, по умолчанию принимает значение - class="typeinput".

См. также

  • 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".

См. также

  • 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 format = FORMAT_DATETIME,
 mixed site_id = false
);

Конвертирует время из строки в формате сайта в строку произвольного формата.

Параметры функции

Параметр | Описание
datetime | Время в формате сайта site_id.
format Формат времени, в который необходимо сконвертировать. При задании формата допустимо использовать следующие обозначения:
  • YYYY - год
  • MM - месяц
  • DD - день
  • HH - часы
  • MI - минуты
  • SS - секунды
Необязательный параметр. По умолчанию равен константе FORMAT_DATETIME, хранящей текущий формат времени сайта или языка (для административной части).
site_id Идентификатор сайта, в формате которого было задано время time.
Необязательный параметр. По умолчанию - текущий сайт.

См. также

  • CSite::GetDateFormat
  • CDataBase::FormatDate

Примеры использования

<?
echo ConvertDateTime("25.12.2003", "YYYY-MM-DD", "ru"); // 2003-12-25
?>


ConvertTimeStamp

string
ConvertTimeStamp(
 int timestamp = false,
 string format_type = "SHORT",
 mixed site_id = false
);

Конвертирует время из Unix-формата в строку в формате сайта.

Параметры функции

Параметр Описание
timestamp Время в Unix-формате.
Необязательный параметр, по умолчанию - текущее время.
format_type Тип формата. Допустимы следующие значения:
  • FULL - полный (дата и время)
  • SHORT - короткий (дата)
Необязательный параметр, по умолчанию равен "SHORT".
site_id Идентификатор сайта, в формате которого необходимо вернуть дату.
Необязательный параметр. По умолчанию - текущий сайт.

См. также

  • 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
?>


getmicrotime

float
getmicrotime()

Возвращает текущее время в Unix-формате.

Параметры функции

Без параметров.

Примеры использования

<?
// Алгоритм организации временных засечек
$ptime = getmicrotime();

for ($i=0; $i<10000; $i++);

echo "Цикл выполнялся ".round(getmicrotime()-$ptime, 3)." секунд";
?>


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 | Проверяет физическое существование указанного пути. При необходимости - создает все каталоги входящие в данный путь.
CopyDirFiles | Копирует файлы и каталоги.
DeleteDirFiles | Удаление из каталога всех файлов, содержащихся в другом каталоге.
DeleteDirFilesEx | Рекурсивное удаление каталога или файла.
RewriteFile | Перезапись файла.
GetDirPath | Получение каталога по полному пути.
GetPagePath | Получение пути к файлу по заданному URL'у.
GetDirIndex | Определение индексного файла каталога.

См. также

  • Класс CFile
  • Принципы распределения прав в Unix системах
  • Права для новых файлов и каталогов


CheckDirPath

CheckDirPath(
 string abs_path,
 bool set_permissions = true
);

Проверяет физическое существование указанного пути. При необходимости - создает все каталоги входящие в данный путь.

Права на каталоги, которые будут устанавливаться этой функцией, должны быть предварительно определены в константе BX_DIR_PERMISSIONS (в файлах /bitrix/php_interface/dbconn.php или /bitrix/php_interface/ID сайта/init.php). Если константа не определена, то она автоматически инициализируется значением 0777 и далее это значение используется везде когда дело касается установки Unix прав на файлы и каталоги.

Параметры функции

Параметр | Описание
abs_path | Абсолютный путь к папке.
set_permissions | Если значение данного параметра равно "true" и если последний каталог пути указанного в параметре abs_path не доступен для записи, то будет предпринята попытка установить новые права на данный каталог. Значения для этих прав будут браться либо из константы BX_DIR_PERMISSIONS, либо если константа не определена.

См. также

  • Принципы распределения прав в 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 from,
 string to,
 bool rewrite = true,
 bool recursive = false,
 bool delete_after_copy = false,
 string exclude = ""
);

Копирует файлы и каталоги. Возвращает "true" при успешном завершении копирования и "false" - в противном случае.

Параметры функции

Параметр | Описание
from | Абсолютный путь к каталогу (файлу), содержимое которой нужно скопировать.
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");
?>


DeleteDirFiles

DeleteDirFiles(
 string check,
 string delete,
 array exclude = array()
);

Удаляет из каталога все файлы, которые содержатся в другом каталоге.

Параметры функции

Параметр | Описание
check | Абсолютный путь к каталогу, файлы которого проверяются на наличие в каталоге задаваемом в параметре delete.
delete | Абсолютный путь к каталогу, в котором будут удалены файлы с именами найденными в каталоге задаваемом в параметре check.
exclude | Массив исключений. Содержит краткие имена файлов, которые не будут удалены.

См. также

  • 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" в случае успешного выполнения.

Параметры функции

Параметр | Описание
path | Путь относительно корня к удаляемому каталогу (файлу).

См. также

  • DeleteDirFiles
  • CFile::Delete

Примеры использования

<?
// удалим каталог /temp1/ и все что в нем находится
DeleteDirFilesEx("/temp1");
?>


GetDirIndex

string
GetDirIndex(
 string path,
 string index = false
);

Возвращает имя индексного файла каталога.

Параметры функции

Параметр | Описание
path | Путь к каталогу относительно корня для которого необходимо определить индексный файл.
index | Разделенные пробелом возможные имена индексных файлов в порядке убывания приоритета. Для корректной работы функции в данный параметр необходимо передавать значение из поля 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/"
?>


GetPagePath

string
GetPagePath(
 string page = false
);

Возвращает путь к странице относительно корня.

В функцию может поступить URL относительно корня с параметрами, в этом случае функция вернет путь к странице без параметров.

Если в функцию поступает путь без указания файла, например: /ru/about/, то функция попытается самостоятельно определить индексный файл каталога и если определит его например, как index.php, то в результате вернет значение /ru/about/index.php.

Алгоритм определения индексного файла представлен в описании функции GetDirIndex.

Параметры функции

Параметр | Описание
page | Страница, путь к которой необходимо вернуть. Если параметр равен "false", то возвращается путь к текущей странице. Необязательный параметр, по умолчанию равен "false".

См. также

  • CMain::GetCurPage
  • CMain::GetCurPageParam
  • CMain::GetCurUri
  • GetDirIndex


RewriteFile

bool
RewriteFile(
 string abs_path,
 string content
);

Записывает в файл новое содержимое. Возвращает "true" в случае удачной записи в файл, иначе - "false".

Параметры функции

Параметр | Описание
abs_path | Абсолютный путь к файлу, который необходимо перезаписать.
content | Новое содержимое файла.

См. также

  • 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

Функции для работы с элементами HTML:

Метод | Описание
InputType | Возвращает HTML код тегов <input type="checkbox"> (переключатель с множественным варинтом выбора ответа), либо <input type="radio"> (переключатель с единственным вариантом выбора ответа).
SelectBox | Возвращает HTML код тега <select> (выпадающий список с единственным вариантом выбора ответа) на основании данных из объекта класса CDBResult.
SelectBoxM | Возвращает HTML код тега <select multiple> (выпадающий список с множественными варинтами выбора ответа) на основании данных из объекта класса CDBResult.
SelectBoxFromArray | Возвращает HTML код тега <select> (выпадающий список с единственным вариантом выбора ответа) на основании данных из массива.
SelectBoxMFromArray | Возвращает HTML код тега <select multiple> (выпадающий список с множественными варинтами выбора ответа) на основании данных из массива.


InputType

string
InputType(
 string type,
 string name,
 string value,
 mixed checked,
 bool print_value = false,
 string title = "",
 string add_to_tag = ""
);

Возвращает HTML код тегов <input type="checkbox"> (переключатель с множественным вариантом выбора ответа), либо <input type="radio"> (переключатель с единственным вариантом выбора ответа).

Параметры функции

Параметр Описание
type Тип тэга:
<input type="type" ... >

Возможные значения:
  • checkbox - переключатель с множественным вариантом выбора ответа
  • radio - переключатель с единственным вариантом выбора ответа
name Имя тэга:
<input name="name" ... >
value Значение тэга:
<input value="value" ... >
checked Значение данного параметра будет сравниваться со значением параметра value, в случае совпадения - переключатель будет "отмечен" (checked):
<input checked ... >
print_value Если в данном параметре задано значение "true", то справа от тэга будет выведено значение параметра value.
Необязательный параметр. По умолчанию - "false".
title Если параметр print_value не равен "true" и в параметре title задано значение, то оно будет выведено справа от тэга.
Необязательный параметр. По умолчанию - "".
add_to_tag Произвольный HTML который будет добавлен в тэг:
<input add_to_tag ... >
Необязательный параметр. По умолчанию - "".

Примеры использования

<?
// Множественный выбор

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>


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\"");
?>


Фильтр и сортировка

1С-Битрикс: Управление сайтом Отправить отзыв

Сохраняемые фильтр и сортировка

Функции для построения и работы с фильтрами и сортировками

Метод | Описание
InitFilterEx | Инициализация фильтра.
DelFilterEx | Удаление фильтра.
GetFilterHiddens | Позволяет создать набор HTML тэгов типа hidden из набора переменных имена которых передаются в массиве, либо указан префикс имен этих переменных.
GetFilterParams | Создание строки состоящей из параметров для URL'а из входящего массива переменных, либо переменных имена которых начинаются с указанного префикса.
CheckFilterDates | Проверяет две даты введенные в фильтре на корректность.
InitSorting | Инициализация сортировки.
SortingEx | Генерация "стрелок" сортировки.


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
);

Очищает переменные, содержащие значения фильтра, и очищает соответствующие сессионные переменные.

Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов.

Параметры функции

Параметр | Описание
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 extra_vars = array("filter"=>"Y","set_filter"=>"Y")
);

Возвращает набор HTML тэгов типа hidden из набора переменных, имена которых передаются в массиве, либо указан префикс имен этих переменных.

Параметры функции

Параметр | Описание
var | Имена переменных. В данном параметре можно передать либо массив, либо префикс имен этих переменных.
extra_vars В данном параметре можно передать массив, представляющий из себя имя и значение произвольных переменных, которые будут добавлены в результат. Структура данного массива:
array("ИМЯ_ПЕРЕМЕННОЙ" => "ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ")
Как правило данный параметр используют для передачи имени и значения кнопки "Установить фильтр".
Параметр необязательный. По умолчанию - array("filter" => "Y", "set_filter" => "Y").

См. также

  • 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 safe_for_html = true,
 array extra_vars = array("filter"=>"Y","set_filter"=>"Y")
);

Возвращает строку состоящюю из параметров для URL'а из входящего массива переменных, либо переменных имена которых начинаются с указанного префикса.

Параметры функции

Параметр | Описание
var | Имена переменных. В данном параметре можно передать либо массив, либо префикс имен этих переменных.
safe_for_html | Если значение равно "true", то результат будет приведен в HTML-безопасный вид.
extra_vars В данном параметре можно передать массив, представляющий из себя имя и значение произвольных переменных, которые будут добавлены в результат. Структура данного массива:
array("ИМЯ_ПЕРЕМЕННОЙ" => "ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ")
Как правило данный параметр используют для передачи имени и значения кнопки "Установить фильтр".
Параметр необязательный. По умолчанию - array("filter" => "Y", "set_filter" => "Y").

См. также

  • 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
);

Инициализирует, либо запоминает переменные фильтра в сессии.

Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов.

Параметры функции

Параметр | Описание
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 page = false,
 string by_var = "by",
 string order_var = "order"
);

Инициализирует параметры сортировки хранимые в сессии, если сортировка не была явно задана. Если сортировка задана явно, то функция запоминает параметры сортировки в сессии.

Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов.

Параметры функции

Параметр | Описание
page | Для какой страницы инициализировать сортировку. Значение "false" означает, что необходимо инициализировать сортировку для текущей страницы. Необязательный параметр, по умолчанию равен "false".
by_var | Имя переменной в которой передается идентфикатор поля для сортировки. Необязательный, по умолчанию равен "by".
order_var | Имя переменной, которая содержит направление сортировки: "asc" (по возрастания) или desc (по убыванию). Необязательный параметр, по умолчанию равен "order".

См. также

  • 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 page = false,
 string by_var = "by",
 string order_var = "order",
 string anchor = "nav_start"
);

Возвращает HTML, представляющий из себя "стрелки" сортировки. Функция как правило используется в шапке таблиц.

Параметры функции

Параметр | Описание
by | Значение которое будет передано в переменную by_var. Как правило в данном параметре указывается идентификатор поля для сортировки.
page | 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>


Функции для работы с модулями

1С-Битрикс: Управление сайтом Отправить отзыв

Модули

Функции для работы с модулями.

Метод | Описание
AddEventHandler | Регистрирует произвольный обработчик событий модуля.
CheckVersion | Сравнение версий модулей.
ExecuteModuleEvent | Выполнение обработчика события.
GetModuleEvents | Запрос списка обработчиков событий.
GetModuleID | Возвращает идентификатор модуля, которому принадлежит файл.
IsModuleInstalled | Проверяет установлен ли модуль.
RegisterModule | Регистрация модуля в системе.
RegisterModuleDependences | Регистрация нового обработчика события.
UnRegisterModule | Удаляет регистрационную запись модуля.
UnRegisterModuleDependences | Удаляет регистрационную запись обработчика события.

См. также

  • Описание концепции модулей
  • Класс CModule


AddEventHandler

AddEventHandler(
 string from_module_id,
 string event_id,
 mixed callback,
 int sort = 100,
 mixed full_path = false
);

Регистрирует произвольный обработчик callback события event_id модуля from_module_id. Если указан полный путь к файлу с обработчиком full_path, то он будет автоматически подключен перед вызовом обработчика.

Параметры функции

Параметр | Описание
from_module_id | Идентификатор модуля который будет инициировать событие.
event_id | Идентификатор события.
callback | Название функции обработчика. Если это метод класса, то массив вида Array(класс(объект), название метода).
sort | Очередность (порядок), в котором выполняется данный обработчик (обработчиков данного события может быть больше одного). Необязательный параметр, по умолчанию равен 100.
full_path | Полный путь к файлу для подключения при возникновении события перед вызовом callback.

См. также

  • Связи и взаимодействие модулей
  • 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 		Произвольный набор значений, которые передаются в качестве параметров в обработчик события.

См. также

  • GetModuleEvents

Примеры использования

<?
// проверка возможности удаления форума

// флаг запрещающий или разрешающий удалять форум
$bCanDelete = true;

// получим данные по всем обработчикам события "OnBeforeForumDelete"
// принадлежащего модулю с идентификатором "forum"
$rsEvents = GetModuleEvents("forum", "OnBeforeForumDelete");
while ($arEvent = $rsEvents->Fetch())
{
    // запустим на выполнение очередной обработчик события "OnBeforeForumDelete"
    // если функция-обработчик возвращает false, то
    if (ExecuteModuleEvent($arEvent, $del_id)===false)
    {
        // запрещаем удалять форум
        $bCanDelete = false;
        break;
    }
}
?>


GetModuleEvents

CDBResult
GetModuleEvents(
 string module_id,
 string event_id
);

Возвращает список обработчиков события event_id модуля module_id в виде объекта класса CDBResult.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.
event_id | Идентификатор события.

См. также

  • 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
);

Регистрация модуля в системе. Как правило регистрация модуля является неотъемлемой частью процесса инсталляции модуля.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.

См. также

  • UnRegisterModule
  • CModule::DoInstall

Примеры использования

<?
// файл /bitrix/modules/statistic/install/step2.php
RegisterModule("statistic");
?>


RegisterModuleDependences

RegisterModuleDependences(
 string from_module_id,
 string event_id,
 string to_module_id,
 string to_class = "",
 string to_method = "",
 int sort = 100
);

Регистрирует обработчик события.

Параметры функции

Параметр | Описание
from_module_id | Идентификатор модуля, который будет инициировать событие.
event_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.

См. также

  • Связи и взаимодействие модулей
  • UnRegisterModuleDependences

Примеры использования

<?
// Для того, чтобы при удалении пользователя сайта
// производилась соответствующая очистка данных форума,
// при установке форума выполняется регистрация нового
// обработчика события "OnUserDelete" модуля main.
// Этим обработчиком является метод OnUserDelete класса CForum модуля forum.

RegisterModuleDependences("main", "OnUserDelete", "forum", "CForum", "OnUserDelete");
?>


UnRegisterModule

UnRegisterModule(
 string module_id
);

Удаляет регистрационную запись, а также все настройки модуля из базы данных. Как правило удаление регистрационной записи модуля является неотъемлемой частью процесса деинсталляции модуля.

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.

См. также

  • RegisterModule
  • CModule::DoUninstall

Примеры использования

<?
// файл /bitrix/modules/statistic/install/unstep2.php
UnRegisterModule("statistic");
?>


UnRegisterModuleDependences

UnRegisterModuleDependences(
 string from_module_id,
 string event_id,
 string to_module_id,
 string to_class = "",
 string to_method = ""
);

Удаляет регистрационную запись обработчика события.

Параметры функции

Параметр | Описание
from_module_id | Идентификатор модуля который инициирует событие.
event_id | Идентификатор события.
to_module_id | Идентификатор модуля содержащий функцию-обработчик события.
to_class | Класс принадлежащий модулю module, метод которого является функцией-обработчиком события. Необязательный параметр. По умолчанию - "".
to_method | Метод класса to_class являющийся функцией-обработчиком события. Необязательный параметр. По умолчанию - "".

См. также

  • Связи и взаимодействие модулей
  • RegisterModuleDependences

Примеры использования

<?
UnRegisterModuleDependences("main", "OnUserDelete", "forum", "CForum", "OnUserDelete");
?>


Языковые файлы (локализация)

1С-Битрикс: Управление сайтом Отправить отзыв

Языковые файлы

Функции для работы с языковыми файлами:

Метод | Описание
GetMessage | Возвращает по коду соответствующее сообщение на текущем языке.
IncludeModuleLangFile | Подключает языковой файл для скрипта модуля.
IncludeTemplateLangFile | Подключает языковой файл для компонента.

См. также

  • Языки


GetMessage

string
GetMessage(
 string message_id
);

Возвращает по коду соответствующее сообщение на текущем языке. Массивы соответствий кодов и сообщений задаются в языковых файлах. Перед использованием этой функции необходимо подключить соответствующий языковой файл.

Параметры функции

Параметр | Описание
message_id | Код сообщения.

См. также

  • IncludeModuleLangFile
  • IncludeTemplateLangFile

Примеры использования

<?
IncludeTemplateLangFile(__FILE__);
echo GetMessage("SOME_MESSAGE_CODE");
?>


IncludeModuleLangFile

IncludeModuleLangFile(
 string abs_path,
 string lang = false
);

Подключает языковой файл для скрипта, полный путь к которому передается в параметре path. Как правило данная функция используется для подключения языковых файлов модулей.

Подключаемый языковой файл должен иметь то же имя, что и подключающий файл, и быть расположен на диске в каталоге:
/bitrix/modules/ID модуля/lang/ID языка/путь к файлу относительно корня модуля

Параметры функции

Параметр | Описание
abs_path | Абсолютный путь к файлу, для которого необходимо подключить языковые сообщения.
lang | Идентификатор языка. Необязательный параметр, по умолчанию равен "false" (текущий язык).

См. также

  • Что такое "языковые файлы"
  • Языковые файлы модулей
  • IncludeTemplateLangFile

Примеры использования

<?
// Подключим языковой файл для текущего скрипта
IncludeModuleLangFile(__FILE__);
?>


IncludeTemplateLangFile

IncludeTemplateLangFile(
 string abs_path,
 string lang = false
);

Предназначена для подключения языковых файлов для скриптов лежащих в каталоге текущего шаблона сайта. Как правило используется в компонентах, либо в прологе и/или эпилоге сайта.

Алгоритм поиска языкового файла:

  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 в качестве первого параметра.

Параметры функции

Параметр | Описание
abs_path | Абсолютный путь к файлу, для которого необходимо подключить языковые сообщения.
lang | Идентификатор языка. Необязательный параметр, по умолчанию равен "false" (текущий язык).

См. также

  • Что такое "языковые файлы"
  • Языковые файлы компонент
  • IncludeModuleLangFile

Примеры использования

<?
// Подключим языковой файл для текущего компонента
// Предполагаем, что языковой файл расположен стандартным образом
IncludeTemplateLangFile(__FILE__);
?>


Отладка

Функции для отладки:

Метод | Описание
AddMessage2Log | Добавляет новую запись в log-файл.
SendError | Отсылает по E-Mail сообщение об ошибке.
mydump | Возвращает визуальное представление значения (дамп) переменной или объекта класса.

См. также

Специальные переменные включающие отладку


AddMessage2Log

AddMessage2Log(
 string text,
 string module_id = ""
);

Функция добавляет новую запись в 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.

Параметры функции

Параметр | Описание
text | Текст сообщения.
module_id | Идентификатор модуля, который сохраняет сообщение. Необязательный параметр, по умолчанию - "".

См. также

Специальные переменные включающие отладку

Примеры использования

<?
// файл /bitrix/php_interface/dbconn.php

// определим константу LOG_FILENAME, в которой зададим путь к лог-файлу
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
?>

<?
// Сохраним в лог сообщение
AddMessage2Log("Произвольный текст сообщения", "my_module_id");
?>

<?
// выполним преднамеренно некорректный SQL-запрос
$DB->Query("SELECT");
// работа скрипта будет прекращена и в лог-файл будет добавлено сообщение об ошибке
?>


mydump

string
mydump(
 mixed var,
 int max_depth = -1,
 int depth = 0
);

Возвращает визуальное представление значения (дамп) переменной или объекта класса.

Параметры функции

Параметр | Описание
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

Помимо текста ошибки, в письмо будут включены:

  • 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 версии)

Параметры функции

Параметр | Описание
text | Текст сообщения.
module_id | Идентификатор модуля, который сохраняет сообщение. Необязательный параметр, по умолчанию - "".

Примеры использования

<?
// файл /bitrix/php_interface/dbconn.php

// определим константу ERROR_EMAIL, в которой зададим E-Mail администратора
define("ERROR_EMAIL", "admin@site.ru");
?>

<?
SendError("Произвольное текстовое сообщение");
?>


Прочие функции

Метод | Описание
check_email | Проверяет E-Mail адрес на синтаксическую корректность.
FindUserID | Выводит ряд HTML элементов позволяющих задать ID пользователя и рядом с этим полем ввода получить данные пользователя. Также выводиться кнопка ведущая на страницу поиска пользователя.
LocalRedirect | Выполняет перенаправление браузера на указанную страницу.
QueryGetData | Запрашивает web-адрес по протоколу HTTP.
GetWhoisLink | Возвращает ссылку на один из сайтов службы Whois для получения данных по заданному IP адресу.
DeleteParam | На основе стандартного массива $HTTP_GET_VARS формирует строку параметров, удаляя из нее указанные параметры.
InitURLParam | Инициализирует необходимые переменные из параметров заданного URL'а.
IsIE | Проверяет, является ли текущий браузер посетителя браузером "MS Internet Explorer".
Rel2Abs | Формирует путь относительно заданного каталога.
BXClearCache | Удаляет файлы кеша по указанному пути.
GetCountryByID | Возвращает название страны на заданном языке.
GetCountryArray | Возвращает отсортированный массив стран с названиями на заданном языке.
ShowError | Вывод сообщений об ошибках.
ShowNote | Вывод нотификаций.
ShowMessage | Вывод сообщений об ошибках и прочих сообщений.


BXClearCache

bool
BXClearCache(
 bool delete_all = false,
 string dir = ""
);

Удаляет все (либо только устаревшие) файлы кеша по указанному пути. Возвращает "true" в случае успешного завершения. В противном случае возвращает "false".

Параметры функции

Параметр | Описание
delete_all | Если значение равно "true", то будут удалены все файлы кеша, если значение равно "false", то будут удалены только устаревшие файлы кеша.
dir | Каталог, начиная с которого производить обработку. Применяется для частичной обработки кеша. Задается относительно корневой папки кеша - /bitrix/cache/.

Примеры использования

<?
// удалим весь кэш для каталога /forum/
BXClearCache(true, "/forum/");
?>


check_email

bool
check_email(
  string email
);

Проверяет E-Mail адрес на синтаксическую корректность. Возвращает "true", если адрес синтаксически корректен, в противном случае - "false".

Параметры функции

Параметр | Описание
email | Проверяемый E-Mail адрес.

Примеры использования

<?
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.

Параметры функции

Параметр | Описание
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 country_id,
 string language_id = LANGUAGE_ID
)

Возвращает название страны на заданном языке по ее коду.

Цифровые коды стран вы можете посмотреть в файле /bitrix/modules/main/lang/language_id/tools.php.

Параметры функции

Параметр | Описание
country_id | Цифровой код страны.
language_id | Идентификатор языка в котором необходимо вернуть название страны. Необязательный параметр. По умолчанию - LANGUAGE_ID (текущий язык).

Примеры использования

<?
echo GetCountryByID(34, "ru"); // Бразилия
?>


GetWhoisLink

string
GetWhoisLink(
  string ip,
  string link_class = "tablebodylink"
);

Возвращает ссылку на один из сайтов службы Whois для получения данных по заданному IP адресу.

Формат возвращаемой ссылки:
<a href="http://www.whois.sc/ip" class="link_class">ip</a>

Параметры функции

Параметр | Описание
ip | IP адрес в формате XXX.XXX.XXX.XXX для которого необходимо сформировать ссылку.
link_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
);

Выполняет перенаправление браузера на указанную страницу.

Для административной части перенаправление браузера можно использовать только до вывода какого-либо контента (т.е. до подключения файла prolog_admin_after.php или prolog_admin.php). В публичной части - никаких ограничений не накладывается.

Параметры функции

Параметр | Описание
url | URL на который будет перенаправлен браузер. Допустимо использование как относительных адресов, так и адресов ведущих на другие сайты и начинающихся со следующих протоколов: "http://", "https://", "ftp://".

Примеры использования

<?
// полный URL на другой сайт
LocalRedirect("http://www.bitrixsoft.ru/");

// относительный путь от корня текущего сайта
LocalRedirect("/ru/index.php");

// относительный путь к файлу в текущем каталоге текущего сайта
LocalRedirect("index.php");
?>


QueryGetData

string
QueryGetData(
  string site,
  int port,
  string page,
  string query,
  int &error_number,
  string &error_text,
  string http_method = "GET",
  string site_prefix = ""
);

Функция запрашивает указанный в параметрах web-адрес по протоколу HTTP. Возвращает тело (без заголовка) ответа, полученного от сервера. В случае ошибки возвращается пустая строка и устанавливаются параметры error_number и error_text.

Параметры функции

Параметр | Описание
site | Адрес сайта, страница которого запрашивается.
port | Номер порта. Как правило - 80.
page | Путь к запрашиваемой странице.
query | Строка параметров запроса в стандартном формате.
error_number | Данный параметр является ссылкой на исходную переменную. В нее будет возвращен номер ошибки в случае ее возникновения.
error_text | Данный параметр является ссылкой на исходную переменную. В нее будет возвращен текст ошибки в случае ее возникновения.
http_method Метод отправки запроса удаленному серверу. Допустимые значения:
  • "GET"
  • "POST"
Необязательный параметр, по умолчанию равен GET.
site_prefix Префикс адреса сайта для работы с SSL и TLS. Допустимые значения:
  • ""
  • "ssl://"
  • "tls://"
Необязательный параметр, по умолчанию равен "" (пустой строке) - стандартное соединение.

Ваш хостинг может не поддерживать соединения, отличные от стандартного.

Примеры использования

<?
// Запросим с сайта центрального банка РФ курсы валют за 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.

Параметры функции

Параметр | Описание
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
?>


ShowError

ShowError(
 string message,
 string css_class = "errortext"
);

Выводит сообщение об ошибке.

Параметры функции

Параметр | Описание
message | Строка сообщения.
css_class | Название CSS класса для оформления сообщения. Необязательный параметр, по умолчанию равен "errortext" (как правило красного цвета).

Примеры использования

<?
ShowError("Ошибка!");
?>


ShowMessage

ShowMessage(
  mixed message
);

Выводит ошибки и прочие сообщения.

Параметры функции

Параметр Описание
message Текст сообщения об ошибке или массив со следующими ключами:
  • TYPE - тип сообщения, допустимы следующие значения:
    • OK - обычное сообщения, для вывода будет использоваться CSS класс "notetext"
    • ERROR - сообщение об ошибке, для вывода будет использоваться CSS класс "errortext"
  • MESSAGE - текст сообщения.

Примеры использования

<?
// выведем обычное сообщение
ShowMessage(Array("TYPE"=>"OK", "MESSAGE"=>"Данные сохранены."));
?>

<?
// выведем сообщение об ошибке
ShowMessage("Ошибка! Вы забыли заполнить обязательные поля!");
?>


ShowNote

ShowNote(
 string message,
 string css_class = "notetext"
);

Выводит заданное сообщение.

Параметры функции

Параметр | Описание
message | Сообщение.
css_class | Название CSS класса для оформления сообщения. Необязательный параметр, по умолчанию равен "notetext" (как правило зеленого цвета).

Примеры использования

<?
ShowNote("Все в порядке!");
?>


События, главный модуль

1С-Битрикс: Управление сайтом Отправить отзыв

Список событий

Ниже представлен список событий главного модуля. Для регистрации обработчика укажите в качестве идентификатора модуля - "main".

  • События, вызывающиеся в процессе выполнения каждой страницы
  • События при работе с пользователями и авторизация
  • События при работе с группами пользователей
  • События при работе с файлами и правами
  • События при работе с шаблонами почтовых сообщений
  • События при работе с сайтами
  • События при работе с языками
  • События при работе с панелью управления
    •

    См. также

    • Обработка событий
    • Связи и взаимодействие модулей

    События вызывающиеся в процессе выполнения страницы

    Событие | Описание
OnPageStart | Вызывается в начале выполняемой части пролога сайта, после подключения всех библиотек и отработки агентов.
OnBeforeProlog | Вызывается в конце выполняемой части пролога сайта (после события OnPageStart).
OnProlog | Вызывается в начале визуальной части пролога сайта.
OnEpilog | Вызывается в конце визуальной части эпилога сайта.
OnAfterEpilog | Вызывается в конце выполняемой части эпилога сайта (после события OnEpilog).

    См. также

    • Этапы выполнения страницы

    События при работе с пользователями и авторизация

    Событие | Описание
OnBeforeUserRegister | Вызывается до попытки зарегистрировать нового пользователя методом CUser::Register.
OnAfterUserRegister | Вызывается после попытки регистрации нового пользователя методом CUser::Register.
OnBeforeUserSimpleRegister | Вызывается до попытки упрощённой регистрации нового пользователя методом CUser::SimpleRegister.
OnAfterUserSimpleRegister | Вызывается после попытки упрощённой регистрации нового пользователя методом CUser::SimpleRegister
OnBeforeUserLogin | Вызывается до попытки авторизации пользователя методом CUser::Login.
OnUserLoginExternal | Вызывается перед попыткой авторизации пользователя методом CUser::Login, предназначен для проверки внешней авторизации.
OnAfterUserLogin | Вызывается после попытки авторизации пользователя методом CUser::Login.
OnBeforeUserLoginByHash | Вызывается перед попыткой авторизации пользователя методом CUser::LoginByHash.
OnAfterUserLoginByHash | Вызывается после попытки авторизации пользователя методом CUser::LoginByHash.
OnAfterUserAuthorize | Вызывается после авторизации пользователя.
OnBeforeUserLogout | Вызывается перед завершением сеанса авторизации пользователя методом CUser::Logout.
OnAfterUserLogout | Вызывается после завершения сеанса авторизации пользователя методом CUser::Logout.
OnBeforeUserAdd | Вызывается перед добавлением нового пользователя.
OnAfterUserAdd | Вызывается после добавления нового пользователя.
OnBeforeUserUpdate | Вызывается перед изменением параметров пользователя.
OnAfterUserUpdate | Вызывается после изменения параметров пользователя.
OnBeforeUserDelete | Вызывается перед удалением пользователя.
OnUserDelete | Вызывается во время удаления пользователя.
OnExternalAuthList | Вызывается для получения списка источников внешней авторизации.

    См. также

    • Внешняя авторизация

    События при работе с группами пользователей

    Событие | Описание
OnBeforeGroupDelete | Вызывается перед удалением группы пользователей.
OnGroupDelete | Вызывается после удаления группы пользователей.

    События при работе с файлами и правами

    Событие | Описание
OnChangeFile | Вызывается на изменение файла сразу после его сохранения.
OnChangePermissions | Вызывается при изменении прав доступа к файлу или папке.

    События при работе с шаблонами почтовых сообщений

    Событие | Описание
OnBeforeEventMessageDelete | Вызывается перед удалением почтового шаблона.
OnEventMessageDelete | Вызывается во время удаления почтового шаблона.

    События при работе с сайтами

    Событие | Описание
OnBeforeSiteDelete | Вызывается перед удалением сайта.
OnSiteDelete | Вызывается в момент удаления сайта.

    События при работе с языками

    Событие | Описание
OnBeforeLanguageDelete | Вызывается перед удалением языка.
OnLanguageDelete | Вызывается в момент удаления языка.

    События при работе с панелью управления

    Событие | Описание
OnPanelCreate | Вызывается в момент сбора данных для построения панели управления в публичной части сайта.

    См. также

    • Обработка событий
    • Связи и взаимодействие модулей


OnAfterEpilog

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnAfterEpilog"

функция-обработчик();

Событие "OnAfterEpilog" возникает в конце выполняемой части эпилога сайта (после события OnEpilog).

Параметры функции-обработчика

Без параметров.

См. также

  • Событие "OnEpilog"
  • Этапы выполнения страницы и доступные на каждом этапе переменные и константы
  • Обработка событий

Пример регистрации функции-обработчика:

<?
RegisterModuleDependences("main",
                          "OnAfterEpilog",
                          "compression",
                          "CCompress",
                          "OnAfterEpilog");
?>


OnAfterUserAdd

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnAfterUserLogin"

функция-обработчик(
 array &arParams
);

Событие "OnBeforeUserLogin" вызывается в методе 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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnAfterUserLogout"

функция-обработчик(
 array &arParams
);
Событие "OnAfterUserLogout" вызывается после завершения авторизации пользователя.

Параметры

Параметр Описание
arParams Массив параметров:
  • 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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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"
  • Обработка событий
  • 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\"";
            }
        }
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnAfterUserRegister"
RegisterModuleDependences("main", "OnAfterUserRegister", "my_module_id", "MyClass", "OnAfterUserRegisterHandler");
?>


OnAfterUserSimpleRegister

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnAfterUserUpdate"

функция-обработчик(
 array &arFields
);
Событие "OnAfterUserUpdate" вызывается после попытки изменения свойств пользователя методом CUser::Update.

Параметры

Параметр | Описание
arFields | Массив полей изменяемого пользователя. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CUser::Update и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

См. также

  • Событие "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"].").");
    }
}
?>


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");
?>


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");
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnBeforeUserLogout"

bool
функция-обработчик(
 array &arParams
);

Вызывается перед завершением сеанса авторизации пользователя методом CUser::Logout и может быть использовано для отмены завершения сеанса.

Параметры

Параметр Описание
arParams Массив параметров:
  • 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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnBeforeUserRegister"

bool
функция-обработчик(
 array &arArgs
);
Событие "OnBeforeUserRegister" вызывается до попытки регистрации нового пользователя методом CUser::Register и может быть использовано для прекращения процесса регистрации или переопределения некоторых полей.

Параметры

Параметр Описание
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.

Возвращаемое значение

Для отмены авторизации пользователя и прекращении выполнения метода 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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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;
        }
    }
}
?>


OnChangeFile

функция-обработчик(
 string path,
 string site_id
);

Событие "OnChangeFile" вызывается на изменение файла методом $APPLICATION->SaveFileContent, сразу после его сохранения.

Параметры

Параметр | Описание
path | Пусть к файлу относительно корня.
site_id | Идентификатор сайта на котором изменился файл.

См. также

  • Событие "OnChangePermissions"
  • CMain::SaveFileContent
  • Обработка событий

Пример функции-обработчика:

<?
// файл /bitrix/php_interface/init.php
AddEventHandler("main", "OnChangeFile", Array("MyClass", "OnChangeFileHandler"));
class MyClass
{
    // создаем обработчик события "OnChangeFile"
    function OnChangeFileHandler($path, $site)
    {
        // получим DOCUMENT_ROOT к указанному сайту
        $DOC_ROOT = CSite::GetSiteDocRoot($site);

        // получим содержимое файла по абсолютному пути
        $filesrc = $APPLICATION->GetFileContent($DOC_ROOT.$path);

        // парсинг содержимого файла
        $arContent = ParseFileContent($filesrc);
        $TITLE = $arContent["TITLE"];
        $BODY = $arContent["CONTENT"];

        // вставим в таблицу запись об изменении файла
        $arFields = array(
            "MODIFIED_BY" => $USER->GetID(), // кто изменил
            "TITLE"       => $TITLE,         // загововок файла
            "FILENAME"    => $path,          // путь к файлу относительно корня
            "SITE_ID"     => $site,          // идентификатор сайта
            "BODY"        => $BODY,          // содержимое файла
            );
        $arInsert = $DB->PrepareInsert("b_workflow_log", $arFields, "workflow");
        $strSql = "INSERT INTO b_workflow_log (TIMESTAMP_X,  ".$arInsert[0].") VALUES(now(), ".$arInsert[1].")";
        $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
    }
}
?>


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");
?>


OnEpilog

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnEpilog"

функция-обработчик();
Событие "OnEpilog" вызывается в конце визуальной части эпилога сайта.

Параметры функции-обработчика

Без параметров.

См. также

  • Событие "OnAfterEpilog"
  • Этапы выполнения страницы и доступные на каждом этапе переменные и константы
  • Обработка событий

Пример регистрации функции-обработчика:

<?
RegisterModuleDependences("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")
      );
 }
}
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnPageStart"

функция-обработчик();
Событие "OnPageStart" вызывается в начале выполняемой части пролога сайта, после подключения всех библиотек и отработки агентов.

Параметры функции-обработчика

Без параметров.

См. также

  • Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnProlog"

функция-обработчик();
Событие "OnProlog" вызывается в начале визуальной части пролога сайта.

Параметры функции-обработчика

Без параметров.

См. также

  • Событие "OnBeforeProlog"
  • Этапы выполнения страницы и доступные на каждом этапе переменные и константы
  • Обработка событий

Пример регистрации функции-обработчика:

<?
    RegisterModuleDependences("main",
                              "OnProlog",
                              "statistic",
                              "CStatistic",
                              "StartBuffer", "100");
?>


OnSendUserInfo

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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['CUSTOM_NAME'] = $arParams['USER_FIELDS']['LAST_NAME'];
    else
        $arParams['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)
    {
        // удалим связанные записи
        $strSql = "DELETE FROM my_table WHERE USER_ID=".intval($user_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnUserDelete"
RegisterModuleDependences("main", "OnUserDelete",
        "my_module_id", "MyClass", "OnUserDeleteHandler");
?>


OnUserLoginExternal

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "OnUserLoginExternal"

mixed
функция-обработчик(
  array &arParams
);

Событие OnUserLoginExternal предназначено для возможности проверки имени входа и пароля во внешнем источнике. Обработчики этого события вызываются в методе CUser::Login, если ни один обработчик события OnBegoreUserLogin не вернул 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")
            );
    }
}?>


Show

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Классы

Следующие классы используются для работы с модулем валют.

Классы

Класс | Описание
CCurrency | Класс для управления валютами: добавление, удаление, перечисление.
CCurrencyLang | Класс для работы с языкозависимыми параметрами валют (название, формат и пр.)
CCurrencyRates | Класс для работы с курсами валют: сохранение, конвертация и пр.


CCurrency

CCurrency - класс для управления валютами: добавление, удаление, перечисление.

Методы класса

Метод | Описание
Add | Функция добавляет новую валюту.
Delete | Функция удаляет валюту с кодом currency.
GetBaseCurrency | Функция возвращает код базовой валюты.
GetByID | Функция возвращает массив языконезависимых параметров валюты по ее коду currency.
GetCurrency | Функция возвращает массив языконезависимых параметров валюты по ее коду currency. Функция аналогична функции GetByID, за исключение того, что возвращаемый результат в функции GetCurrency кэшируется.
GetList | Функция возвращает список валют, отсортированный по полю из параметра by в направлении order.
SelectBox | Функция для формирования готового кода выпадающего списка (select) валют.
Update | Функция изменяет параметры валюты currency на параметры, указанные в массиве arFields.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrency::Add

string
CCurrency::Add(
 array arFields
);

Функция добавляет новую валюту. После добавления новой валюты необходимо установить ее языкозависимые параметры в помощью метода CCurrencyLang::Add

Параметры функции

Параметр Описание
arFields

Ассоциативный массив параметров валюты, в котором ключами являются названия параметров, а значениями - значения параметров.

Допустимые названия параметров:
CURRENCY - трехсимвольный код валюты (должен быть обязательно установлен)
AMOUNT_CNT - количество единиц валюты по-умолчанию, которое учавствует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
AMOUNT - курс валюты по-умолчанию (одна из валют сайта должна иметь курс 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)
SORT - порядок сортировки
DATE_UPDATE - дата последнего изменения записи

Возвращаемые значения

Функция возвращает код добавленной валюты или False в случае ошибки

Пример использования

<?
// Добавим новую валюту "Исландские кроны"
$arFields = array(
   "CURRENCY" => "ISK",
   "AMOUNT" => 44.8378,
   "AMOUNT_CNT" => 100,
   "SORT" => 250
);
CCurrency::Add($arFields);
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrency::Delete

bool
CCurrency::Delete(
 string currency
);

Функция удаляет валюту с кодом currency. Удаляются в том числе все введенные курсы для этой валюты, а так же языкозависимые свойства валюты.

Параметры функции

Параметр | Описание
currency | Код валюты.

Возвращаемые значения

Функция возвращает True в случае успешного удаления и False - в противном случае

Пример использования

<?
CCurrency::Delete("USD");
?>


GetBaseCurrency

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrency::GetBaseCurrency

string CCurrency::GetBaseCurrency();

Функция возвращает код базовой валюты.

Одна из валют сайта должна иметь курс "по-умолчанию" равный 1. Эта валюта называется базовой. Курс всех валют, кроме базовой, задается относительно базовой валюты.

Параметры функции

Функция не имеет параметров.


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrency::GetByID

array
CCurrency::GetByID(
 string currency
);

Функция возвращает массив языконезависимых параметров валюты по ее коду currency.

Смотрите так же функцию CCurrency::GetCurrency

Параметры функции

Параметр | Описание
currency | Код валюты.

Возвращаемые значения

Ассоциативный массив с ключами

Ключ | Описание
CURRENCY | Код валюты (трехсимвольный)
AMOUNT_CNT | Количество единиц валюты по-умолчанию, которое учавствует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
AMOUNT | Курс валюты по-умолчанию (одна из валют сайта должна иметь курс 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)
SORT | Порядок сортировки.
DATE_UPDATE | Дата последнего изменения записи.

Пример использования

<?
if (!($ar_usd_cur = CCurrency::GetByID("USD")))
{
    echo "Валюта USD не найдена";
}
else
{
    echo "Валюта USD имеет параметры:<pre>";
    print_r($ar_usd_cur);
    echo "</pre>";
}
?>


GetCurrency

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrency::GetCurrency

array
CCurrency::GetCurrency(
 string currency
);

Функция возвращает массив языконезависимых параметров валюты по ее коду currency. Функция аналогична функции CCurrency::GetByID, за исключение того, что возвращаемый результат в функции CCurrency::GetCurrency кэшируется. Поэтому повторный вызов функции с тем же кодом валюты в рамках одной страницы не приводит к дополнительному запросу в базу данных.

Смотрите так же функцию CCurrency::GetByID

Параметры функции

Параметр | Описание
currency | Код валюты.

Возвращаемые значения

Ассоциативный массив с ключами

Ключ | Описание
CURRENCY | Код валюты (трехсимвольный)
AMOUNT_CNT | Количество единиц валюты по-умолчанию, которое учавствует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
AMOUNT | Курс валюты по-умолчанию (одна из валют сайта должна иметь курс 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)
SORT | Порядок сортировки.
DATE_UPDATE | Дата последнего изменения записи.


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Дата последнего изменения записи.
LID | Код языка.
FORMAT_STRING | Строка формата для показа сумм в этой валюте.
FULL_NAME | Полное название валюты.
DEC_POINT | Символ, который используется при показе сумм в этой валюте для отображения десятичной точки.
THOUSANDS_SEP | Символ, который используется при показе сумм в этой валюте для отображения разделителя тысяч.
DECIMALS | Количество знаков после запятой при показе.

Пример использования

<?
// Выведем список валют на текущем языке, отсортированный по названию
// Кроме того выведем сумму 11.95 в формате этой валюты на текущем языке
$lcur = CCurrency::GetList(($b="name"), ($order1="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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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, выбранной по умолчанию,
// валютой RUR, без особого значения

echo CCurrency::SelectBox("CURRENCY_DEFAULT",
                          "RUR",
                          "",
                          True,
                          "",
                          "class='typeselect'");
?>


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrency::Update

bool
CCurrency::Update(
 string currency,
 array arFields
);

Функция изменяет параметры валюты currency на параметры, указанные в массиве arFields

Параметры функции

Параметр | Описание
currency | Код валюты, параметры которой нужно изменить.
arFields | Массив новых параметров валюты. Значение $arFields["CURRENCY"] должно совпадать с кодом currency изменяемой валюты.

Возвращаемые значения

Код валюты, параметры которой изменили, или False в случае ошибки


CCurrencyLang

CCurrencyLang - класс для работы с языкозависимыми параметрами валют (название, формат и пр.)

Методы класса

Метод | Описание
Add | Функция добавляет новые языкозависимые параметры валюты.
Delete | Функция удаляет языкозависимые свойства валюты для указываемого языка.
GetByID | Функция возвращает массив языкозависимых параметров валюты для указываемого языка.
GetCurrencyFormat | Функция возвращает массив языкозависимых параметров валюты для указываемого языка.
Update | Функция обновляет языкозависимые параметры валюты для указываемого языка.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrencyLang::Add

bool
CCurrencyLang::Add(
 array arFields
);

Функция добавляет новые языкозависимые параметры валюты

Параметры функции

Параметр Описание
arFields

Ассоциативный массив параметров валюты, ключами которого являются названия параметров, а значениями - значения параметров.

Допустимые ключи:
CURRENCY - код валюты, для которой добавляются языкозависимые параметры (обязательно должен присутствовать)
LID - код языка (обязательный)
FORMAT_STRING - строка формата, в соответствии с которой выводится суммы в этой валюте на этом языке (обязательный)
FULL_NAME - полное название валюты
DEC_POINT - символ, являющийся десятичной точкой при выводе сумм (обязательный)
THOUSANDS_SEP - разделитель тысяч при выводе
DECIMALS - количество знаков после запятой при выводе (обязательный)

Возвращаемые значения

Возвращает значение True в случае успешного добавления и False - в противном случае

Пример использования

<?
$arFields = array(
    "FORMAT_STRING" => "# руб", // символ # будет заменен
                                // реальной суммой при выводе
    "FULL_NAME" => "Рубль",
    "DEC_POINT" => ".",
    "THOUSANDS_SEP" => "\xA0",  // неразрывный пробел
    "DECIMALS" => 2,
    "CURRENCY" => "RUR",
    "LID" => "ru"
);

// Если запись существует, обновляем,
// иначе добавляем новую
$db_result_lang = CCurrencyLang::GetByID("RUR", "ru");
if ($db_result_lang)
    CCurrencyLang::Update("RUR", "ru", $arFields);
else
    CCurrencyLang::Add($arFields);
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrencyLang::Delete

bool
CCurrencyLang::Delete(
 string currency,
 string lang
);

Функция удаляет языкозависимые свойства валюты currency для языка lang

Параметры функции

Параметр | Описание
currency | Код валюты для удаления.
lang | Код языка.

Возвращаемые значения

Функция возвращает True в случае успешного удаления и False - в противном случае.


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrencyLang::GetByID

array
CCurrencyLang::GetByID(
 string currency,
 string lang
);

Функция возвращает массив языкозависимых параметров валюты currency для языка lang

Параметры функции

Параметр | Описание
currency | Код валюты, языкозависимые параметры которой нужны.
lang | Код языка.

Возвращаемые значения

Ассоциативный массив с ключами

Ключ | Описание
CURRENCY | Код валюты (трехсимвольный)
LID | Код языка.
FORMAT_STRING | Строка формата, в соответствии с которой выводится суммы в этой валюте на этом языке.
FULL_NAME | Полное название валюты.
DEC_POINT | Символ, являющийся десятичной точкой при выводе сумм.
THOUSANDS_SEP | Разделитель тысяч при выводе.
DECIMALS | Количество знаков после запятой при выводе.

Пример использования

<?
$arFields = array(
    "FORMAT_STRING" => "# руб", // символ # будет заменен
                                // реальной суммой при выводе
    "FULL_NAME" => "Рубль",
    "DEC_POINT" => ".",
    "THOUSANDS_SEP" => "\xA0",  // неразрывный пробел
    "DECIMALS" => 2,
    "CURRENCY" => "RUR",
    "LID" => "ru"
);

// Если запись существует, то обновляем, иначе добавляем новую
$db_result_lang = CCurrencyLang::GetByID("RUR", "ru");
if ($db_result_lang)
    CCurrencyLang::Update("RUR", "ru", $arFields);
else
    CCurrencyLang::Add($arFields);
?>


GetCurrencyFormat

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Количество знаков после запятой при выводе.

Пример использования

<?
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";

    $tmpTHOUSANDS_SEP = $arCurFormat["THOUSANDS_SEP"];
    eval("\$tmpTHOUSANDS_SEP = \"$tmpTHOUSANDS_SEP\";");
    $arCurFormat["THOUSANDS_SEP"] = $tmpTHOUSANDS_SEP;

    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");
?>


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 - количество знаков после запятой при выводе

Возвращаемые значения

Возвращает значение True в случае успешного добавления и False - в противном случае

Пример использования

<?
$arFields = array(
    "FORMAT_STRING" => "# руб", // символ # будет заменен
                                // реальной суммой при выводе
    "FULL_NAME" => "Рубль",
    "DEC_POINT" => ".",
    "THOUSANDS_SEP" => "\xA0",  // неразрывный пробел
    "DECIMALS" => 2,
    "CURRENCY" => "RUR",
    "LID" => "ru"
);

// Если запись существует, то обновляем, иначе добавляем новую
$db_result_lang = CCurrencyLang::GetByID("RUR", "ru");
if ($db_result_lang)
    CCurrencyLang::Update("RUR", "ru", $arFields);
else
    CCurrencyLang::Add($arFields);
?>


CCurrencyRates

CCurrencyRates - класс для работы с курсами валют: сохранение, конвертация и пр.

Методы класса

Метод | Описание
Add | Функция добавляет новую запись в таблицу курсов валют.
ConvertCurrency | Функция переводит сумму из одной валюты в другую по курсу, установленному на конкретную дату.
Delete | Удаляет запись из таблицы курсов валют.
GetByID | Возвращает параметры курса валют.
GetConvertFactor | Функция возвращает коэффициент для перевода сумм на конкретную дату.
GetList | Функция возвращает отсортированный список курсов валют, удовлетворяющих фильтру.
Update | Функция изменяет параметры записи в таблице курсов валют на значения из передаваемого массива.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrencyRates::Add

bool
CCurrencyRates::Add(
 array arFields
);

Функция добавляет новую запись в таблицу курсов валют

Параметры функции

Параметр Описание
arFields

Ассоциативный массив параметров курса валюты, ключами которого являются названия параметров, а значениями - значения параметров.

Допустимые ключи:
CURRENCY - код валюты, для которой добавляется курс (обязательно должен присутствовать)
DATE_RATE - дата, за которую устанавливается курс (обязательный)
RATE_CNT - количество единиц валюты, которое участвует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц) (обязательный)
RATE - курс валюты (одна из валют сайта должна иметь курс "по-умолчанию" 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)

Возвращаемые значения

Возвращает значение True в случае успешного добавления и False - в противном случае

Пример использования

<?
// Считаем, что 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 "Ошибка добавления курса";
?>


ConvertCurrency

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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";
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrencyRates::Delete

bool
CCurrencyRates::Delete(
 int ID
);

Удаляет запись с кодом ID из таблицы курсов валют

Параметры функции

Параметр | Описание
ID | Код записи для удаления.

Возвращаемые значения

Возвращает значение True в случае успешного добавления и False - в противном случае


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrencyRates::GetByID

array
CCurrencyRates::GetByID(
 int ID
);

Возвращает параметры курса валют с кодом ID

Параметры функции

Параметр | Описание
ID | Код курса.

Возвращаемые значения

Ассоциативный массив с ключами

Ключ | Описание
ID | Код курса.
CURRENCY | Код валюты.
DATE_RATE | Дата, за которую установлен курс.
RATE_CNT | количество единиц валюты, которое участвует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
RATE | курс валюты (одна из валют сайта должна иметь курс "по-умолчанию" 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)


GetConvertFactor

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrencyRates::GetConvertFactor

float
CCurrencyRates::GetConvertFactor(
 string curFrom,
 string curTo,
 string valDate = ""
);

Функция возвращает коэффициент для перевода сумм из валюты curFrom в валюту curTo по курсу, установленному на дату valDate

Параметры функции

Параметр | Описание
curFrom | Исходная валюта.
curTo | Валюта назначения.
valDate | Дата, по курсу на которую нужно осуществить перевод. Если дата пуста, то перевод идет по текущему курсу.

Возвращаемые значения

Коэффициент для перевода.

Пример использования

<?
$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";
}
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCurrencyRates::Update

bool
CCurrencyRates::Update(
 int ID,
 array arFields
);

Функция изменяет параметры записи в таблице курсов валют на значения из массива arFields

Параметры функции

Параметр | Описание
ID | Код записи.
arFields

Ассоциативный массив новых параметров курса валюты, ключами которого являются названия параметров, а значениями - значения параметров.

Допустимые ключи:
CURRENCY - код валюты
DATE_RATE - дата, за которую устанавливается курс
RATE_CNT - количество единиц валюты, которое участвует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
RATE - курс валюты (одна из валют сайта должна иметь курс "по-умолчанию" 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)

Возвращаемые значения

Возвращает значение True в случае успешного добавления и False - в противном случае.


CurrencyFormat

string
CurrencyFormat(
 float fSum,
 string strCurrency
);

Функция форматирует сумму fSum в соответствии с правилами форматирования для валюты strCurrency на текущем языке

Параметры функции

Параметр | Описание
fSum | Денежная сумма, которую нужно сформатировать.
strCurrency | Валюта, по правилам которой нужно производить форматирование.

Возвращаемые значения

Возвращает сформатированую строку

Пример использования

<?
echo CurrencyFormat(11800.95, "USD");
?>


Для разработчиков, документооборот

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для разработчиков

Информация, представленная в данном разделе, содержит сведения, необходимые для установки и настройки модуля.


Инсталляция

Этапы установки

Для инсталляции модуля вам необходимо выполнить следующее:

  1. Убедитесь, что версия ядра не менее чем 3.0.14 (версию ядра можно узнать в левом нижнем углу административных страниц). Инсталлятор не даст вам установить модуль, если версия ядра не соответствует требуемой.
  2. Выберите группу администраторов документооборота. При необходимости создайте ее.
  3. Нажмите кнопку Установить на странице списка модулей.
  4. Выберите начальные установки модуля.
  5. Нажмите кнопку Установить.
  6. После окончания установки создайте необходимые статусы документов, а также раздайте права группам на эти статусы.
  7. Убедитесь, что версия модуля Управление статикой не ниже чем 3.0.7.
  8. В меню Управление статикой выберите каталоги, файлы которых будут редактироваться в режиме документооборота. Дайте право Документооборот для групп, имеющих право редактировать документ в режиме документооборота (но не публиковать его). Для групп, имеющих право публикации документа, необходимо дать право Запись на выбранные вами каталоги.
  9. Если у вас установлена версия ядра не менее чем 3.0.14, то для корректной работы панели управления в файле "/bitrix/php_interface/include/prolog_include.php" необходимо внести следующие изменения:
    1. Если у вас данный файл содержит следующий код:

if($USER->IsAdmin())
{
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/top_panel.css");
}
      то вам необходимо удалить его.

    2. Если данный файл содержит код:

if(CModule::IncludeModule("fileman") && $USER->IsAdmin())
{
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/top_panel.php");
}
      то вам необходимо заменить его на

$APPLICATION->GetPanel();

Таблицы

Инсталляция подразумевает создание следующих таблиц в базе:

Таблица | Назначение
b_workflow_document | Документы.
b_workflow_file | Файлы загруженных в документы.
b_workflow_log | История изменений документов.
b_workflow_move | История перемещения документа по статусам (кто, когда, с какого и на какой статус)
b_workflow_preview | Файлы предпросмотра.
b_workflow_status | Статусы.
b_workflow_status2group | Связка статусов с группами пользователей.

Когда таблицы подготовлены, происходит копирование всех необходимых скриптов для администрирования из каталога

\bitrix\modules\workflow\install\public\admin\

в каталог

\bitrix\admin\ :

Файл | Описание
workflow_list.php | Список документов.
workflow_edit.php | Редактирование документа.
workflow_status_list.php | Список статусов.
workflow_status_edit.php | Редактирование статуса.
workflow_history_list.php | Список исторических записей.
workflow_history_view.php | Просмотр исторической записи.
workflow_preview.php | Скрипт создающий файл предпросмотра и перенаправляющий на него.
workflow_dialog.php | Служебный файл для показа диалоговых окон.
workflow_file_download.php | Файл позволяющий просмотреть загруженный в документ файлы.
workflow_filelist.php | Список файлов и каталогов.
workflow_get_file.php | Вызывает диалоговое окно для выбора файла документа.
workflow_select_fname.php |

Начиная с версии 3.0.8 модуль информационных блоков интегрирован с модулем документооборота. Для задания группе пользователей права редактировать элементы информационных блоков в режиме документооборота вам необходимо в соответствующей секции блоков назначить право Документооборот данной группе.


Для разработчиков, реклама

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для разработчиков

В данном разделе представлена информация, необходимая для использования модуля.


Инсталляция

Для инсталляции модуля необходимо:
  1. Перейти на страницу "Модули" и нажать на кнопку "Установить" напротив модуля рекламы.
  2. После установки перейдите на страницу "Типы баннеров" и создайте необходимые вам типы баннеров.
  3. В HTML шаблоне сайта выделите области для показа баннеров того или иного типа. После этого, для вывода баннеров, воспользуйтесь следующей схемой:

<?
// прежде чем начинается вывод страницы, необходимо получить HTML баннеров
if (CModule::IncludeModule("advertising")):
    $strBanner_top	= CAdvBanner::Show("TOP");
    $strBanner_bottom = CAdvBanner::Show("BOTTOM");
    $strBanner_left   = CAdvBanner::Show("LEFT");
endif;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
    <?
    // выводим HTML баннеров в заранее отведенных рекламных областях
    echo $strBanner_top;
    echo $strBanner_bottom;
    echo $strBanner_left;
    ?>
</body>
</html>
    Т.е., перед тем как начинается вывод HTML-контента, вы предварительно запоминаете HTML всех баннеров в PHP переменных, а уже затем используете их вывод в том месте дизайна, где вам необходимо.


Классы

CAdvBanner

Класс для работы с рекламными баннерами.

Методы класса

Метод | Описание
Set | Создает новый баннер, либо обновляет существующий.
GetList | Возвращает список баннеров с использованием фильтра.
GetByID | Возвращает один баннер по его ID.
Delete | Удаляет баннер.
Show | Выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу, фиксирует факт показа баннера в базе данных и возвращает готовый HTML баннера (используется в шаблоне сайта для вывода баннеров).
Click | По заданному ID баннера фиксирует по нему клик в базе данных.
FixShow | Фиксирует в базе данных факт показа баннера.
GetRandom | Выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу и возвращает массив частично его описывающий.
GetHTML | По заданному массиву описывающего баннер возвращает готовый HTML баннера.

CAdvContract

Класс для работы с рекламными контрактами.

Методы класса

Метод | Описание
Set | Создает новый рекламный контракт, либо обновляет существующий.
GetList | Возвращает список контрактов с использованием фильтра.
GetByID | Возвращает один контракт по его ID.
Delete | Удаляет контракт и все баннеру к нему привязанные.
GetUserPermissionArray | Возвращает массив прав заданного пользователя по всем контрактам.
GetContractPermissionArray | Возвращает массив прав всех пользователей по заданному контракту.
IsModuleAccess | Возвращает true, если текущий пользователь отвечает правам переданным в качестве параметров, иначе false.

CAdvType

Класс для работы с типами баннеров.

Методы класса

Метод | Описание
Set | Создает новый тип баннера, либо обновляет существующий.
GetList | Возвращает список типов с использованием фильтра.
GetByID | Возвращает один тип по заданному ID.
Delete | Удаляет тип и все баннеры к нему привязанные.


CAdvBanner

CAdvBanner

Класс для работы с рекламными баннерами.

Методы класса

Метод | Описание
Set | Создает новый баннер, либо обновляет существующий.
GetList | Возвращает список баннеров с использованием фильтра.
GetByID | Возвращает один баннер по его ID.
Delete | Удаляет баннер.
Show | Выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу, фиксирует факт показа баннера в базе данных и возращает готовый HTML баннера (используется в шаблоне сайта для вывода баннеров).
Click | По заданному ID баннера фиксирует по нему клик в базе данных.
FixShow | Фиксирует в базе данных факт показа баннера.
GetRandom | Выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу и возращает массив частично его описывающий.
GetHTML | По заданному массиву описывающего баннер возвращает готовый HTML баннера.
GetKeywords | Функция возвращает весь или часть массива, хранящего ключевые слова, заданные для данной страницы.
ResetKeywords | Функция обнуляет массив (либо его части) ключевых слов баннеров заданных для страницы.
SetDesiredKeywords | Функция задает массив желательных ключевых слов для данной страницы.
SetRequiredKeywords | Функция задает массив обязательных ключевых слов для данной страницы.


CAdvBanner::Click

CAdvBanner::Click

(
 int BANNER_ID,
 int CONTRACT_ID=false
);

Функция фиксирует клик по баннеру в базе данных.

Параметры функции

BANNER_ID
ID баннера
CONTRACT_ID
ID контракта которому принадлежит баннер; если задано false - ID контракта берется из параметров баннера.


CAdvBanner::Delete

boolean
CAdvBanner::Delete(
 int BANNER_ID,
 char(1) CHECK_RIGHTS="Y"
);

Функция удаляет баннер.

Параметры функции

BANNER_ID
ID баннера
CHECK_RIGHTS
"Y" - необходимо проверить право на удаление у текущего пользователя; "N" - прав проверять не надо.


CAdvBanner::FixShow

CAdvBanner::FixShow

(
 array arrBanner
);

Функция фиксирует показ баннера в базе данных. Помимо этого, функция устанавливает cookie в котором фиксирует факт того что посетителю был показан баннер.

Параметры функции

arrBanner
Массив, описывающий параметры баннера; в массиве достаточно и необходимо иметь наличие следующих индексов и соответствующих значений:
  • ID - ID баннера
  • CONTRACT_ID - ID контракта баннера


CAdvBanner::GetByID

record set
CAdvBanner::GetByID(

 int BANNER_ID,

 char(1) CHECK_RIGHTS="Y"

);

Функция возвращает баннер по его ID.

Параметры функции

BANNER_ID
ID баннера
CHECK_RIGHTS
Параметр проверяет уровень доступа к модулю Реклама (администратор рекламы, рекламодатель и т.д.) Если параметр определён как "N", то считается, что текущий пользователь обладает административными правами доступа к модулю Реклама. Если параметр пропущен либо равен "Y", то функция проверяет уровень доступа к контракту, которому принадлежит баннер.

Пример массива, получаемого после 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.2008
    [DATE_CREATE] => 10.06.2004 11:25:59
    [DATE_MODIFY] => 24.06.2004 14:33:56
    [CONTRACT_NAME] => Default
    [TYPE_NAME] => Top banner
)
?>


CAdvBanner::GetHTML

text
CAdvBanner::GetHTML(
 array arrBanner

);

Функция возвращает готовый HTML баннера.

Параметры функции

arrBanner
Массив, описывающий параметры баннера; в массиве достаточно и необходимо иметь наличие следующих индексов и соответствующих значений:
  • IMAGE_ID - ID изображения баннера (если оно используется)
  • IMAGE_ALT - всплывающая подсказка на изображении (если оно используется)
  • URL - ссылка на изображении
  • URL_TARGET - значение параметра target для тэга <a>, влияет на поведение браузера при клике на изображение баннера
  • CODE - код баннера (если используется)
  • CODE_TYPE - тип кода баннера [text | html]


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. Будет найдено несколько баннеров, удовлетворяющих условию ключевых фраз. В этом случае, среди этих баннеров будет выбран один в соответствии с приоритетом, указанным в его настройках, а также в соответствии с приоритетом, указанным в настройках контракта, к которому принадлежит этот баннер.

Помимо этого, необходимо иметь в виду, что под массивом ключевых фраз баннера понимается сумма массива ключевых фраз заданного в настройках баннера и массива ключевых фраз заданного в настройках контракта, к которому принадлежит баннер.


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" - в противном случае будет искаться вхождение
  • 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" - в противном случае будет искаться вхождение (по умолчанию)
is_filtered
Переменная возвращающая true в том случае если список баннеров отфильтрован по какому либо критерию; либо false в противном случае
CHECK_RIGHTS
Параметр проверяет уровень доступа к модулю Реклама (администратор рекламы, рекламодатель и т.д.) Если параметр определён как "N", то считается, что текущий пользователь обладает административными правами доступа к модулю Реклама. Если параметр пропущен либо равен "Y", то функция проверяет уровень доступа к модулю.

Примеры использования

<?
$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=#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.2008
    [DATE_CREATE] => 10.06.2004 11:25:59
    [DATE_MODIFY] => 24.06.2004 14:33:56
    [CONTRACT_NAME] => Default
    [TYPE_NAME] => Top banner
)
?>


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
)


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] => печать
            )
        )
    )
)


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");
}
?>


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"
    В этом варианте по умолчанию в дальнейшем будет также искаться вхождение ключевых слов баннера в данные ключевые слова (либо наоборот).


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"
    В этом варианте по умолчанию в дальнейшем будет также искаться вхождение ключевых слов баннера в данные ключевые слова (либо наоборот).


CAdvBanner::Show

text
CAdvBanner::Show(
 varchar(255) TYPE_SID

);

Функция выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу, фиксирует факт показа баннера в базе данных и возвращает готовый HTML баннера (используется в шаблоне сайта для вывода баннеров).

Параметры функции

TYPE_SID
символьный идентификатор типа

Примеры использования

<!-- Пример кода, который может быть использован
в 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;
?>


1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CAdvContract

CAdvContract

Класс для работы с рекламными контрактами.

Методы класса

Метод | Описание
Set | Создает новый рекламный контракт, либо обновляет существующий.
GetList | Возвращает список контрактов с использованием фильтра.
GetByID | Возвращает один контракт по его ID.
Delete | Удаляет контракт и все баннеру к нему привязанные.
GetUserPermissionArray | Возвращает массив прав заданного пользователя по всем контрактам.
GetContractPermissionArray | Возвращает массив прав всех пользователей по заданному контракту.
IsModuleAccess | Возвращает true, если текущий пользователь отвечает правам переданным в качестве параметров, иначе false.


CAdvContract::Delete

boolean
CAdvContract::Delete(
 int CONTRACT_ID,
 char(1) CHECK_RIGHTS="Y"

);

Функция удаляет контракт и все баннеры к нему привязанные.

Параметры функции

CONTRACT_ID
ID контракта
CHECK_RIGHTS
"Y" - необходимо проверить право на удаление у текущего пользователя; "N" - прав проверять не надо.


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
)
?>


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
                )

        )

)


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 - по максимальному суммарному числу кликов на баннеры контракта
order
Порядок сортировки. Допустимы следующие значения:
  • desc - по убыванию (значение по умолчанию)
  • asc - по возрастанию
arFilter
Массив для фильтрации значений. В массиве допустимы следующие индексы:
  • ID - ID контракта (допускается сложная логика)
  • ID_EXACT_MATCH - "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" - в противном случае будет искаться вхождение (по умолчанию)
is_filtered
Переменная возвращающая true в том случае если список контрактов отфильтрован по какому либо критерию; либо false в противном случае
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
)
?>


CAdvContract::GetUserPermissions

text
CAdvContract::GetUserPermissions(
 int USER_ID=false
);

Функция возвращает массив прав заданного пользователя по всем контрактам.

Параметры функции

USER_ID
ID пользователя; если не определён - используется ID текущего пользователя

Пример массива массива возвращаемого функцией

Array
(
    [34] => Array
        (
            [0] => ADD
            [1] => VIEW
            [2] => EDIT
        )
    [52] => Array
        (
            [0] => ADD
            [1] => VIEW
        )
)
Индексом массива является ID контракта.
Значением - массив прав на данный контракт.


CAdvContract::IsModuleAccess

boolean
CAdvContract::IsModuleAccess(
 char(1) permission
);

Функция возвращает true, если текущий пользователь имеет право, переданное в качестве параметра, иначе false.

Параметры функции

permission
символ отвечающий за тот или иное право на модуль рекламы, возможны следующие значения:
  • D - доступ закрыт
  • K - работа с контрактами (рекламодатель)
  • R - просмотр всего без права изменения
  • T - управление баннерами
  • W - полный административный доступ


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");
}
?>


1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CAdvType

CAdvType

Класс для работы с типами баннеров.

Методы класса

Метод | Описание
Set | Создает новый тип баннера, либо обновляет существующий.
GetList | Возвращает список типов с использованием фильтра.
GetByID | Возвращает один тип по заданному ID.
Delete | Удаляет тип и все баннеры к нему привязанные.


CAdvType::Delete

boolean
CAdvType::Delete(
 varchar(255) TYPE_SID,
 char(1) CHECK_RIGHTS="Y"
);

Функция удаляет тип баннеров и все баннеры к нему привязанные.

Параметры функции

TYPE_SID
символьный идентификатор типа
CHECK_RIGHTS
"Y" - необходимо проверить право на удаление у текущего пользователя; "N" - прав проверять не надо.


CAdvType::GetByID

record set
CAdvType::GetByID(
 varchar(255) TYPE_SID,

 char(1) CHECK_RIGHTS="Y"
);

Функция возвращает тип баннера по его символьному ID.

Параметры функции

TYPE_SID
символьный ID типа
CHECK_RIGHTS
Параметр проверяет уровень доступа к модулю Реклама (администратор рекламы, рекламодатель и т.д.) Если параметр определён как "N", то считается, что текущий пользователь обладает административными правами доступа к модулю Реклама. Если параметр пропущен либо равен "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
)
?>


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", то функция проверяет уровень доступа к контракту, которому принадлежит баннер.

Примеры использования

<?
$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
)
?>


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("catalog"))
{
   //здесь можно использовать функции модуля
}
?>

Перед использованием какого-либо информационного блока в качестве торгового каталога необходимо проверить является ли этот информационный блок каталогом (т.е. подключен ли он к модулю торгового каталога) при помощи конструкции:

<?
if (CCatalog::GetByID($IBLOCK_ID))
{
   //здесь можно работать с информационым блоком
   //как с торговым каталогом
}
?>

Обе эти конструкции можно объеденить в одну, которая проверяет, установлен ли модуль торгового каталога (и подключает его), и можно ли использовать текущий информационный блок с кодом $IBLOCK_ID в качестве торгового каталога:

<?
if (CModule::IncludeModule("catalog")
   && CCatalog::GetByID($IBLOCK_ID))
{
   //здесь можно работать с информационым блоком
   //как с торговым каталогом
}
?>

См. также

Показ цен - показ цен торгового каталога.
Занесение в корзину - занесение товаров торгового каталога в корзину модуля продаж.


Добавление в корзину, каталог

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Добавление в корзину

Модуль торгового каталога включает в себя функции-оболочки для работы с модулем продаж.

Add2Basket

int
Add2Basket(
 int PRICE_ID[,
 int QUANTITY = 1[,
 array arRewriteFields = array()[,
 array arProductParams = array()]]]
);

Функция добавляет в корзину товар с кодом цены PRICE_ID в количестве QUANTITY единиц (по умолчанию одну штуку) и возвращает код позиции товара в корзине.

Параметры функции

Параметр | Описание
PRICE_ID | Код цены товара.
QUANTITY | Количество добавляемых единиц товара (по умолчанию - одна штука)
arRewriteFields | Вспомогательный параметр. Должен быть равен array()
arProductParams Свойства товара в корзине. Представляет собой массив ассоциативных массивов с ключами:
  • NAME - название свойства
  • CODE - мнемонический код свойства
  • VALUE - значение свойства

Возвращаемое значение

Код вставленной в корзину записи или False в случае ошибки.

Пример использования

<?
if (CModule::IncludeModule("sale") && 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");
    }
}
?>

Функции обратного вызова

array
CatalogBasketCallback(
 int PRODUCT_ID [,
 int QUANTITY] )

);
void
CatalogBasketOrderCallback(
 int PRODUCT_ID,
 int QUANTITY
);

Функции обратного вызова для обработки корзины и заказа. Подробнее о функциях обратного вызова смотрите в разделе помощи модуля продаж.

Add2BasketByProductID

int
Add2BasketByProductID(
 int PRODUCT_ID[,
 int QUANTITY = 1[,
 array arProductParams = array()]]
);

Функция добавляет в корзину товар с кодом PRODUCT_ID в количестве QUANTITY единиц (по умолчанию одну штуку) и возвращает код позиции товара в корзине.

Параметры функции

Параметр | Описание
PRODUCT_ID | Код товара.
QUANTITY | Количество добавляемых единиц товара (по умолчанию - одна штука)
arProductParams Свойства товара в корзине. Представляет собой массив ассоциативных массивов с ключами:
  • NAME - название свойства
  • CODE - мнемонический код свойства
  • VALUE - значение свойства

Возвращаемое значение

Код вставленной в корзину записи или False в случае ошибки.

Пример использования

<?
if (CModule::IncludeModule("sale") && 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.
array GetCatalogGroup(int CATALOG_GROUP_ID) | Возвращает тип цены кодом CATALOG_GROUP_ID.
array GetCatalogProductPrice(int PRODUCT_ID, int CATALOG_GROUP_ID) | Возвращает цену типа CATALOG_GROUP_ID для товара с кодом PRODUCT_ID.
array GetCatalogProductPriceList(int PRODUCT_ID, string by, string order) | Возвращает массив цен для товара PRODUCT_ID, отсортированный по полю by в порядке order.
array GetCatalogProduct(int PRODUCT_ID) | Возвращает товар с кодом PRODUCT_ID.
string FormatCurrency(double PRICE, string CURRENCY) | Форматирует число (цену) PRICE в соответствии с форматом, заданным для валюты CURRENCY.

GetCatalogGroups

CDBResult
GetCatalogGroups(
 string by,
 string order
);

Функция возвращает список типов цен, отсортированный по полю by в порядке order.

Параметры функции

Параметр | Описание
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.

Параметры функции

Параметр | Описание
CATALOG_GROUP_ID | Код типа цены.

Возвращаемые значения

Массив той же структуры,
что и каждая запись набора, возвращаемого функцией CDBResult GetCatalogGroups(string by,
string order)

GetCatalogProductPrice

array
GetCatalogProductPrice(
 int PRODUCT_ID,
 int CATALOG_GROUP_ID
);

Функция возвращает цену типа CATALOG_GROUP_ID для товара с кодом PRODUCT_ID.

Параметры функции

Параметр | Описание
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.

Параметры функции

Параметр | Описание
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.

Параметры функции

Параметр | Описание
PRODUCT_ID | Код товара.

Возвращаемые значения

Массив следующей структуры:

Параметр | Описание
ID | Код товара.
QUANTITY | Количество товара.
QUANTITY_TRACE | Y - отслеживать количество товара, N - не отслеживать.
WEIGHT | Вес товара.

FormatCurrency

string
FormatCurrency(
 double PRICE,
 string CURRENCY
);

Функция форматирует число (цену) PRICE в соответствии с форматом, заданным для валюты CURRENCY.

Параметры функции

Параметр | Описание
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 "Можно купить";
}
?>


Кастомизация импорта из CommerceML, каталог

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Кастомизация импорта из CommerceML

Формат обмена коммерческой информацией CommerceML имеет строго определённую структуру. Поэтому импорт данных из этого формата на сайт производится без дополнительных вопросов и настроек. Между тем иногда возникает потребность несколько изменить логику импорта и / или физический смысл некоторых полей файла CommerceML. В этом случае для изменения логики загрузки данных можно воспользоваться специальным механизмом "мутации" данных.

Примечание. Подробно структура CommerceML описана на официальном сайте стандарта http://www.commerceml.ru

Допускается мутация свойств товаров, параметров и свойств элемента инфоблока, который является товаром, а так же параметров товара как такового. Мутация каждого из элементов осуществляется независимо с помощью специальных функций, которые должны быть реализованы в файле
/bitrix/php_interface/include/1c_mutator.php
(файл необходимо создать, если его ещё нет).

Мутация свойств

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
catalog_property_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
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;
}
?>


Классы модуля каталога

Важно!
Модуль торгового каталога является надстройкой к модулю информационных блоков и не работает самостоятельно.

В каталоге товаров дерево групп и товары с набираемыми свойствами формируются средствами модуля информационных блоков. С помощью методов класса CCatalogProduct к товару (элементу каталога) пристегивается дополнительная запись, задающая значения свойств, специфичных для товара (вес, количество на складе и т.п.).

Следующие PHP классы используются в модуле каталога.

Классы

Класс | Описание
CCatalog | Содержит методы для подключения/отключения информационного блока к модулю торгового каталога (т.е. для указания, что информационный блок является каталогом).
CCatalogDiscount | Класс для управления скидками.
CCatalogGroup | Класс для управления типами цен торгового каталога.
CCatalogProduct | Класс для управления свойствами (параметрами) товара, которые относятся к товару как к таковому (вес, количество на складе и т.п.).
CCatalogProductGroups | Класс для управления свойствами групп товаров.
CExtra | Класс для управления наценками к базовой цене товара.
CPrice | Класс для работы с ценами товаров (т.е. с предложениями).
© «Битрикс», 2001-2007, «1C-Битрикс», 2007 1С-Битрикс: Управление сайтом


CCatalog

Методы класса

Метод | Описание
GetList | Функция возвращает результат выборки записей из каталога в соответствии со своими параметрами.
Update | Функция изменяет параметры записи с кодом ID в таблице привязывания информационного блока к модулю Торгового Каталога.
Add | Функция служит для добавления новой записи в таблицу привязывания информационного блока к модулю Торгового Каталога.
Delete | Функция удаляет привязку информационного блока с кодом ID к торговому каталогу. При этом удаляются так же параметры товаров и предложения, относящиеся к этому каталогу. Описания товаров, относящиеся к элементу информационного блока, остаются неизменными.
GetByID | Возвращает массив параметров каталога, включая некоторые параметры, относящиеся к информационному блоку.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalog::Add

bool
CCatalog::Add(
 array arFields
);

Функция служит для добавления новой записи в таблицу привязывания информационного блока к модулю Торгового Каталога.

Параметры функции

Параметр Описание
arFields Массив параметров привязки; должен иметь следующий вид:
$arFields = array(
   "IBLOCK_ID" => [код инфоблока],
   "YANDEX_EXPORT" => [флаг "экспортировать в Яндекс.Товары" Y/N],
   "SUBSCRIPTION" => [флаг "Продажа контента" Y/N],
);

Возвращаемые значения

Возвращает true в случае успешного добавления записи и false - в противном случае.


Delete

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalog::Delete

bool
CCatalog::Delete(
 int ID
);

Функция удаляет привязку информационного блока с кодом ID к торговому каталогу. При этом удаляются так же параметры товаров и предложения, относящиеся к этому каталогу. Описания товаров, относящиеся к элементу информационного блока, остаются неизменными.

Параметры функции

Параметр | Описание
ID | Код информационного блока - каталога.

Возвращаемые значения

Возвращает true в случае успешного добавления записи и false - в противном случае.


GetByID

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalog::GetByID

array
CCatalog::GetByID(
 int ID
);

Возвращает массив параметров каталога, включая некоторые параметры, относящиеся к информационному блоку

Параметры функции

Параметр | Описание
ID | Код каталога - инфоблока.

Возвращаемые значения

Возвращает ассоциативный массив с ключами

Ключ | Описание
SUBSCRIPTION | Флаг "Продажа контента"
IBLOCK_ID | Код информационного блока.
IBLOCK_TYPE_ID | Тип информационного блока.
NAME | Название информационного блока.
YANDEX_EXPORT | флаг "экспортировать в Яндекс.Товары"


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле каталога.

Пример фильтра:
array("SUBSCRIPTION" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле SUBSCRIPTION (флаг "Продажа контента") равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи каталога. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле каталога. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращает объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами:

Ключ | Описание
ID | Код информационного блока.
IBLOCK_ID | Код информационного блока.
IBLOCK_TYPE_ID | Тип информационного блока.
SUBSCRIPTION | Флаг "Продажа контента".
NAME | Название информационного блока.
YANDEX_EXPORT | флаг "экспортировать в Яндекс.Товары"

Если в качестве параметра arGroupBy передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.


Update

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalog::Update

bool
CCatalog::Update(
 int ID,
 array arFields
);

Функция изменяет параметры записи с кодом ID в таблице привязывания информационного блока к модулю Торгового Каталога.

Параметры функции

Параметр | Описание
ID | Код записи для изменения.
arFields Ассоциативный массив новых параметров записи, ключами с котором являются названия параметров, а значениями - новые значения.
Допустимые ключи:
  • YANDEX_EXPORT - флаг "экспортировать в Яндекс.Товары" [Y/N];
  • SUBSCRIPTION - флаг "Продажа контента" [Y/N].

Возвращаемые значения

Возвращает true в случае успешного изменения записи и false - в противном случае.


CCatalogDiscount

Методы класса

Метод | Описание
Add | Метод добавляет новую скидку в соответствии с данными из массива arFields.
Delete | Метод удаляет скидку с кодом ID.
SetCoupon | Метод добавляет код купона coupon в массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов.
GetCoupons | Метод возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов.
ClearCoupon | Метод очищает возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов.
GetDiscountByPrice | Метод вычисляет скидку на цену с кодом productPriceID товара для пользователя, принадлежащего группам пользователей arUserGroups.
GetDiscountByProduct | Метод вычисляет скидку на товар с кодом productID для пользователя, принадлежащего группам пользователей arUserGroups.
GetByID | Метод выбирает параметры скидки по ее коду ID.
GetList | Функция возвращает результат выборки записей скидок в соответствии со своими параметрами.
GetDiscountGroupsList | Функция возвращает результат выборки записей с информацией о привязке скидок к группам пользователей в соответствии со своими параметрами.
GetDiscountCatsList | Функция возвращает результат выборки записей с информацией о привязке скидок к типам цен в соответствии со своими параметрами.
GetDiscountProductsList | Функция возвращает результат выборки записей с информацией о привязке скидок к товарам в соответствии со своими параметрами.
GetDiscountSectionsList | Функция возвращает результат выборки записей с информацией о привязке скидок к группам товаров в соответствии со своими параметрами.
Update | Метод изменяет параметры скидки с кодом ID в соответствии с данными из массива arFields.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogDiscount::Add

bool
CCatalogDiscount::Add(
 array arFields
);

Метод добавляет новую скидку в соответствии с данными из массива arFields.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров новой скидки, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • SITE_ID - сайт;
  • ACTIVE - флаг активности;
  • NAME - название скидки;
  • COUPON - код купона;
  • SORT - индекс сортировки;
  • MAX_DISCOUNT - максимальная величина скидки;
  • VALUE_TYPE - тип скидки (P - в процентах, F - фиксированная величина);
  • VALUE - величина скидки;
  • CURRENCY - валюта;
  • RENEWAL - флаг "Скидка на продление";
  • ACTIVE_FROM - дата начала действия скидки;
  • ACTIVE_TO - дата окончания действия скидки;
  • PRODUCT_IDS - массив кодов товаров, на которые действует скидка (если скидка действует не на все товары);
  • SECTION_IDS - массив кодов групп товаров, на которые действует скидка (если скидка действует не на все группы товары);
  • GROUP_IDS - массив кодов групп пользователей, на которые действует скидка (если скидка действует не на все группы пользователей);
  • CATALOG_GROUP_IDS - массив кодов типов цен, на которые действует скидка (если скидка действует не на все типы цен).

Возвращаемые значения

Метод возвращает код вставленной записи или false в случае ошибки.


ClearCoupon

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogDiscount::ClearCoupon

void
CCatalogDiscount::ClearCoupon();

Метод очищает возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов.

Параметры функции

Без параметров.

Возвращаемые значения

Метод не возвращает значений.


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogDiscount::Delete

bool
CCatalogDiscount::Delete(
 int ID
);

Метод удаляет скидку с кодом ID.

Параметры функции

Параметр | Описание
ID | Код удаляемой записи.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки.


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogDiscount::GetCoupons

array
CCatalogDiscount::GetCoupons();

Метод возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов.

Параметры функции

Без параметров.

Возвращаемые значения

Метод возвращает массив купонов текущего пользователя.


GetDiscountByPrice

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogDiscount::GetDiscountByPrice

bool
CCatalogDiscount::GetDiscountByPrice(
 int productPriceID[,
 array arUserGroups = array()[,
 string renewal = "N"[,
 string siteID = false]]]
);

Метод вычисляет скидку на цену с кодом productPriceID товара для пользователя, принадлежащего группам пользователей arUserGroups.

Параметры функции

Параметр | Описание
productPriceID | Код цены.
arUserGroups | массив групп, которым принадлежит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
renewa | Флаг "Продление подписки".
siteID | Сайт (по умолчанию текущий).

Возвращаемые значения

Метод возвращает массив ассоциативных массивов скидок или 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogDiscount::GetDiscountByProduct

bool
CCatalogDiscount::GetDiscountByProduct(
 int productID = 0[,
 array arUserGroups = array()[,
 string renewal = "N"[,
 array arCatalogGroups = array()[,
 string siteID = false]]]
);

Метод вычисляет скидку на товар с кодом productID для пользователя, принадлежащего группам пользователей arUserGroups.

Параметры функции

Параметр | Описание
productID | Код товара arUserGroups - массив групп, которым принадлежит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
renewal | Флаг "Продление подписки"
arCatalogGroups | Массив типов цен, для которых искать скидку.
siteID | Сайт (по умолчанию текущий)

Возвращаемые значения

Метод возвращает массив ассоциативных массивов скидок или false в случае ошибки. В массиве содержится ассоциативный массив параметров максимальной процентной скидки (если есть) и ассоциативный массив параметров максимальной фиксированной скидки (если есть).

Пример использования

<?
$arDiscounts = CCatalogDiscount::GetDiscountByProduct(
        150,
        $USER->GetUserGroupArray(),
        "N",
        2,
        SITE_ID
    );
?>


GetDiscountCatsList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле записи.

Пример фильтра:
array("!DISCOUNT_ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) не равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • DISCOUNT_ID - код скидки;
  • CATALOG_GROUP_ID - код типа цены.

Если в качестве параметра arGroupBy передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.


GetDiscountGroupsList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле записи.

Пример фильтра:
array("!GROUP_ID" => 5)
Этот фильтр означает "выбрать все записи, в которых значение в поле GROUP_ID (код группы пользователей) не равно 5".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • DISCOUNT_ID - код скидки;
  • GROUP_ID - код группы пользователей.

Если в качестве параметра arGroupBy передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.


GetDiscountProductsList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле записи.

Пример фильтра:
array("!DISCOUNT_ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) не равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • DISCOUNT_ID - код скидки;
  • PRODUCT_ID - код товара.

Если в качестве параметра arGroupBy передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.


GetDiscountSectionsList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле записи.

Пример фильтра:
array("!DISCOUNT_ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) не равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • DISCOUNT_ID - код скидки;
  • PRODUCT_ID - код товара.

Если в качестве параметра arGroupBy передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле скидки.

Пример фильтра:
array("!DISCOUNT_ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) не равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются скидки. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле скидки. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • SITE_ID - сайт;
  • ACTIVE - флаг активности;
  • NAME - название скидки;
  • COUPON - код купона;
  • 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogDiscount::SetCoupon

bool
CCatalogDiscount::SetCoupon(
 string coupon
);

Метод добавляет код купона coupon в массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов.

Параметры функции

Параметр | Описание
coupon | Код купона.

Возвращаемые значения

Метод возвращает true в случае успешного добавления кода купона и false в случае ошибки.


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogDiscount::Update

bool
CCatalogDiscount::Update(
 int ID,
 array arFields
);

Метод изменяет параметры скидки с кодом ID в соответствии с данными из массива arFields.

Параметры функции

Параметр | Описание
ID | Код скидки.
arFields Ассоциативный массив параметров новой скидки, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • SITE_ID - сайт;
  • ACTIVE - флаг активности;
  • NAME - название скидки;
  • COUPON - код купона;
  • SORT - индекс сортировки;
  • MAX_DISCOUNT - максимальная величина скидки;
  • VALUE_TYPE - тип скидки (P - в процентах, F - фиксированная величина);
  • VALUE - величина скидки;
  • CURRENCY - валюта;
  • RENEWAL - флаг "Скидка на продление";
  • ACTIVE_FROM - дата начала действия скидки;
  • ACTIVE_TO - дата окончания действия скидки;
  • PRODUCT_IDS - массив кодов товаров, на которые действует скидка (если скидка действует не на все товары);
  • SECTION_IDS - массив кодов групп товаров, на которые действует скидка (если скидка действует не на все группы товары);
  • GROUP_IDS - массив кодов групп пользователей, на которые действует скидка (если скидка действует не на все группы пользователей);
  • CATALOG_GROUP_IDS - массив кодов типов цен, на которые действует скидка (если скидка действует не на все типы цен).

Возвращаемые значения

Метод возвращает код измененной записи или false в случае ошибки.


CCatalogGroup

Методы класса

Метод | Описание
Add | Функция добавляет новый тип цен. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа.
Delete | Функция удаляет тип цены с кодом ID. При этом цены этого типа так же удаляются. Базовый тип цен удалить невозможно.
GetBaseGroup | Функция возвращает код и внутреннее название базового типа цен. Результат работы функции кэшируется, поэтому повторные вызовы этой функции в рамках одной страницы не приводят к дополнительным запросам базы данных.
GetByID | Функция возвращает параметры типа цен с кодом ID, включая языкозависимые параметры для языка lang
GetGroupsList | Функция возвращает записи из таблицы связей между типами цен и группами пользователей сайта по фильтру arFilter
GetList | Функция возвращает результат выборки записей из типов цен каталога в соответствии со своими параметрами.
Update | Функция изменяет параметры типа цены с кодом ID на значения из массива arFields. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogGroup::Add

int
CCatalogGroup::Add(
 array arFields
);

Функция добавляет новый тип цен. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров типа цены, ключами которого являются названия параметров, а значениями - новые значения.
Допустимые параметры:
  • NAME - внутреннее название типа цены;
  • SORT - индекс сортировки;
  • 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 "Ошибка добавления типа цены";
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogGroup::Delete

bool
CCatalogGroup::Delete(
 int ID
);

Функция удаляет тип цены с кодом ID. При этом цены этого типа так же удаляются. Базовый тип цен удалить невозможно.

Параметры функции

Параметр | Описание
ID | Код удаляемого типа цены.

Возвращаемые значения

Возвращает true в случае успешного удаления и false - в противном случае


GetBaseGroup

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogGroup::GetBaseGroup

array CCatalogGroup::GetBaseGroup();

Функция возвращает код и внутреннее название базового типа цен. Результат работы функции кэшируется, поэтому повторные вызовы этой функции в рамках одной страницы не приводят к дополнительным запросам базы данных.

От цены базового типа расчитываются цены других типов, если они указаны с использованием системы наценок. Понятие базового типа цены используется только в административной части и не оказывает влияния на публичную часть.

Возвращаемые значения

Функция возвращает ассоциативный массив с ключами:

Ключ | Описание
ID | Код базового типа цен.
NAME | Внутреннее название базового типа цен.


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogGroup::GetByID

array
CCatalogGroup::GetByID(
 int ID,
 string lang = LANGUAGE_ID
);

Функция возвращает параметры типа цен с кодом ID, включая языкозависимые параметры для языка lang

Параметры функции

Параметр | Описание
ID | Код типа цены.
lang | Код языка, по умолчанию равен текущему языку.

Возвращаемые значения

Возвращает ассоциативный массив со следующими ключами:

Ключ | Описание
ID | Код типа цены.
NAME | Внутреннее название типа цены.
BASE | Флаг (Y/N) является ли тип базовым.
SORT | Индекс сортировки.
CAN_ACCESS | Флаг (Y/N) имеет ли текущий пользователь право на видеть цены этого типа.
CAN_BUY | Флаг (Y/N) имеет ли текущий пользователь право покупать товары по ценам этого типа.
NAME_LANG | Название типа цены на языке lang

Пример использования

<?
$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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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"].", ";
}
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле цен каталога.

Пример фильтра:
array("SUBSCRIPTION" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле SUBSCRIPTION (флаг "Продажа контента") равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов цен каталога. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов цен каталога. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - 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.

Пример использования

<?
// Выберем типы цен с внутренним именем retail
$dbPriceType = CCatalogGroup::GetList(
        array("SORT" => "ASC"),
        array("NAME" => "retail")
    );
while ($arPriceType = $dbPriceType->Fetch())
{
    echo $arPriceType["NAME_LANG"]." - ".$arPriceType["CAN_ACCESS"]."<br>";
}
?>


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogGroup::Update

bool
CCatalogGroup::Update(
 int ID,
 array arFields
);

Функция изменяет параметры типа цены с кодом ID на значения из массива arFields. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа.

Параметры функции

Параметр | Описание
ID | Код изменяемого типа цены.
arFields Ассоциативный массив параметров типа цены, ключами которого являются названия параметров, а значениями - новые значения. Допустимые параметры:
  • NAME - внутреннее название типа цены;
  • SORT - индекс сортировки;
  • 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 "Ошибка добавления типа цены";
?>


CCatalogProduct

Методы класса

Метод | Описание
Add | Функция добавляет (или обновляет) параметры товара к элементу каталога.
CountPriceWithDiscount | Метод приминяет к цене price в валюте currency наибольшую скидку из массива arDiscounts.
Delete | Функция удаляет из элемента каталога свойства, относящиеся к товару.
GetList | Функция возвращает результат выборки записей товаров в соответствии со своими параметрами.
GetByIDEx | Функция по коду товара ID возвращает все параметры этого товара, включая относящиеся к товару как к элементу информационного блока.
GetByID | Функция по коду товара ID возвращает массив параметров товара (которые относятся к товару как к таковому).
GetNearestQuantityPrice | Функция по коду товара ID возвращает массив параметров товара (которые относятся к товару как к таковому).
GetOptimalPrice | Метод возвращает параметры наименьшей цены товара productID в количестве quantity для посетителя, входящего в группы пользователей arUserGroups.
QuantityTracer | Уменьшает количество на складе товара с кодом PRODUCT_ID на величину DELTA_QUANTITY, если указанное количество есть на складе и у товара установлен флаг "уменьшать количество товара при заказе".
Update | Функция обновляет параметры товара, относящиеся к товару как к таковому.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::Add

bool
CCatalogProduct::Add(
 array arFields
);

Функция добавляет (или обновляет) параметры товара к элементу каталога

Параметры функции

Параметр Описание
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 - флаг "Продление подписки без оформления заказа"

Возвращаемые значения

Возвращает true в случае успешного обновления параметров и false в противном случае.


CountPriceWithDiscount

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::CountPriceWithDiscount

array
CCatalogProduct::CountPriceWithDiscount(
 double price,
 string currency,
 array arDiscounts
);

Метод приминяет к цене 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" => "максимальный размер скидки"
            ),
        * * *
    )

Возвращаемые значения

Метод возвращает наименьшую цену, которую можно получить с помощью наибольшей скидки.

Пример использования

<?
// Для товара с кодом $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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::Delete

bool
CCatalogProduct::Delete(
 int ID
);

Функция удаляет из элемента каталога свойства, относящиеся к товару

Параметры функции

Параметр | Описание
ID | Код товара (элемента каталога)

Возвращаемые значения

Возвращает true в случае успешного удаления и false в противном случае


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::GetByID

array
CCatalogProduct::GetByID(
 int ID
);

Функция по коду товара ID возвращает массив параметров товара (которые относятся к товару как к таковому)

Параметры функции

Параметр | Описание
ID | Код товара.

Возвращаемые значения

Ассоциативный массив параметров товара с ключами

Ключ | Описание
ID | Код товара.
QUANTITY | Количество на складе.
QUANTITY_TRACE | Флаг (Н/Т) "уменьшать количество при оформлении заказа"
WEIGHT | Вес единицы товара.
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 | Дата последнего изменения записи.

Пример использования

<?
$ID = 5;
$ar_res = CCatalogProduct::GetByID($ID);
echo "<br>Товар с кодом ".$ID." имеет следующие параметры:<pre>";
print_r($ar_res);
echo "</pre>";
?>


GetByIDEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::GetByIDEx

array
CCatalogProduct::GetByIDEx(
 int ID
);

Функция по коду товара ID возвращает все параметры этого товара, включая относящиеся к товару как к элементу информационного блока.

Параметры функции

Параметр | Описание
ID | Код товара.

Возвращаемые значения

Возвращает ассоциативный массив параметров товара или false в случае ошибки. Для просмотра всех доступных параметров воспользуйтесь кодом из приведенного ниже примера.

Пример использования

<?
$ID = 5;
$ar_res = CCatalogProduct::GetByIDEx($ID);
echo "<br>Товар с кодом ".$ID." имеет следующие параметры:<br><pre>";
print_r($ar_res);
echo "</pre>";
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::GetList

CDBResult
CCatalogProduct::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("SUBSCRIPTION" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле SUBSCRIPTION (флаг "Продажа контента") равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов товара. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов товара. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Объект класса CDBResult, содержащий записи в виде ассоциативных массивов параметров товара с ключами

Ключ | Описание
ID | Код товара.
QUANTITY | Количество на складе.
QUANTITY_TRACE | Флаг (Н/Т) "уменьшать количество при оформлении заказа"
WEIGHT | Вес единицы товара.
PRICE_TYPE | Тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка)
RECUR_SCHEME_TYPE | Тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год)
RECUR_SCHEME_LENGTH | Тлина периода подписки.
TRIAL_PRICE_ID | Код товара, для которого данный товар является пробным.
WITHOUT_ORDER | Флаг "Продление подписки без оформления заказа"

Пример использования

<?
// Выведем коды 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::GetNearestQuantityPrice

int
CCatalogProduct::GetNearestQuantityPrice(
 int productID[,
 int quantity = 1[,
 array arUserGroups = array()]]
);

Функция по коду товара ID возвращает массив параметров товара (которые относятся к товару как к таковому)

Параметры функции

Параметр | Описание
productID | Код товара.
quantity | Количество, ближайшее продаваемое количество к которому необходимо найти.
arUserGroups | массив групп, которым принадлежит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()

Возвращаемые значения

Количество товара, доступное для покупки.

Пример использования

<?
$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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::GetOptimalPrice

array
CCatalogProduct::GetOptimalPrice(
 int productID[,
 int quantity = 1[,
 array arUserGroups = array()[,
 string renewal = "N"[,
 array arPrices = array()[,
 string siteID = false]]]]]
);

Метод возвращает параметры наименьшей цены товара productID в количестве quantity для посетителя, входящего в группы пользователей arUserGroups.

Параметры функции

Параметр | Описание
productID | Код товара.
quantity | Приобретаемое количество.
arUserGroups | массив групп, которым принадлежит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
renewal | "Y", если вычисляется для продления товара (продажа контента), "N" в остальных случаях.
arPrices Массив цен. Если он установлен, то пересчет идет не по ценам из базы данных, а по ценам из этого массива. Представляет собой массив ассоциативных массивов с ключами:
  • ID - код цены;
  • PRICE - цена;
  • CURRENCY - валюта;
  • CATALOG_GROUP_ID - код типа цен.
siteID | Сайт, для которого производится вычисление. Если парамерт равен false, то берется текущий сайт.

Возвращаемые значения

Массив вида:

array(
 "PRICE" => массив_параметров_минимальной_цены,
 "DISCOUNT_PRICE" => минимальная_цена_в_базовой_валюте,
 "DISCOUNT" => массив_параметров_максимальной_доступной_скидки
)

Пример использования

<?
$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>";
?>


QuantityTracer

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::QuantityTracer

bool
CCatalogProduct::QuantityTracer(
 int PRODUCT_ID,
 int DELTA_QUANTITY
);

Уменьшает количество на складе товара с кодом PRODUCT_ID на величину DELTA_QUANTITY, если указанное количество есть на складе и у товара установлен флаг "уменьшать количество товара при заказе"

Параметры функции

Параметр | Описание
PRODUCT_ID | Код товара.
DELTA_QUANTITY | Число, на которое нужно уменьшить количество товара на складе.

Возвращаемые значения

Возвращает true в случае успешного уменьшения и false - в противном случае

Пример использования

<?
// Уменьшим количество на складе товара 5 на 12 штук
CCatalogProduct::QuantityTracer(5, 12);
?>


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProduct::Update

bool
CCatalogProduct::Update(
 int ID,
 array arFields
);

Функция обновляет параметры товара, относящиеся к товару как к таковому

Параметры функции

Параметр | Описание
ID | Код товара.
arFields Ассоциативный массив, ключами которого являются названия параметров товара, а значениями - новые значения параметров.
Допустимые ключи:
  • 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 - флаг "Продление подписки без оформления заказа".

Возвращаемые значения

Возвращает true в случае успешного обновления параметров и false в противном случае.


CCatalogProductGroups

Методы класса

Метод | Описание
Add | Метод добавляет новую запись с информацией о связи товара и группы пользователей, к которой пользователь привязывается при покупке товара, в соответствии с данными из массива arFields.
Delete | Метод удаляет информацию о связи товаров и группы пользователей, к которой пользователь привязывается при покупке товара.
GetByID | Метод выбирает параметры информации о связи между товаром и группами пользователей по коду информации ID.
GetList | Функция возвращает результат выборки записей информации о связи товаров и групп пользователей, к которым пользователь привязывается при покупке товара, в соответствии со своими параметрами.
Update | Метод изменяет параметры записи с кодом ID информации о связи товаров и групп пользователей, к которым пользователь привязывается при покупке товара, в соответствии с данными из массива arFields.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 в случае ошибки.


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProductGroups::Delete

bool
CCatalogProductGroups::Delete(
 int ID
);

Метод удаляет информацию о связи товаров и группы пользователей, к которой пользователь привязывается при покупке товара.

Параметры функции

Параметр | Описание
ID | Код удаляемой записи.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки.


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

CDBResult
CCatalogProductGroups::GetList(
 array arOrder = array(),
 array arFilter = array(),
1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCatalogProductGroups::GetList

 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("PRODUCT_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле PRODUCT_ID (код товара) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 в случае ошибки.


CExtra

Методы класса

Метод | Описание
Add | Добавляет новую запись в таблицу наценок.
Delete | Удаляет запись наценки из базы. Цены, которые были заданы в виде наценки от базовой цены, становятся заданными абсолютным значением. Сама величина цены не меняется.
GetByID | Функция возвращает параметры наценки по ее коду ID
GetList | Функция возвращает список наценок, отсортированый по полю by в направлении order
SelectBox | Функция возвращает HTML код для отображения выпадающего списка (select) наценок. Функция кэширует список наценок, поэтому ее повторный вызов на одной странице не приводит к дополнительным запросам базы данных.
Update | Функция обновляет параметры наценки с кодом ID на значения из массива arFields.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CExtra::Add

bool
CExtra::Add(
 array arFields
);

Добавляет новую запись в таблицу наценок

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров записи с ключами:
  • NAME - название наценки;
  • PERCENTAGE - процент наценки (может быть как положительным, так и отрицательным)

Возвращаемые значения

Возвращает true в случае успешного сохранения и false - в противном случае


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CExtra::Delete

bool
CExtra::Delete(
 int ID
);

Удаляет запись наценки из базы. Цены, которые были заданы в виде наценки от базовой цены, становятся заданными абсолютным значением. Сама величина цены не меняется.

Параметры функции

Параметр | Описание
ID | Код наценки.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CExtra::GetByID

array
CExtra::GetByID(
 int ID
);

Функция возвращает параметры наценки по ее коду ID

Параметры функции

Параметр | Описание
ID | Код наценки.

Возвращаемые значения

Возвращается ассоциативный массив с ключами

Ключ | Описание
ID | Код наценки.
NAME | Название наценки.
PERCENTAGE | Процент наценки.


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CExtra::GetList

CDBResult
CExtra::GetList(
 string &by,
 string &order
);

Функция возвращает список наценок, отсортированый по полю by в направлении order

Параметры функции

Параметр Описание
by Переменная, содержащая название поля, по которому должен быть отсортирован список наценок. Допустимые значения:
  • NAME - по названию (по умолчанию);
  • PERCENTAGE - по проценту наценки
order Переменная, содержащая направление сортировки. Допустимые значения:
  • ASC - по возрастанию (по умолчанию);
  • DESC - по убыванию

Возвращаемые значения

Объект класса CDBResult, содержащий ассоциативные массивы с ключами:

Ключ | Описание
ID | Код наценки.
NAME | Название наценки.
PERCENTAGE | Процент наценки.


SelectBox

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CExtra::Update

bool
CExtra::Update(
 int ID,
 array arFields
);

Функция обновляет параметры наценки с кодом ID на значения из массива arFields.

Параметры функции

Параметр | Описание
ID | Код.
arFields Ассоциативный массив новых параметров наценки с ключами:
  • NAME - название наценки;
  • PERCENTAGE - процент наценки (может быть как положительным, так и отрицательным);
  • RECALCULATE - если имеет значение Y, то будут автоматически пересчитаны все цены, которые заданы этой наценкой

Возвращаемые значения

Возвращает значение true в случае успешного сохранения наценки и false - в противном случае


CPrice

Методы класса

Метод | Описание
Add | Функция добавляет новое ценовое предложение (новую цену) для товара.
Delete | Функция удаляет ценовое предложение с кодом ID
GetBasePrice | Функция возвращает базовую цену товара с кодом PRODUCT_ID. Базовая цена - это цена базового типа цен.
SetBasePrice | Функция устанавливает базовую цену товара с кодом PRODUCT_ID. Базовая цена - это цена базового типа цен.
GetByID | Функция возвращает ценовое предложение по его коду ID
GetList | Функция возвращает результат выборки записей цен в соответствии со своими параметрами.
GetListEx | Функция возвращает результат выборки записей цен в соответствии со своими параметрами.
Update | Функция изменяет параметры ценового предложения (цены) для товара с кодом ID на значения из массива arFields.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CPrice::Add

bool
CPrice::Add(
 array arFields
);

Функция добавляет новое ценовое предложение (новую цену) для товара

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров ценового предложения. Допустимые параметры:
  • PRODUCT_ID - код товара;
  • EXTRA_ID - код наценки;
  • CATALOG_GROUP_ID - код типа цены;
  • PRICE - цена;
  • CURRENCY - валюта цены;
  • QUANTITY_FROM - количество товара, начиная с приобретения которого действует эта цена;
  • QUANTITY_TO - количество товара, при приобретении которого заканчивает действие эта цена.

    Если необходимо, чтобы значения параметров QUANTITY_FROM и QUANTITY_TO не были заданы, необходимо указать у них в качестве значения false либо не задавать поля QUANTITY_FROM и QUANTITY_TO в Update вообще.

Если установлен код наценки, то появляется возможность автоматически пересчитывать эту цену при изменении базовой цены или процента наценки.

Возвращаемые значения

Возвращает значение true в случае успешного сохранения цены и false - в противном случае

Пример использования

<?
// Установим для товара с кодом 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);
}
?>


Delete

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CPrice::Delete

bool
CPrice::Delete(
 int ID
);

Функция удаляет ценовое предложение с кодом ID

Параметры функции

Параметр | Описание
ID | Код предложения.

Возвращаемые значения

Возвращает значение true в случае успешного удаления и false - в противном случае.

Пример использования

<?
// Удалим цену с кодом 11
CPrice::Delete(11);
?>


GetBasePrice

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CPrice::GetBasePrice

array
CPrice::GetBasePrice(
 int PRODUCT_ID[,
 int quantityFrom = false[,
 int quantityTo = false]]
);

Функция возвращает базовую цену товара с кодом PRODUCT_ID. Базовая цена - это цена базового типа цен.

Параметры функции

Параметр | Описание
PRODUCT_ID | Код товара.
quantityFrom | Количество товара, начиная с приобретения которого действует эта цена.
quantityTo | Количество товара, при приобретении которого заканчивает действие эта цена.

Возвращаемые значения

Возвращает ассоциативный массив с ключами:

Код | Описание
ID | Код ценового предложения.
PRODUCT_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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CPrice::GetByID

array
CPrice::GetByID(
 int ID
);

Функция возвращает ценовое предложение по его коду ID

Параметры функции

Параметр | Описание
ID | Код предложения.

Возвращаемые значения

Возвращается ассоциативный массив с ключами

Ключ | Описание
ID | Код предложения.
PRODUCT_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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CPrice::GetList

CDBResult
CPrice::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("PRODUCT_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле PRODUCT_ID (код товара) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов цены. Массив имеет вид:
array("название_поля1", "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов цены. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код предложения.
PRODUCT_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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CPrice::GetListEx

CDBResult
CPrice::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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле типов цены.

Пример фильтра:
array("PRODUCT_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле PRODUCT_ID (код товара) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов цены. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов цены. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код предложения.
PRODUCT_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")
    );
?>


SetBasePrice

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CPrice::SetBasePrice

bool
CPrice::SetBasePrice(
 int PRODUCT_ID,
 float PRICE,
 string CURRENCY[,
 int QUANTITY_FROM = 0[,
 int QUANTITY_TO = 0]]
);

Функция устанавливает базовую цену товара с кодом PRODUCT_ID. Базовая цена - это цена базового типа цен.

Параметры функции

Параметр | Описание
PRODUCT_ID | Код товара.
PRICE | Новая базовая цена.
CURRENCY | Валюта новой базовой цены.
QUANTITY_FROM | Количество товара, начиная с приобретения которого действует эта цена.
QUANTITY_TO | Количество товара, при приобретении которого заканчивает действие эта цена.

Возвращаемые значения

Возвращает значение true в случае успешного сохранения цены и false - в противном случае.


Update

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CPrice::Update

bool
CPrice::Update(
 int ID,
 array arFields
);

Функция изменяет параметры ценового предложения (цены) для товара с кодом ID на значения из массива arFields.

Параметры функции

Параметр | Описание
ID | Код ценового предложения.
arFields Ассоциативный массив новых параметров ценового предложения, ключами в котором являются названия полей предложения, а значениями - новые значения.
Допустимые ключи:
  • PRODUCT_ID - код товара;
  • EXTRA_ID - код наценки;
  • CATALOG_GROUP_ID - код типа цены;
  • PRICE - цена;
  • CURRENCY - валюта цены
  • QUANTITY_FROM - количество товара, начиная с приобретения которого действует эта цена. Если не хотим ;
  • QUANTITY_TO - количество товара, при приобретении которого заканчивает действие эта цена.

    Если необходимо, чтобы значения параметров QUANTITY_FROM и QUANTITY_TO не были заданы, необходимо указать у них в качестве значения false либо не задавать поля QUANTITY_FROM и QUANTITY_TO в Update вообще.

Если установлен код наценки, то появляется возможность автоматически пересчитывать эту цену при изменении базовой цены или процента наценки.

Возвращаемые значения

Возвращает значение true в случае успешного сохранения цены и false - в противном случае

Пример использования

<?
// Установим для товара с кодом 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);
}
?>


Для разработчиков, сжатие

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для разработчиков

Модуль проверяет переменную $HTTP_ACCEPT_ENCODING на возможность приема компрессированного содержимого и начинает буферизацию содержимого на событие OnBeforeProlog. На событие OnAfterEpilog модуль компрессирует содержимое с коэффициентом сжатия 4.

Модуль не имеет никаких интерфейсов.

Для вывода таблицы (при параметре в URL compress=Y) используются стили tableborder, tablehead, tableheadtext, tablebodytext.


Визуальный редактор

Визуальный редактор, входящий в состав модуля "Управление структурой" предоставляет API, использование которого позволяет добавлять в редактор функциональные элементы, определённые пользователем, а также настраивать и изменять функционал редактора. Рассматриваемые методы могут использоваться на страницах, где подключается визуальный редактор, после его непосредственного подключения.

Предоставляемое API функционирует на уровне JavaScript, поэтому вызовы функций должны осуществляться внутри тегов <script></script>.
Ошибки, допущенные при использовании API, могут привести к нарушению нормальной работы визуального редактора.

  • Добавление панелей задач
  • Добавление парсеров
  • Глобальный объект oBXEditorUtils


Объект BXNodeElement

Экземпляры объекта BXNodeElement передаются в качестве параметра обработчикам событий при описании пользовательских панелей задач. Класс этого объекта используется для внутреннего представления "искуственных" элементов, используемых для замены некоторых фрагментов кода на иконки в визуальном режиме.

Свойства

Метод Описание
arAttributes Массив, содержит два важных элемента
Индекс | Описание
__bxtagname | Содержит искуственное имя тега, которое задается при создании искуственного элемента
__bxcontainer | Содержит сериализованное представление параметров элемента.

Пример

//....

//pNode - экземпляр объекта BXNodeElement
alert(pNode.arAttributes["__bxtagname"]);

//....
Сведения об остальных свойствах объекта будут предоставленны позднее.


Добавление панелей задач

API визуального редактора предусматривает возможность добавления пользовательских панелей задач в визуальный редактор. Данная возможность позволяет подключить к редактору практически произвольный функционал. Подключение панели задач происходит в два этапа:

  1. Объявление класса панели задач
  2. Добавление панели задач путём вызова метода addTaskBar() глобального объекта oBXEditorUtils

1. Объявление класса панели задач

Для обявления класса панели задач необходимо придерживаться стандартных правил описания классов в 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:

2. Добавление панели задач

Для добавления обявленной панели задач в визуальный редактор необходимо вызвать метод 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>


Глобальный объект oBXEditorUtils

Для эффективного решения задач взаимодействия с API визуального редактора предусмотрен глобальный объект oBXEditorUtils. Этот объект и его подобъекты обладают рядом свойств и методов, позволяющих использовать существующий предоставляемый функционал API редактора. Задачи и параметры, привязанные к определённым структурным единицам редактора, могут быть реализованны в виде методов и свойств класса-родителя или методов других глобальных объектов API визуального редактора.

Методы

Метод | Описание
addContentParser | Добавляет функцию-обработчик для обработки содержимого документа в виде исходного кода.
addPHPParser | Добавляет функцию-обработчик для обработки всех фрагментов PHP из исходного кода документа.
addDOMHandler | Добавляет функцию-обработчик для обработки содержимого документа как DOM-структуры.
addPropertyBarHandler | Добавляет обработчик, который вызывается при формировании панели свойств для элемента с определённым именем тега
addTaskBar | Добавляет панель управления
BXRemoveAllChild | Удаляет дочерние узлы элемента
getCustomNodeParams | Возвращает массив параметров "искуственных" элементов, заменяющих определённые фрагменты кода в визуальном режиме
setCustomNodeParams | Записывает массив параметров "искуственных" элементов, заменяющих определённые фрагменты кода в визуальном режиме

Подобъекты

Подобъект | Описание
PHPParser | Добавляет функцию-обработчик для обработки содержимого документа в виде исходного кода.


oBXEditorUtils.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>


oBXEditorUtils.BXRemoveAllChild

Удаляет все дочерние узлы элемента, передаваемого в качестве единственного параметра pNode.

void
oBXEditorUtils.BXRemoveAllChild(
 object pNode
);

Параметры:
Параметр | Описание
pNode | Узел DOM структуры документа.

Пример использования

<script>

var oTable = document.getElementById('tableId');
oBXEditorUtils.BXRemoveAllChild(oTable); //Удаляет дочерние узлы таблицы с id='tableId'

</script>


oBXEditorUtils.getCustomNodeParams

Возвращает параметры "искуственного" элемента* в виде массива, заменяющего некоторый фрагмент кода в документе. Используется при обработке свойств элементов при объявлении класса пользовательской панели задач.(см. Добавление панелей задач).

*В визуальном режиме некоторые фрагменты кода или другие элементы заменяются на их визуальное представление - иконки (пиктограммы). Свойства таких элементов хранятся в сериализованном виде в качестве атрибута этого элемента. Данный метод десериализует свойства и возвращает их в виде массива.
array
oBXEditorUtils.getCustomNodeParams(
 object pNode
);

Параметры:

Параметр | Описание
pNode | Узел DOM структуры документа или объект BXNodeElement, передаваемый методу UnParseElement() при описании класса пользовательской панели задач (см. Добавление панелей задач).

Возвращаемое значение

Возвращает массив. Структура массива, а также его тип (ассоциативный/неассоциативный) зависит от свойств, заданных элементу при создании или в ходе работы с ним.

Пример использования

<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>
См. также oBXEditorUtils.setCustomNodeParams()


oBXEditorUtils.setCustomNodeParams

Устанавливает свойства "искуственного" элемента*, переданные в виде массива параметров. Используется при обработке свойств элементов при объявлении класса пользовательской панели задач. (см. Добавление панелей задач).

*В визуальном режиме некоторые фрагменты кода или другие элементы заменяются на их визуальное представление - иконки (пиктограммы). Свойства таких элементов хранятся в сериализованном виде в качестве атрибута этого элемента. Данный метод сериализует массив свойств и сохраняет их.
void
oBXEditorUtils.setCustomNodeParams(
  object pNode
  array arParams
);

Параметры:

Параметр | Описание
pNode | Узел DOM структуры документа или объект BXNodeElement, передаваемый методу UnParseElement() при описании класса пользовательской панели задач (см. Добавление панелей задач).
arParams | Массив свойств. Допускаются ассоциативные и вложенные массивы.

Возвращаемое значение

Ничего не возвращает.

Пример использования

<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.getCustomNodeParams()


oBXEditorUtils.addContentParser

Добавляет функцию-обработчик для обработки содержимого документа в виде исходного кода.
Функция, добавленная таким образом, будет обрабатывать содержимое редактируемого документа при его загрузке, а также при переключении из режима кода, в WYSIWYG.

void
oBXEditorUtils.addContentParser(
   function handler
);

Параметры

Параметр | Описание
handler | Функция, объявленная в глобальной области видимости. В качестве единственного параметра принимает строку, содержащую содержимое контента. Должна вернуть строку (контент с внесёнными в него изменениями) или false. В случае если возвращается false, изменения в код не вносятся.


oBXEditorUtils.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 (оставляя при этом остальные аттрибуты нетронутыми)


oBXEditorUtils.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);


oBXEditorUtils.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>


Вложенный объект oBXEditorUtils.PHPParser

Вложенный объект PHPParser глобального объекта oBXEditorUtils объединяет методы, используемые для облегчения создания PHP-парсера (см. oBXEditorUtils.addPHPParser())

Методы

Метод | Описание
cleanCode | Удаляет из PHP-кода комментарии, переводы новой строки, незначащие пробелы.
getArray | Принимает в качестве аргумента строку, в формате Array([параметры]) Возвращает массив этих параметров или пустой массив при их отсутствии. Обрабатывает также ассоциативные и вложенные массивы.
getParams | Обрабатывает строку с перечисленными через запятую параметрами, и возвращает их в виде массива. НЕ ОБРАБАТЫВАЕТ массивы в качестве параметров.
parseFunction | Обрабатывает строку, содержащую вызов php-функции, и возвращает имя функции и строку с передаваемыми ей параметрами.
parseParameters | Обрабатывает строку с перечисленными через запятую параметрами, и возвращает их в виде массива. Обрабатывает массивы в качестве параметров.
trimPHPTags | Возвращает переданный в качестве параметра фрагмент кода (без php-тегов <?php ... ?> или <? ... ?>).
trimQuotes | Возвращает переданный в качестве параметра фрагмент кода без двойные или одинарных кавычек(или другого символа) с начала и конца.


oBXEditorUtils.PHPParser.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>


oBXEditorUtils.PHPParser.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>


oBXEditorUtils.PHPParser.getParams

Принимает в качестве аргумента строку, содержащую параметры (функции, или любые другие данные), перечисленные через запятую, и возвращает массив строковых значений.
НЕ ОБРАБАТЫВАЕТ массивы, т.е. все данные воспринимаются как строки.
Может использоваться для упрощения анализа фрагментов PHP-кода при создании PHP-парсера.

array
oBXEditorUtils.PHPParser.getParams(
 string sCode
);

Параметры:

Параметр | Описание
sCode | Строка, в формате param1[,param2[,...,paramN]]

Возвращаемое значение

Возвращает массив строковых значений.

Пример использования

<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>
См. также parseParameters


oBXEditorUtils.PHPParser.parseFunction

Принимает в качестве аргумента строку, содержащую вызов php-функции в формате MyFunction([params]), и возвращает имя функции и строку с передаваемыми ей параметрами.
Может использоваться для упрощения анализа фрагментов PHP-кода при создании PHP-парсера.

object
oBXEditorUtils.PHPParser.parseFunction(
 string sCode
);

Параметры:

Параметр | Описание
sCode | Строка, в формате MyFunction([params])

Возвращаемое значение

Возвращает объект
Свойства:
Свойство | Описание
string name | Имя функции
string params | Строка, содержащая параметры передаваемые функции при вызове
Если строка не соответствует указанному формату, возвращается значение false.

Пример использования

<script>

var sCode = 'MyPHPFunction("param",$var)';

var oFunc = oBXEditorUtils.PHPParser.parseFunction(sCode);
//oFunc.name = 'MyPHPFunction';
//oFunc.params = '"param",$var';

</script>
См. также parseParameters


oBXEditorUtils.PHPParser.parseParameters

Принимает в качестве аргумента строку, содержащую параметры (функции), перечисленные через запятую; и возвращает массив, соответствующий по структуре массиву, переданному в качестве параметра.
Корректно обрабатывает массивы, в том числе ассоциативные и вложенные.
Может использоваться для обработки параметров средствами JavaScript при упрощении анализа фрагментов PHP-кода при создании PHP-парсера.

array
oBXEditorUtils.PHPParser.parseParameters(
 string sCode
);

Параметры:

Параметр | Описание
sCode | Строка, в формате param1[,param2[,...,paramN]]

Возвращаемое значение

Возвращает массив.

Пример использования

<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>
См. также getParams, parseParameters, parseFunction


oBXEditorUtils.PHPParser.trimPHPTags

Возвращает переданный в качестве параметра фрагмент кода без php-тегов <?php ?> или <? ?> Если фрагмент не содержит PHP-тегов, строка возвращается без изменений.
Может использоваться для упрощения анализа фрагментов PHP-кода при создании PHP-парсера.

string
oBXEditorUtils.PHPParser.trimPHPTags(
 string sCode
);

Параметры:

Параметр | Описание
sCode | Строка, фрагмент PHP-кода

Возвращаемое значение

Возвращает строку.

Пример использования

<script>

var sCode = '<?php MyPHPFunction(); ?>';

sCode = oBXEditorUtils.PHPParser.trimPHPTags(sCode);//sCode = ' MyPHPFunction(); ';

</script>
См. также trimQuotes


oBXEditorUtils.PHPParser.trimQuotes

Возвращает переданный в качестве параметра фрагмент кода без двойных или одинарных кавычек(или другого символа) с начала и конца. Если фрагмент не содержит кавычек, он возвращается без изменений.

Может использоваться для упрощения анализа фрагментов PHP-кода при создании PHP-парсера.

string
oBXEditorUtils.PHPParser.trimQuotes(
 string sCode[,
 string cSym]
);

Параметры:

Параметр | Описание
sCode | Строка, фрагмент PHP-кода
cSym | Необязательный параметр. Символ, который необходимо удалить. По умолчанию удаляются одинарные или двойные кавычки.

Возвращаемое значение

Возвращает строку.

Пример использования

<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>
См. также trimPHPTags


События, модуль Управления структурой

1С-Битрикс: Управление сайтом Отправить отзыв

Список событий

Ниже представлен список событий модуля "Управления структурой". Для регистрации обработчика укажите в качестве идентификатора модуля - "fileman".

События, связанные с визуальным HTML-редактором

Событие | Описание
OnBeforeHTMLEditorScriptsGet | Вызывается непосредственно перед подключением внешних JavaScript-файлов редактора. Позволяет добавить в список подключаемых файлов дополнительный JavaScript файл или файл стилей.
OnIncludeHTMLEditorScript | Вызывается непосредственно после подключения редактора, на странице вызова, но до его инициализации.

См. также

  • Обработка событий
  • Связи и взаимодействие модулей


OnBeforeHTMLEditorScriptsGet

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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

1С-Битрикс: Управление сайтом Отправить отзыв

Событие "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>
    <?
}
?>


Введение

Данный раздел содержит информацию для веб-разработчиков, использующих модуль "Веб-формы" для решения задач, выходящих за рамки возможностей стандартных компонентов модуля.

Модуль "Веб-формы" обеспечивает:

  • Наглядный интерфейс создания веб-форм, включающий в себя:
    • формирование списка вопросов и ответов на них;
    • формирование списка дополнительных полей;
    • формирование списка статусов результатов веб-формы;
    • распределение прав доступа на веб-форму и каждый статус в отдельности.
  • Вывод веб-формы для заполнения.
  • Сохранение значений ответов на вопросы веб-формы в виде результатов.
  • Выполнение ряда вспомогательных действий в момент сохранения результата:
    • проверка введенных данных на корректность;
    • отсылка данных результата посредством электронной почты;
    • создание события в модуле "Статистика".
  • Вывод результатов в виде списка, а также возможность выполнения следующих действий:
    • редактирование и обновление результата;
    • смена статуса результата;
    • удаление результата;
    • фильтрация результатов по настраиваемому набору вопросов и полей.


Имена 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 | Массив, описывающий загруженный файл.
Принятые обозначения
  • 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


Права модуля веб-форм

В этом разделе

  • Права на модуль
  • Права на веб-форму
  • Права на результат (статус)
    •

    Права на модуль

    Права на модуль "Веб-формы" задаются для групп пользователей и регулируют доступ к административной части модуля. Права могут быть следующих видов (в порядке возрастания уровня доступа):

    • [D] доступ закрыт - доступ к административной части модуля закрыт;
    • [R] доступ открыт - доступ к административной части модуля открыт;
    • [W] полный доступ - полный административный доступ на весь модуль и на все веб-формы модуля.
    Каждый пользователь может обладать только одним из вышеперечисленных прав доступа, которое является для него максимальным.

    Права на веб-форму

    Права на каждую веб-форму позволяют разграничить доступ пользователей к той или иной веб-форме и ее результатам. Права могут быть следующих видов (в порядке возрастания уровня доступа):

    • 1 - доступ закрыт (форма и ее результаты полностью недоступны);
    • 10 - заполнение формы (посетитель может только заполнить и сохранить форму);
    • 15 - редактирование своего результата (посетитель получает возможность видеть список своих результатов, который он может фильтровать и сортировать; также посетитель может просмотреть, изменить и удалить свой результат);
    • 20 - просмотр всех результатов (посетитель получает возможность просмотра всех активных результатов);
    • 25 - редактирование всех результатов и просмотр настроек формы (посетитель получает возможность просмотра и редактирования всех результатов в зависимости от их статусов; также, если у него открыт доступ к административной части модуля, у него есть доступ на просмотр настроек формы);
    • 30 - полный доступ (включает в себя все вышеописанные права, а также право на изменение настроек формы).
    Каждый пользователь может обладать только одним из вышеперечисленных прав доступа, которое является для него максимальным.

    Права на результат (статус)

    Права на результат определяются статусом, в котором находится тот или иной результат. Соответственно, данные права задаются в настройках того или иного статуса и могут быть следующих видов:

    • VIEW - право на просмотр результатов в данном статусе;
    • MOVE - право на перевод результатов в данный статус;
    • EDIT - право на редактирование результатов в данном статусе;
    • DELETE - право на удаление результатов в данном статусе.
    Один пользователь может обладать одним и более из вышеперечисленных прав доступа.


Обработчики статусов

Оглавление

  • Введение
  • Файлы-обработчики
  • Доступные переменные

Введение

Каждый результат в обязательном порядке должен обладать тем или иным статусом. При создании результата новый статус назначается в соответствии с флагом Присваивать данный статус всем новым документам по умолчанию (данный флаг может быть установлен только у одного статуса). В процессе работы статус у результата может меняться.

Для того, чтобы перехватить и обработать подобные смены статусов, в модуле Веб-формы существует возможность указать файл-обработчик каждой такой смены. В коде такого обработчика можно использовать любую функцию системы и выполнять любое действие, например:

  • создавать почтовые события, предназначенные для отправки 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 - был добавлен новый результат.


Список терминов

Иерархическая схема сущностей модуля

Список терминов модуля

Веб-форма | Поле | Вопрос | Валидатор
Ответ | Результат | Статус
Веб-форма
Синонимами (реализациями) данного термина можно считать такие сущности, как "анкета" и "опросный лист". Веб-форма представляет из себя совокупность:
  • списка вопросов;
  • списка ответов на вопросы;
  • списка дополнительных полей веб-формы;
  • списка возможных статусов для результатов веб-формы.

Веб-форма может быть выведена на экран, заполнена и сохранена в виде результата.

На веб-форму можно установить различные права доступа для групп пользователей:

  • 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 - право на удаление результатов в данном статусе.

Один пользователь может обладать одним и более из вышеперечисленных прав доступа.

Таким образом, каждый результат в обязательном порядке должен иметь тот или иной статус. При создании нового результата, его новый статус будет равен статусу, в настройках которого установлен флаг Присваивать данный статус всем новым документам по умолчанию.

Валидатор

Валидатор - это набор функций, предназначенных для проверки соответствия дополнительным условиям значений ответов на вопросы формы.

Для каждого валидатора задается список типов вопросов, к которым применим данный валидатор. К вопросам, содержащим ответы разных типов валидаторы не могут быть применены.

Существует возможность создавать собственные валидаторы с любой функциональностью для любых типов полей. Подробнее см. руководство по созданию валидаторов.


Создание собственных валидаторов полей веб-форм

В этом разделе

  • Структура валидатора
  • Описание валидатора
  • Параметры валидатора
  • Обработка параметров
  • Валидатор
    •
  • Интеграция валидатора
  • Пример
    •

    Структура валидатора

    Валидатор представляет собой класс или набор функций следующей структуры:

    Метод | Описание
Описание валидатора | Функция, передающая обработчику валидаторов описание валидатора, названия методов и пр.
Настройки валидатора | Функция, возвращающая массив настроек валидатора
Обработка настроек | Набор функций, отвечающий за подготовку настроек к занесению в БД и обратное преобразование.
Функция валидации | Собственно, валидатор.

    Поскольку работать с набором отдельных функций неудобно, рекомендуется объединить их в класс (пространство имен). Исходя из этой рекомендации будет идти дальнейшее описание, а также, реализован приводимый пример. В примере валидатор "Число в промежутке" реализован в виде класса 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

// подключим модуль
CModule::IncludeModule("form");

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
    •


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 | Добавляет новую веб-форму, либо обновляет параметры существующей.
SetMailTemplate | Создает тип почтового события и почтовые шаблоны для веб-формы.
GetList | Возвращает список веб-форм.
GetByID | Возвращает параметры веб-формы по ее цифровому идентификатору.
GetBySID | Возвращает параметры веб-формы по ее символьному идентификатору.
GetDataByID | Возвращает массивы, описывающие вопросы и поля веб-формы.
GetResultAnswerArray | Возвращает массивы, описывающие вопросы и поля веб-формы, а также ответы и их значения.
GetPermission | Возвращает право пользователя на веб-форму.
Copy | Копирует веб-форму.
Reset | Удаляет все результаты веб-формы.
Delete | Удаляет веб-форму и все ее результаты.
Check | Проверяет введенные значения на обязательность, правильность формата даты и правильность типа файла.

Методы, возвращающие HTML код полей фильтра

Метод | Описание
GetTextFilter | Однострочное текстовое поле для фильтрации текстовых значений.
GetDateFilter | Два поля для ввода интервала дат.
GetDropDownFilter | Выпадающий список одиночного выбора.
GetNumberFilter | Два поля для ввода числового интервала.
GetExistFlagFilter | Флаг, используемый для фильтрации по факту существования ответа на вопрос.

Методы, возвращающие HTML код полей для ввода ответов на вопросы веб-формы

Метод | Описание
GetTextField | Однострочное текстовое поле для ввода текста.
GetTextAreaField | Многострочное текстовое поле для ввода текста.
GetPasswordField | Однострочное текстовое поле для ввода пароля.
GetDateField | Поле для ввода даты.
GetRadioField | Переключатель одиночного выбора.
GetCheckBoxField | Флаг множественного выбора.
GetDropDownField | Выпадающий список одиночного выбора.
GetMultiSelectField | Список множественного выбора.
GetFileField | Поле для ввода файла.

Методы получения текущего значения поля

Метод | Описание
GetTextValue | Возвращает текущее значение для однострочного текстового поля.
GetTextAreaValue | Возвращает текущее значение для многострочного текстового поля.
GetPasswordValue | Возвращает текущее значение для поля ввода пароля.
GetDateValue | Возвращает текущее значение для поля ввода даты.
GetRadioValue | Возвращает текущее значение для переключателя одиночного выбора.
GetCheckBoxValue | Возвращает текущее значение для флага множественного выбора.
GetDropDownValue | Возвращает текущее значение для выпадающего списка одиночного выбора.
GetMultiSelectValue | Возвращает текущее значение для списка множественного выбора.

Дополнительные методы

Метод | Описание
IsAdmin | Возвращает "true", если текущий пользователь имеет административные права на модуль Веб-формы, в противном случае - "false".


Check

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForm::Check

string
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" (новый результат).
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для успешной проверки прав, производимой данной функцией, пользователь должен обладать как минимум правом [10] Заполнение формы на форму, указанную в параметре form_id.
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).
return_array Если данный параметр не установлен или равен "N", то функция возвращает отформатированный список ошибок.
Если же установлен в "Y", то функция возвращает массив, в котором сообщения об ошибках, связанные с конкретными полями, идут с ключом, равным строковому идентификатору поля, а остальные - с числовым ключом. Например,
array(
        0 => "Неверно введено слово с картинки",
        "test_fld" => "Не указано значение обязательных полей: Первое поле"
        )

См. также

  • CFormResult::Add
  • CFormResult::Update

Примеры использования

<?
// проверим корректность введенных параметров и
// права пользователя
$error = CForm::Check($FORM_ID, $_REQUEST, $RESULT_ID);

// если функция не вернула текст ошибки, то
if (strlen($error)<=0)
{
    // обновляем результат
    CFormResult::Update($RESULT_ID, $_REQUEST);
}
?>


Copy

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForm::Delete

bool
CForm::Delete(
 int form_id,
 string check_rights = "Y"
)

Удаляет веб-форму со всеми ее результатами. Возвращает "true" в случае положительного результата, и "false" - в противном случае.

Параметры функции

Параметр | Описание
form_id | ID веб-формы.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для удаления веб-формы необходимо иметь право [W] Полный доступ на модуль "Веб-формы".
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

См. также

  • CFormField::Delete
  • CFormAnswer::Delete
  • CFormStatus::Delete
  • CFormResult::Delete

Примеры использования

<?
$FORM_ID = 4;
// удалим веб-форму
if (CForm::Delete($FORM_ID))
{
    echo "Веб-форма #4 удалена.";
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForm::GetByID

CDBResult
CForm::GetByID(
 int form_id
)

Возвращает параметры веб-формы в виде объекта класса CDBResult.

Параметры функции

form_id ID веб-формы.

См. также

  • Поля CForm
  • CForm::GetBySID
  • CForm::GetList

Примеры использования

<?
$FORM_ID = 2;
$rsForm = CForm::GetByID($FORM_ID);
$arForm = $rsForm->Fetch();
echo "<pre>"; print_r($arForm); echo "</pre";
?>


GetBySID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 веб-формы.
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данные о полях веб-формы).

См. также

  • 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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\"".

См. также

  • 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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\"".
add_to_checkbox Произвольный HTML, который будет добавлен в HTML тег флага удаления редактируемого файла:
<input type="checkbox" add_to_checkbox ...>

Параметр необязательный. По умолчанию - "class=\"inputcheckbox\"".

См. также

  • CFormResult::GetFileByAnswerID
  • Имена 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 Минимальный уровень прав на веб-форму.

Параметр необязательный. По умолчанию - 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForm::GetResultAnswerArray

CForm::GetResultAnswerArray(
 int form_id,
 array &columns,
 array &answers,
 array &answers2 = array(),
 array filter = array(),
)

Возвращает массивы, описывающие вопросы и поля веб-формы, а также ответы на вопросы.

Параметры функции

Параметр | Описание
form_id | ID формы.
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 таблице результатов.
* - допускается сложная логика.

См. также

  • 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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=\"inputtext\"".
add_to_checkbox Произвольный HTML, который будет добавлен в тег флага для установки точности фильтрации:
<input type="checkbox" add_to_checkbox ...>

Параметр необязательный. По умолчанию - "class=\"inputcheckbox\"".

См. также

  • 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForm::IsAdmin

bool
CForm::IsAdmin()

Возвращает "true", если текущий пользователь имеет административные права на модуль Веб-формы, в противном случае - "false".

Параметры функции

Без параметров.

См. также

  • Права на модуль

Примеры использования

<?
if (CForm::IsAdmin())
{
    echo "У вас административные права на модуль Веб-форм.";
}
?>


Reset

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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" (права необходимо проверить).

См. также

  • CFormField::Reset
  • CFormResult::Reset

Примеры использования

<?
$FORM_ID = 4;
// удалим результаты веб-формы
if (CForm::Reset($FORM_ID))
{
    echo "Результаты веб-формы #4 удалены.";
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


Set

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForm::Set

mixed
CForm::Set(
 array fields,
 mixed form_id = false,
 string check_rights = "Y"
)

Добавляет новую веб-форму или обновляет заданную. Возвращает ID обновленной или добавленной веб-формы в случае положительного результата, в противном случае - "false".

Примечание
При обновлении существующей веб-формы (или при добавлении новой веб-формы), автоматически обновляется тип почтового события (либо создаётся новый тип).

Параметры функции

fields Массив значений полей; в качестве ключей массива допустимы:
  • NAME* - заголовок веб-формы;
  • SID* - символьный идентификатор веб-формы;
  • C_SORT - индекс сортировки;
  • BUTTON - подпись к кнопке при создании или редактировании результата;
  • 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").
  • arSITE - массив идентификаторов сайтов, к которым будет привязана данная форма:
    array("ID_САЙТА_1", "ID_САЙТА_2", ...)
  • arMAIL_TEMPLATE - массив ID почтовых шаблонов, приписанных к данной форме:
    array("ID_ШАБЛОНА_1", "ID_ШАБЛОНА_2", ...)
  • 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForm::SetMailTemplate

array
CForm::SetMailTemplate(
 int form_id,
 string add_template = "Y",
 string old_form_sid = ""
)

Создает или обновляет тип почтового события для веб-формы. При необходимости могут быть созданы почтовые шаблоны. Функция возвращает массив идентификаторов новых почтовых шаблонов, если они были созданы.

Примечание
При создании нового типа почтового события, символьный идентификатор этого типа задается в виде FORM_FILLING_символьный ID веб-формы.

Параметры функции

form_id | ID веб-формы, для которой необходимо создать или обновить тип почтового события.
add_template | Если значение равно "Y", то будут созданы почтовые шаблоны для обновленного или вновь созданного типа почтового события. Параметр необязательный. По умолчанию - "Y" (создать почтовые шаблоны).
old_form_sid | Если в данном параметре будет задан символьный идентификатор веб-формы, то все почтовые шаблоны, принадлежащие этой веб-форме, будут приписаны к вновь созданному типу почтового события. Данный параметр используется, как правило, при редактировании веб-формы в момент смены символьного идентификатора. Параметр необязательный. По умолчанию - "" (не приписывать почтовые шаблоны к новому типу почтового события).

См. также

  • Почтовая система
  • 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

Поля

Поле | Тип | Описание
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormField::GetBySID

CDBResult
CFormField::GetBySID(
 int field_sid
)

Возвращает параметры вопроса/поля в виде объекта класса CDBResult.

Параметры функции

Параметр | Описание
field_sid | Символьный идентификатор вопроса/поля.

См. также

  • Поля 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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" (права необходимо проверить).

См. также

  • Поля 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 | Устанавливает значение по умолчанию для поля веб-формы.

Методы для проверки условий. Все условные методы недоступны в режиме визуального редактора. Их можно использовать только в режиме редактирования 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::isFormDescription

bool
CFormOutput::isFormDescription(
);

Проверка условия "есть ли у формы текстовое описание".

Параметры функции

Нет параметров.

Возвращаемое значение

true, если у формы есть текстовое описание. false в противном случае.

Использование

<?if($FORM->isFormDescription()):?>Описание: <?=$FORM->ShowFormDescription()?><?endif?>

См. также

Класс CFormOutput
CFormOutput::ShowFormDescription


isFormErrors

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::isFormErrors

bool
CFormOutput::isFormErrors(
);

Проверка условия "есть ли ошибки валидатора формы".

Параметры функции

Нет параметров.

Возвращаемое значение

true, если в процессе обработки результата формы обнаружены ошибки. false в противном случае.

Использование

<?if($FORM->isFormErrors()):?>Ошибки: <?=$FORM->ShowFormErrors()?><?endif?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormErrors
  • CFormOutput::ShowFormErrorsText
    •


isFormImage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::isFormNote

bool
CFormOutput::isFormNote(
);

Проверка условия "есть ли текстовые заметки".

Параметры функции

Нет параметров.

Возвращаемое значение

true, если у есть текстовые заметки. false в противном случае.

Использование

<?if($FORM->isFormNote()):?>Ответ: <?=$FORM->ShowFormNote()?><?endif?>

См. также

Класс CFormOutput
CFormOutput::ShowFormNote


isFormTitle

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::isFormTitle

bool
CFormOutput::isFormTitle(
);

Проверка условия "есть ли у формы текстовый заголовок (название)".

Параметры функции

Нет параметров.

Возвращаемое значение

true, если у формы есть текстовый заголово (название). false в противном случае.

Использование

<?if($FORM->isFormTitle()):?>Описание: <?=$FORM->ShowFormTitle()?><?endif?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormTitle
    •


isInputCaptionImage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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
    •


ShowApplyButton

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowApplyButton

string
CFormOutput::ShowApplyButton([
    string CAPTION = "",
    string CSSClass = ""
]
);

Возвращает HTML-код кнопки "Применить" формы создания/редактирования записи

Параметры функции

Параметр | Описание
CAPTION | Текст, расположенный на кнопке. Необязательный параметр. Если параметр пуст или не указан, то будет использовано значение по умолчанию.
CSSClass | CSS-класс кнопки. Необязательный параметр.

Возвращаемое значение

Возвращается HTML-код кнопки "Применить"

Использование

<?=$FORM->ShowApplyButton("Применить", "form-button-apply")?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowResetButton
  • CFormOutput::ShowSubmitButton
    •


ShowCaptcha

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowCaptcha

string
CFormOutput::ShowCaptcha(
);

Возвращает комбинацию изображения CAPTCHA и поля для ввода

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращается HTML-код обоих элементов

Использование

<?=$FORM->ShowCaptcha()?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowCaptchaField
  • CFormOutput::ShowCaptchaImage
  • CFormOutput::isUseCaptcha
    •


ShowCaptchaField

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowCaptchaField

string
CFormOutput::ShowCaptchaField(
);

Возвращает код поля для ввода CAPTCHA

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращается HTML-код поля для ввода CAPTCHA

Использование

<?=$FORM->ShowCaptchaField()?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowCaptcha
  • CFormOutput::ShowCaptchaImage
  • CFormOutput::isUseCaptcha
    •


ShowCaptchaImage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowCaptchaImage

string
CFormOutput::ShowCaptchaImage(
);

Возвращает HTML-код для вставки изображения CAPTCHA

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращается HTML-код для вставки изображения CAPTCHA

Использование

<?=$FORM->ShowCaptchaImage()?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowCaptcha
  • CFormOutput::ShowCaptchaField
  • CFormOutput::isUseCaptcha
    •


ShowErrorMsg

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowErrorMsg

string
CFormOutput::ShowErrorMsg(
);

Возвращает код ошибки инициализации формы

Параметры функции

Нет параметров.

Возвращаемое значение

Функция возвращает одну из следующих строк, либо пустую строку, если ошибок нет

Строка | Описание
FORM_NOT_FOUND | Формы с переданным WEB_FORM_ID не существует
FORM_ACCESS_DENIED | Не хватает прав доступа к форме

Проверка наличия ошибки и вывод соответствующего ей языкового сообщения производится автоматически при инициализации формы

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormErrors
  • CFormOutput::ShowFormErrorsText
    •


ShowFormDesctiption

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowFormDescription

string
CFormOutput::ShowFormDescription([
    string CSSClass = ""
]
);

Вывод описательного текста формы

Параметры функции

Параметр | Описание
CSSClass | CSS-класс который нужно применить к выводимому тексту. Необязательный параметр. Если для описания формы выставлено значение "HTML", то параметр игнорируется.

Возвращаемое значение

Возвращает описательный текст формы

Использование

<?=$FORM->ShowFormDescription("form-description-text")?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormTitle
  • CFormOutput::ShowFormImage
  • CFormOutput::isFormDescription
    •


ShowFormErrors

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowFormErrors

string
CFormOutput::ShowFormErrors(
);

Вывод отформатированных ошибок валидатора формы

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращает отфоматированный список ошибок валидатора формы. Если ошибок нет, возвращается пустая строка.

Использование

<?=$FORM->ShowFormErrors()?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormErrorsText
  • CFormOutput::isFormErrors
    •


ShowFormErrorsText

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowFormErrorsText

string
CFormOutput::ShowFormErrorsText(
);

Вывод неотформатированных ошибок валидатора формы

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращает неотфоматированный список ошибок валидатора формы. Если ошибок нет, возвращается пустая строка.

Использование

<font color="#FF0000"><?=$FORM->ShowFormErrorsText()?></font>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormErrors
  • CFormOutput::isFormErrors
    •


ShowFormFooter

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowFormFooter

string
CFormOutput::ShowFormFooter(
);

Завершение вывода формы

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращает завершающий HTML-код формы. В том числе, тэг </form>.

Использование

При создании шаблона формы редактором, добавляется в конец шаблона автоматически.

<?=$FORM->ShowFormFooter()?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormHeader
    •


ShowFormHeader

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowFormHeader

string
CFormOutput::ShowFormHeader(
);

Вывод HTML-заголовка формы

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращает HTML-код заголовка формы. В том числе, тэг <form>, скрытые поля.

Использование

При создании шаблона формы редактором, добавляется в начало шаблона автоматически.

<?=$FORM->ShowFormHeader()?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormFooter
    •


ShowFormImage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

Параметр | Описание
sAlign | Расположение изображения относительно текста. Может принимать одно из четырех значений - LEFT, CENTER, RIGHT (регистр не имеет значения) или пустое. Необязательный параметр.
iMaxW | Максимальная ширина изображения. Если ширина картинки больше iMaxW, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений.
iMaxH | Максимальная высота изображения. Если высота картинки больше iMaxH, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений.
bPopup | Открывать ли при клике на изображении дополнительное popup окно с увеличенным изображением. Необязательный. Должен приниметь одно из двух значений - "Y" или "N" (с учётом регистра). По умолчанию - "N".
strPopupTitle | Текст всплывающей подсказки на изображении (только если bPopup = "Y") Необязательный. По умолчанию выводится фраза "Нажмите чтобы увеличить" на языке страницы.
sHSpace | Устанавливает вертикальный отступ картинки от окружающего текста в пикселях. Необязательный. По умолчанию - "0" - без отступа.
sVSpace | Устанавливает горизонтальный отступ картинки от окружающего текста в пикселях. Необязательный. По умолчанию - "0" - без отступа.
sBorder | Устанавливает толщину рамки вокруг изображения. Необязательный. По умолчанию равен "0" - без рамки:

Возвращаемое значение

Возвращает HTML-код для вставки изображения в формы

Использование

<?=$FORM->ShowFormImage("CENTER", 250, 250, "Y", GetMessage("FORM_ENLARGE"), 0, 0)?>

См. также

  • Класс CFormOutput
  • CFile::ShowImage
  • CFormOutput::ShowFormDescription
  • CFormOutput::ShowFormTitle
  • CFormOutput::isFormImage
    •


ShowFormNote

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowFormNote

string
CFormOutput::ShowFormNote(
);

Вывод отформатированных информационных сообщений формы

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращает отфоматированные информационные сообщения формы (напр. "Ваша заявка принята"). Если сообщений нет, возвращается пустая строка.

Использование

<?=$FORM->ShowFormNote()?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormNoteText
  • CFormOutput::isFormNote
    •


ShowFormNoteText

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowFormNoteText

string
CFormOutput::ShowFormNoteText(
);

Вывод неотформатированных информационных сообщений формы

Параметры функции

Нет параметров.

Возвращаемое значение

Возвращает неотфоматированные информационные сообщения формы (напр. "Ваша заявка принята"). Если сообщений нет, возвращается пустая строка.

Использование

<?=$FORM->ShowFormNoteText()?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormNoteText
  • CFormOutput::isFormNote
    •


ShowFormTitle

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowFormTitle

string
CFormOutput::ShowFormTitle([
    string CSSClass = ""
]
);

Вывод текстового заголовка формы

Параметры функции

Параметр | Описание
CSSClass | CSS-класс который нужно применить к выводимому тексту. Необязательный параметр.

Возвращаемое значение

Возвращает текстовый заголовок (название) формы

Использование

<?=$FORM->ShowFormTitle("form-title")?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowFormDescription
  • CFormOutput::ShowFormImage
  • CFormOutput::isFormTitle
    •


ShowInput

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowInputCaption

string
CFormOutput::ShowInputCaption(
    string $FIELD_SID[,
    string $CSSClass = ""]
);

Вставка в шаблон подписи поля ответа на вопрос.

Параметры функции

Параметр | Описание
FIELD_SID | Строковой идентификатор поля вопроса. Обязательный параметр.
CSSClass | CSS-класс подписи. Необязательный параметр. Если для выставлено значение "Текст вопроса - HTML", то параметр игнорируется.

Возвращаемое значение

Возвращается обработанная подпись поля формы.

Использование

<?=$FORM->ShowInputCaption('MYFIELD_5')?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowInput
  • CFormOutput::ShowInputCaptionImage
    •


ShowInputCaptionImage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 (регистр не имеет значения) или пустое. Необязательный параметр.
iMaxW | Максимальная ширина изображения. Если ширина картинки больше iMaxW, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений.
iMaxH | Максимальная высота изображения. Если высота картинки больше iMaxH, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений.
bPopup | Открывать ли при клике на изображении дополнительное popup окно с увеличенным изображением. Необязательный. Должен приниметь одно из двух значений - "Y" или "N" (с учётом регистра). По умолчанию - "N".
strPopupTitle | Текст всплывающей подсказки на изображении (только если bPopup = "Y") Необязательный. По умолчанию выводится фраза "Нажмите чтобы увеличить" на языке страницы.
sHSpace | Устанавливает вертикальный отступ картинки от окружающего текста в пикселях. Необязательный. По умолчанию - "0" - без отступа.
sVSpace | Устанавливает горизонтальный отступ картинки от окружающего текста в пикселях. Необязательный. По умолчанию - "0" - без отступа.
sBorder | Устанавливает толщину рамки вокруг изображения. Необязательный. По умолчанию равен "0" - без рамки:

Возвращаемое значение

Возвращает HTML-код для вставки изображения в форму

Использование

<?=$FORM->ShowInputCaptionImage('MYFIELD_5', 'LEFT', 50, 50, "N", "", 5, 5)?>

См. также

  • Класс CFormOutput
  • CFile::ShowImage
  • CFormOutput::ShowInput
  • CFormOutput::ShowInputCaption
  • CFormOutput::isInputCaptionImage
    •


ShowRequired

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowResetButton

string
CFormOutput::ShowResetButton([
    string CAPTION = "",
    string CSSClass = ""
]
);

Возвращает HTML-код кнопки "Сбросить" формы создания/редактирования записи

Параметры функции

Параметр | Описание
CAPTION | Текст, расположенный на кнопке. Если параметр пуст или не указан, то будет использовано значение по умолчанию. Необязательный параметр.
CSSClass | CSS-класс кнопки. Необязательный параметр.

Возвращаемое значение

Возвращается HTML-код кнопки "Сбросить"

Использование

<?=$FORM->ShowResetButton("Отменить изменения", "form-button-reset")?>

См. также

  • Класс CFormOutput
  • CFormOutput::ShowApplyButton
  • CFormOutput::ShowSubmitButton
    •


ShowSubmitButton

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormOutput::ShowSubmitButton

string
CFormOutput::ShowSubmitButton([
    string CAPTION = "",
    string CSSClass = ""
]
);

Возвращает HTML-код кнопки отправки формы создания/редактирования записи

Параметры функции

Параметр | Описание
CAPTION | Текст, расположенный на кнопке. Если параметр пуст или не указан, то будет использовано значение параметра "Подпись на кнопке" вкладки "Свойства" страницы редактирования параметров веб-формы, либо значение по умолчанию. Необязательный параметр.
CSSClass | CSS-класс кнопки. Необязательный параметр.

Возвращаемое значение

Возвращается 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 полей для веб-формы.
GetFileByAnswerID | Возвращает параметры файла, загруженного в качестве значения ответа типа "file" или "image".
Reset | Удаляет значения ответов и значения полей веб-формы для указанного результата.
Delete | Удаляет указанный результат.
Mail | Создает почтовое событие.
SetEvent | Создает событие в модуле "Статистика".
SetStatus | Устанавливает указанный статус для указанного результата.
GetCount | Возвращает количество результатов указанной веб-формы.
GetPermissions | Возвращает массив прав на результат в зависимости от его статуса.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormResult::Add

mixed
CFormResult::Add(
 int form_id,
 array values = false,
 string check_rights = "Y",
 int user_id = false
)

Создает новый результат веб-формы. В случае успеха - возвращает ID нового результата, в противном случае - "false".

Параметры функции

Параметр | Описание
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 результата.

См. также

  • Поля CFormResult;
  • CFormResult::GetList
  • CFormResult::GetDataByID;
  • CForm::GetResultAnswerArray

Примеры использования

<?
$rsResult = CFormResult::GetByID(189);
$arResult = $rsResult->Fetch();
echo "<pre>"; print_r($arResult); echo "</pre>";
?>


GetCount

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormResult::GetCount

int
CFormResult::GetCount(
 int form_id
)

Возвращает количество результатов указанной веб-формы.

Параметры функции

Параметр | Описание
form_id | ID веб-формы.

Примеры использования

<?
$FORM_ID = 4; // ID веб-формы
echo "Количество результатов веб-формы #".$FORM_ID.": ".CFormResult::GetCount($FORM_ID);
?>


GetDataByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 руб.
?>


GetFileByAnswerID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormResult::GetFileByAnswerID

mixed
CFormResult::GetFileByAnswerID(
 int result_id,
 int answer_id
)

Возвращает массив, содержащий ряд параметров файла, загруженного в поле ответа типа "image" или "file" для указанного результата. В случае успеха функция возвратит массив, в противном случае - "false".

Структура возвращаемого массива:

Array
(
  [USER_FILE_ID]        => ID файла
  [USER_FILE_NAME]      => имя файла
  [USER_FILE_IS_IMAGE]  => "Y" - если тип ответа "image"; "N" - если тип ответа "file"
  [USER_FILE_HASH]      => хэш файла (если тип ответа "file")
  [USER_FILE_SUFFIX]    => суффикс к расширению файла (если тип ответа "file")
  [USER_FILE_SIZE]      => размер файла в байтах
)

Параметры функции

Параметр | Описание
result_id | ID результата.
answer_id | ID ответа.

См. также

  • CFormResult::GetDataByID

Примеры использования

<?
$RESULT_ID = 189; // ID результата
$ANSWER_ID = 148; // ID ответа

// получим данные по изображению
$arImage = CFormResult::GetFileByAnswerID($RESULT_ID, $ANSWER_ID);

// выведем изображение
echo CFile::ShowImage($arImage["USER_FILE_ID"], 0, 0, "border=0", "", true);
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 - символьный идентификатор вопроса или поля веб-формы;
    • PARAMETER_NAME - тип данных по которым фильтруем, допустимы следующие значения:
      • USER - фильтруем по ответам введенных авторами с клавиатуры;
      • ANSWER_TEXT - фильтруем по параметру ANSWER_TEXT;
      • ANSWER_VALUE - фильтруем по параметру ANSWER_VALUE.
    • VALUE - значение, по которому фильтруем (допускается сложная логика);
    • 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 Максимальное количество результатов, которые войдут в результирующий список.

Параметр необязательный. По умолчанию - "false" (без ограничений).

См. также

  • Поля 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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".

Примеры использования

<?
$RESULT_ID = 189; // ID результата

// создадим событие в модуле "Статистика"
if (CFormResult::SetEvent($RESULT_ID))
{
    echo "Событие успешно создано.";
}
else // ошибка
{
    global $strError;
    echo $strError;
}
?>


SetField

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormResult::SetField

CFormResult::SetField(
 int result_id,
 string field_sid,
 mixed value = false
)

Для указанного результата обновляет значения ответа на вопрос или обновляет значение поля.

Параметры функции

Параметр | Описание
result_id | ID результата.
field_sid | Символьный идентификатор вопроса или поля.
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 необязательный. По умолчанию - 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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
);

// получим список всех ответов вопроса #143
$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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormValidator::Clear

CFormValidator::Clear(
 int FIELD_ID,
)

Удаляет все валидаторы, назначенные данному вопросу/полю.

Параметры функции

Параметр | Описание
FIELD_ID | ID поля.


Execute

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormValidator::GetSettings

array
CFormValidator::GetSettings(
 array arValidator,
)

Возвращает список настроек валидатора. Аналогично прямому вызову метода возврата настроек валидатора.

Параметры функции

Параметр | Описание
arValidator | Описательный массив валидатора (например, полученный из результата метода CFormValidators::GetAllList)


GetSettingsArray

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormValidator::GetSettingsArray

array
CFormValidator::GetSettingsArray(
 array arValidator,
 string strParams
)

Возвращает список настроек валидатора со значениями после обратного преобразования строки, занесенной в базу. Аналогичен прямому вызову метода обратного преобразования (CONVERT_FROM_DB) валидатора. При вызове методов CFormValidator::GetList и CFormValidator::GetListForm вызывается автоматически.

Параметры функции

Параметр | Описание
arValidator | Описательный массив валидатора (например, полученный из результата метода CFormValidators::GetList)
strParams | Строка со значениями настроек, хранящаяся в БД.


GetSettingsString

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFormValidator::GetSettingsString

string
CFormValidator::GetSettingsString(
 array arValidator,
 array arParams
)

Возвращает список настроек валидатора со значениями, преобразованный для занесения в базу. Аналогичен прямому вызову метода преобразования настроек (CONVERT_TO_DB) валидатора. При вызове методов CFormValidator::Set и CFormValidator::SetBatch вызывается автоматически.

Параметры функции

Параметр | Описание
arValidator | Описательный массив валидатора (например, полученный из результата метода CFormValidators::GetList)
arParams | Массив значений настроек валидатора.


Set

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | массив значений параметров валидатора.


SetBatch

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 - массив параметрова валидатора.


События, веб-формы

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

События

Все события вызываются перед соответствующим вызовом файлов-обработчиков статуса результата. Возврат обработчиком каких-либо значений не предполагается. Те обработчики, для которых это указано (onBefore*), могут возвращать какие-либо сообщения посредством генерации системного исключения (CMain::ThrowException()). В случае появления такого исключения все последующие операции с результатом прерываются (включая обработчики статусов веб-формы). При этом все равно вызываются все обработчики текущего события. Данные, передаваемые по ссылкам, допускают непосредственное изменение значений.

Событие | Описание
onBeforeResultAdd | Вызывается перед добавлением нового результата веб-формы.
onAfterResultAdd | Вызывается после добавления нового результата веб-формы.
onBeforeResultUpdate | Вызывается перед сохранением изменений существующего результата.
onAfterResultUpdate | Вызывается после сохранения изменений результата веб-формы.
onBeforeResultDelete | Вызывается перед удалением результата веб-формы.
onBeforeResultStatusChange | Вызывается перед изменением статуса результата веб-формы.
onAfterResultStatusChange | Вызывается после изменения статуса результата веб-формы.


onAfterResultAdd

функция-обработчик(
 int WEB_FORM_ID,
 int RESULT_ID
);
Обработчики события вызываются после добавления нового результата веб-формы. Может быть использовано для совершения каких-либо дополнительных операций с результатом веб-формы, например, для рассылки дополнительных уведомлений посредством электронной почты. Для изменения полей результата веб-формы стоит использовать CFormResult::SetField(). Возврат обработчиком каких-либо значений не предполагается.

Параметры

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
RESULT_ID | ID результата.

См. также

  • Событие "onBeforeResultAdd"
  • Событие "onAfterResultUpdate"

Пример функции-обработчика:

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_onBeforeResultAddUpdate($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_onBeforeResultAddUpdate');
AddEventHandler('form', 'onBeforeResultUpdate', 'my_onBeforeResultAddUpdate');


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_onBeforeResultAddUpdate($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_onBeforeResultAddUpdate');
AddEventHandler('form', 'onBeforeResultUpdate', 'my_onBeforeResultAddUpdate');


Для разработчиков

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?
if(CModule::IncludeModule("forum"))
{
   //здесь можно использовать функции модуля
}
?>

Публичная часть форума строится на высокоуровневых функциях и классах ядра форума.


CFilterDictionary

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CFilterDictionary

CFilterDictionary - класс для работы cо словарями нецензурных слов.

Методы класса

Метод | Описание
Add | Создание нового словаря.
Delete | Удаление словаря.
GetList | Получение списка словарей с возможностью фильтрации и сортировки.
Update | Изменение параметров словаря.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterDictionary::Add

int
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterDictionary::Delete

bool
Delete(
 int ID
);

Удаляет папку с кодом ID.

Параметры функции

Параметр | Описание
ID | Код записи, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

См. также

© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterDictionary::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующего словаря с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого словаря.

Параметры функции

Параметр | Описание
ID | Код записи, параметры которой необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь".

Возвращаемое значение

Возвращает код измененного словаря. В случае ошибки изменения возвращает False.

См. также

  • поля таблицы "Словарь"


CFilterLetter

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CFilterLetter

CFilterLetter - класс для работы cо словарями букв.

Методы класса

Метод | Описание
Add | Создание новой записи.
Delete | Удаление записи.
GetList | Получение списка записей с возможностью фильтрации и сортировки.
Update | Изменение параметров записи.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterLetter::Add

int
Add(
 array arFields
);

Создает новую запись с параметрами, указанными в массиве arFields. Возвращает код созданной записи.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь транслита". Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданной записи. В случае ошибки добавления возвращает False.

См. также

  • таблица "Словарь транслита"


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterLetter::Delete

bool
Delete(
 int ID
);

Удаляет запись с кодом ID.

Параметры функции

Параметр | Описание
ID | Код записи, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID сообщения;
LETTER - имя буквы;
DICTIONARY_ID - ID словаря;

фильтруемое поле может содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Обязательное.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.

Возвращаемое значение

Возвращается объект CDBResult

См. также

  • CDBResult
  • таблица "Словарь"
  • таблица "Словаря транслита"


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterLetter::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующей записи с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемой записи.

Параметры функции

Параметр | Описание
ID | Код записи, параметры которой необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь транслита".

Возвращаемое значение

Возвращает код измененной записи. В случае ошибки изменения возвращает False.

См. также

  • таблица "Словарь транслита"


CFilterUnquotableWords

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CFilterUnquotableWords

CFilterUnquotableWords - класс для работы cо словарями слов.

Методы класса

Метод | Описание
Add | Создание новой записи.
Delete | Удаление записи.
GetList | Получение списка записей с возможностью фильтрации и сортировки.
Update | Изменение параметров записи.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterUnquotableWords::Add

int
Add(
 array arFields
);

Создает новую запись с параметрами, указанными в массиве arFields. Возвращает код созданной записи.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь слов". Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданной записи. В случае ошибки добавления возвращает False.

См. также

  • таблица "Словарь слов"


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterUnquotableWords::Delete

bool
Delete(
 int ID
);

Удаляет запись с кодом ID.

Параметры функции

Параметр | Описание
ID | Код записи, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterUnquotableWords::GetList

CDBResult
GetList(
 [array arOrder [,
 array arFilter [,
 bool bCount ]]]
);

Возвращает список записей по фильтру arFilter, отсортированый в соответствии с arOrder.

Параметры функции

Параметр | Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID сообщения;
WORDS - слово;
PATTERN - шаблон;
REPLACEMENT - замена;
DESCRIPTION - описание;
USE_IT - использовать этот шаблон в фильтре;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID сообщения;
DICTIONARY_ID - ID словаря;
WORDS - слово;
PATTERN - шаблон;
REPLACEMENT - замена;
DESCRIPTION - описание;
USE_IT - использовать этот шаблон в фильтре;

фильтруемое поле может содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Обязательное.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.

Возвращаемое значение

Возвращается объект CDBResult

См. также

  • CDBResult
  • таблица "Словарь"
  • таблица "Словарь букв"
  • таблица "Словарь слов"


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CFilterUnquotableWords::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующей записи с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемой записи.

Параметры функции

Параметр | Описание
ID | Код записи, параметры которой необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь слов".

Возвращаемое значение

Возвращает код измененной записи. В случае ошибки изменения возвращает False.

См. также

  • таблица "Словарь слов"


CForumGroup

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumGroup

CForumGroup - класс для работы с группами форумов.

Методы класса

Метод | Описание
GetList | Получение списка групп с возможностью фильтрации и сортировки.
GetByID | Получение параметров группы, не зависящих от языка, по ее коду.
GetByIDEx | Получение всех параметров группы, включая зависящие от языка, по ее коду и языку.
GetLangByID | Получение параметров группы, зависящих от языка, по ее коду и языку.
Add | Добавление новой группы.
Update | Изменение параметров группы.
Delete | Удаление группы.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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!";
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumGroup::Delete

bool
Delete(
 int ID
);

Удаляет группу с кодом ID. Если к данной группе привязаны форумы, то она удалена не будет.

Параметры функции

Параметр | Описание
ID | Код группы, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumGroup::GetByID

array
GetByID(
 int ID
);

Возвращает массив не зависящих от языка параметров группы по ее коду ID.

Параметры функции

Параметр | Описание
ID | Код группы.

Возвращаемое значение

Массив параметров группы, не зависящих от языка. Если группа не найдена, то возвращается значение false.

См. также

  • Поля группы


GetByIDEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumGroup::GetByIDEx

array
GetByIDEx(
 int ID,
 char(2) LANG
);

Возвращает массив всех параметров группы по ее коду ID и языку LANG.

Параметры функции

Параметр | Описание
ID | Код группы.
LANG | Сайт.

Возвращаемое значение

Массив всех параметров группы, включая зависящие от языка. Если группа не найдена, то возвращается значение false.

См. также

  • Поля группы


GetLangByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumGroup::GetLangByID

array
GetLangByID(
 int GROUP_ID,
 char(2) LANG
);

Возвращает массив языковых параметров группы по ее коду GROUP_ID и языку LANG.

Параметры функции

Параметр | Описание
GROUP_ID | Код группы.
LANG | Сайт.

Возвращаемое значение

Массив параметров группы, зависящих от языка. Если группа не найдена, то возвращается значение false.

См. также

  • Поля группы


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumGroup::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 - по коду;
SORT - индекс сортировки;

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult

См. также

  • CDBResult
  • Поля элементов


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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!";
?>


CForumMessage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumMessage

CForumMessage - класс для работы с сообщениями форумов

Методы класса

Метод | Описание
GetList | Получение списка сообщений с возможностью фильтрации и сортировки.
GetListEx | Получение списка сообщений (включая связаные данные) с возможностью фильтрации и сортировки.
GetByID | Получение параметров сообщения по его коду.
GetByIDEx | Получение параметров сообщения вместе со связаными данными по его коду.
Add | Добавление нового сообщения.
Update | Изменение параметров сообщения.
Delete | Удаление сообщения.
CanUserAddMessage | Всесторонне проверяет, может ли пользователь добавить новое сообщение.
CanUserUpdateMessage | Всесторонне проверяет, может ли пользователь изменить сообщение.
CanUserDeleteMessage | Всесторонне проверяет, может ли пользователь удалить сообщение.
GetMessagePage | Возвращает страницу, на которой будет находиться заданное сообщение при постраничном показе.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::Add

int
Add(
 array arFields [,
 string strUploadDir]
);

Создает новое сообщение с параметрами, указанными в массиве arFields. Возвращает код созданного сообщения.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей сообщения. Обязательные поля должны быть заполнены.
strUploadDir | Каталог для загрузки файлов. Должен быть задан относительно главного каталога для загрузки. Необязательный. По умолчанию равен "forum".

Возвращаемое значение

Возвращает код созданного сообщения. В случае ошибки добавления возвращает False.

Примечания

Перед добавлением сообщения следует проверить возможность добавления методом CForumMessage::CanUserAddMessage.

Для добавления и изменения сообщения и темы рекомендуется пользоваться высокоуровневой функцией ForumAddMessage.

См. также

  • Поля сообщения

Примеры использования

<?
$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 : "<no address>",
  "NEW_TOPIC" => "N"
);
$ID = CForumMessage::Add($arFields);
if (IntVal($ID)<=0)
  echo "Error!";
?>


CanUserAddMessage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::CanUserAddMessage

bool
CanUserAddMessage(
 int TID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, добавить новое сообщение в тему TID.

Параметры функции

Параметр | Описание
TID | Код темы, в которую пользователь хочет добавить сообщение.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление сообщения. В противном случае возвращается значение false.

См. также

  • CForumMessage::CanUserUpdateMessage
  • CForumMessage::CanUserDeleteMessage

Примеры использования

<?
if (CForumMessage::CanUserAddMessage($TID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    echo "You can add message!";
}
?>


CanUserDeleteMessage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::CanUserDeleteMessage

bool
CanUserDeleteMessage(
 int ID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, удалить сообщение с кодом ID.

Параметры функции

Параметр | Описание
ID | Код сообщения, которое пользователь хочет удалить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление сообщения. В противном случае возвращается значение false.

См. также

  • CForumMessage::CanUserAddMessage
  • CForumMessage::CanUserUpdateMessage

Примеры использования

<?
if (CForumMessage::CanUserDeleteMessage($ID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    CForumMessage::Delete($ID);
}
?>


CanUserUpdateMessage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::CanUserUpdateMessage

bool
CanUserUpdateMessage(
 int ID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, изменить сообщение с кодом ID.

Параметры функции

Параметр | Описание
ID | Код сообщения, которое пользователь хочет изменить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на изменение сообщения. В противном случае возвращается значение false.

См. также

  • CForumMessage::CanUserAddMessage
  • CForumMessage::CanUserDeleteMessage

Примеры использования

<?
if (CForumMessage::CanUserUpdateMessage($ID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    echo "You can modify this message!";
}
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::Delete

bool
Delete(
 int ID
);

Удаляет сообщение с кодом ID.

Параметры функции

Параметр | Описание
ID | Код сообщения, которое необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

См. также

  • Перед удалением сообщения следует проверить возможность удаления методом CForumMessage::CanUserDeleteMessage


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::GetByID

array
GetByID(
 int ID
);

Возвращает массив параметров сообщения по его коду ID.

Параметры функции

Параметр | Описание
ID | Код сообщения.

Возвращаемое значение

Массив параметров сообщения. Если сообщение не найдено, то возвращается значение false.

См. также

  • Поля сообщения

Примеры использования

<?
$arMessage = CForumMessage::GetByID($MID);
if ($arMessage)
{
  $TID = IntVal($arMessage["TOPIC_ID"]);
  $FID = IntVal($arMessage["FORUM_ID"]);
}
?>


GetByIDEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::GetByIDEx

array
GetByIDEx(
 int ID
);

Возвращает массив параметров сообщения, а так же сопутствующие параметры, по его коду ID.

Параметры функции

Параметр | Описание
ID | Код сообщения.

Возвращаемое значение

Массив параметров сообщения, включая сопутствующие. Если сообщение не найдено, то возвращается значение false.

См. также

  • Поля сообщения

Примеры использования

<?
// Распечатаем на экран все возвращаемые параметры сообщения
$arMessage = CForumMessage::GetByIDEx($MID);
if ($arMessage)
{
  echo "<pre>";
  print_r($arMessage);
  echo "</pre>";
}
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::GetList

CDBResult
GetList(
 [array arOrder [,
 array arFilter [,
 bool bCount [,
 int iNum]]]]
);

Возвращает список сообщений по фильтру arFilter, отсортированый в соответствии с arOrder.

Параметры функции

Параметр | Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
AUTHOR_NAME - имя автора сообщения;
POST_DATE - дата создания сообщения;
FORUM_ID - ID форума;
TOPIC_ID - ID темы;
APPROVED - опубликовано;
ID - ID сообщения;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID сообщения;
AUTHOR_NAME - имя автора сообщения;
AUTHOR_ID - ID автора сообщения;
FORUM_ID - ID форума;
TOPIC_ID - ID темы;
APPROVED - опубликовано;

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.

Возвращаемое значение

Возвращается объект 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>";
}
?>


GetListEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::GetListEx

CDBResult
GetListEx(
 [array arOrder [,
 array arFilter [,
 bool bCount [,
 int iNum]]]]
);

Возвращает список сообщений (включая связаные данные) по фильтру arFilter, отсортированый в соответствии с arOrder.

Параметры функции

Параметр | Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
AUTHOR_NAME - имя автора сообщения;
POST_DATE - дата создания сообщения;
FORUM_ID - ID форума;
TOPIC_ID - ID темы;
APPROVED - опубликовано;
ID - ID сообщения;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID сообщения;
AUTHOR_NAME - имя автора сообщения;
AUTHOR_ID - ID автора сообщения;
FORUM_ID - ID форума;
TOPIC_ID - ID темы;
APPROVED - опубликовано;

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.

Возвращаемое значение

Возвращается объект 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>";
}
?>


GetMessagePage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumMessage::GetMessagePage

int
GetMessagePage(
 int ID,
 int mess_per_page,
 array arUserGroups
);

Возвращает страницу, на которой будет находиться сообщение с кодом ID для пользователя, входящего в группы arUserGroups, при постраничном показе с mess_per_page сообщениями на странице.

Параметры функции

Параметр | Описание
ID | Код сообщения.
mess_per_page | Количество сообщений на страницу. Обычно равно переменной $FORUM_MESSAGES_PER_PAGE, которая определяется модулем форума. Эта переменная инициализируется из настроек модуля форума.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray().

Возвращаемое значение

Номер страницы, на которой будет показано сообщение. Если сообщение не найдено, то возвращается значение 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);
?>


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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.

См. также

  • Поля сообщения


CForumNew

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumNew

CForumNew - класс для работы с форумами

Методы класса

Метод | Описание
Add | Добавление нового форума.
Delete | Удаление форума.
CanUserAddForum | Всесторонне проверяет, может ли пользователь добавить новый форум.
CanUserDeleteForum | Всесторонне проверяет, может ли пользователь удалить форум.
CanUserUpdateForum | Всесторонне проверяет, может ли пользователь изменить форум.
GetByID | Получение параметров форума по его коду.
GetByIDEx | Получение параметров форума вместе со связаными данными по его коду.
GetList | Получение списка форумов с возможностью фильтрации и сортировки.
GetListEx | Получение списка форумов (включая связаные данные) с возможностью фильтрации и сортировки.
GetSites | Получение сайтов, к которым относится форум, а так же шаблонов путей к сообщениям форума на этих сайтах.
Update | Изменение параметров форума.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::Add

int
Add(
 array arFields
);

Создает новый форум с параметрами, указанными в массиве arFields. Возвращает код созданного форума.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей форума. Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданного форума. В случае ошибки добавления возвращает False.

См. также

  • Поля форума
  • Перед добавлением форума следует проверить возможность добавления методом CForumNew::CanUserAddForum


CanUserAddForum

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::CanUserAddForum

bool
CanUserAddForum(
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, добавить новый форум.

Параметры функции

Параметр | Описание
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление форума. В противном случае возвращается значение false.

См. также

  • CForumNew::CanUserUpdateForum
  • CForumNew::CanUserDeleteForum


CanUserDeleteForum

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::CanUserDeleteForum

bool
CanUserDeleteForum(
 int ID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, удалить форум с кодом ID.

Параметры функции

Параметр | Описание
ID | Код форума, который пользователь хочет удалить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление форума. В противном случае возвращается значение false.

См. также

  • CForumNew::CanUserAddForum
  • CForumNew::CanUserUpdateForum


CanUserUpdateForum

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::CanUserUpdateForum

bool
CanUserUpdateForum(
 int ID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, изменить форум с кодом ID.

Параметры функции

Параметр | Описание
ID | Код форума, который пользователь хочет изменить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на изменение форума. В противном случае возвращается значение false.

См. также

  • CForumNew::CanUserAddForum
  • CForumNew::CanUserDeleteForum

Примеры использования

<?
if (CForumNew::CanUserUpdateForum($ID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    echo "You can modify this forum!";
}
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::Delete

bool
Delete(
 int ID
);

Удаляет форум с кодом ID. Перед удалением проверяет обработчики события OnBeforeForumDelete модуля forum. Если один из обработчиков вернет false, то форум удален не будет.

Параметры функции

Параметр | Описание
ID | Код форума, который необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

См. также

  • Перед удалением форума следует проверить возможность удаления методом CForumNew::CanUserDeleteForum


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::GetByID

array
GetByID(
 int ID
);

Возвращает массив параметров форума по его коду ID. Результаты вызова функции кешируются, поэтому повторные вызовы метода для одного и того же форума не требуют дополнительного обращения к базе данных (при условии, что кеш не сбросился в результате изменения параметров форума).

Параметры функции

Параметр | Описание
ID | Код форума.

Возвращаемое значение

Массив параметров форума. Если форум не найден, то возвращается значение false.

См. также

  • Поля форума

Примеры использования

<?
$arForum = CForumNew::GetByID($FID);
if ($arForum)
{
  echo $arForum["NAME"]."<br>";
}
?>


GetByIDEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::GetByIDEx

array
GetByIDEx(
 int ID
);

Возвращает массив параметров форума, а так же сопутствующие параметры, по его коду ID.

Параметры функции

Параметр | Описание
ID | Код форума.

Возвращаемое значение

Массив параметров форума, включая сопутствующие. Если форум не найден, то возвращается значение false.

См. также

  • Поля форума

Примеры использования

<?
// Распечатаем на экран все возвращаемые параметры форума
$arForum = CForumNew::GetByIDEx($FID);
if ($arForum)
{
  echo "<pre>";
  print_r($arForum);
  echo "</pre>";
}
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::GetList

CDBResult
GetList(
 [array arOrder [,
 array arFilter]]
);

Возвращает список форумов по фильтру 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 - права на доступ к форуму (массив из двух элементов, первый из которых - это список кодов групп, в которые входит пользователь, а второй - это код права на доступ);

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::GetListEx

CDBResult
GetListEx(
 [array arOrder [,
 array arFilter]]
);

Возвращает список форумов (включая связаные данные) по фильтру arFilter, отсортированый в соответствии с arOrder.

Параметры функции

Параметр Описание
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.

Возвращаемое значение

Возвращается объект 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumNew::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующего форума с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого форума.

Параметры функции

Параметр | Описание
ID | Код форума, параметры которого необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей форума.

Возвращаемое значение

Возвращает код измененного форума. В случае ошибки изменения возвращает False.

См. также

  • Поля форума
  • Перед изменением форума следует проверить возможность изменения методом CanUserUpdateForum


CForumPMFolder

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumPMFolder

CForumPMFolder - класс для работы папками пользователя.

Методы класса

Метод | Описание
Add | Создание новой папки пользователя.
Delete | Удаление папки пользователя.
GetList | Получение списка папок с возможностью фильтрации и сортировки.
Update | Изменение параметров папки пользователя.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPMFolder::Add

int
Add(
 array arFields
);

Создает новую папку с параметрами, указанными в массиве arFields. Возвращает код созданной папки.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Папка пользователя". Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданного сообщения. В случае ошибки добавления возвращает False.

См. также

  • таблица "Папка пользователя"

Примеры использования

<?
$arFields = Array(
    TITLE        - > $TITLE,
    USER_ID      - > $USER_ID,
);
$ID = CForumPMFolder::Add($arFields);
if (IntVal($ID)<=0)
  echo "Error!";
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPMFolder::Delete

bool
Delete(
 int ID
);

Удаляет папку пользователя с кодом ID.

Параметры функции

Параметр | Описание
ID | Код папки пользователя, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

См. также

© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPMFolder::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующей папки пользователя с кодом ID на параметры, указанные в массиве arFields.

Параметры функции

Параметр | Описание
ID | Код папки пользователя, параметры которой необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Папка пользователя".

Возвращаемое значение

Возвращает код измененного сообщения. В случае ошибки изменения возвращает False.

См. также

  • таблица "Папка пользователя"


CForumPoints

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumPoints

CForumPoints - класс для работы со званиями (статусами пользователей) форума

Методы класса

Метод | Описание
GetList | Получение списка званий с возможностью фильтрации и сортировки.
GetListEx | Получение списка званий (включая языкозависимые параметры звания) с возможностью фильтрации и сортировки.
GetByID | Получение параметров звания по его коду.
GetByIDEx | Получение параметров звания вместе с языкозависимыми параметрами по его коду.
Add | Добавление нового звания.
Update | Изменение параметров звания.
Delete | Удаление звания.
GetLangByID | Получение языкозависимых параметров звания.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPoints::Add

int
CForumPoints::Add(
 array arFields
);

Функция добавляет новое звание (рейтинг) в систему званий форума

Параметры функции

Параметр | Описание
$arFields | Массив атрибутов звания.

Возвращаемые значения

Код добавленного звания или false в случае ошибки.


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPoints::Delete

bool
CForumPoints::Delete(
 int ID
);

Удаляет звание (рейтинг) с кодом ID из системы званий форума

Параметры функции

Параметр | Описание
$ID | Код звания для удаления.

Возвращаемые значения

Возвращает True


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPoints::GetByID

array
CForumPoints::GetByID(
 int ID
);

Возвращает массив параметров звания (рейтинга) форума по его коду

Параметры функции

Параметр | Описание
$ID | Код звания.

Возвращаемые значения

Возвращает ассоциативный массив с ключами

Ключ | Значение
ID | Код звания.
MIN_POINTS | Количество баллов, необходимое для получения этого звания.
CODE | Мнемонический код.
VOTES | Количество голосов, которое имеет пользователь с этим званием.

Пример использования

<?

$ar_res = CForumPoints::GetByID(3);
echo "Пользователь с этим званием может отдать ".$ar_res["VOTES"]." голос(ов)";
?>


GetByIDEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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"]." голосов";

?>


GetLangByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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"]."";
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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>";
}


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPoints::Update

int
CForumPoints::Update(
 int ID,
 array arFields
);

Изменяет параметры звания с кодом ID на значения, указанные в массиве arFields

Параметры функции

Параметр | Описание
ID | Код звания.
arFields | Массив новых значений параметров звания.

Возвращаемые значения

Функция возвращает код изменяемого звания или false в случае ошибки


CForumPoints2Post

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumPoints2Post

CForumPoints2Post - класс для работы с картой соответствий между количество сообщений пользователя на форуме и количеством балов, которые пользователь получает за каждое сообщение

Методы класса

Метод | Описание
GetList | Получение списка записей в карте соответствий с возможностью фильтрации и сортировки.
GetByID | Получение параметров записи по ее коду.
Add | Добавление новой записи.
Update | Изменение параметров записи.
Delete | Удаление записи.


CForumPoints2Post::Add

int
CForumPoints2Post::Add(
 array arFields
);

Функция добавляет новую запись в таблицу соответствий между количеством сообщений пользователя на форуме и количеством баллов за одно сообщение

Параметры функции

Параметр | Описание
arFields | массив параметров записи.

Возвращаемые значения

Функция возвращает код вставленной записи или false в случае ошибки


CForumPoints2Post::GetByID

array
CForumPoints2Post::GetByID(
 int ID
);

Возвращает массив параметров записи в таблицу соответствий между количеством сообщений пользователя на форуме и количеством балов за одно сообщение по ее коду

Параметры функции

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Возвращает ассоциативный массив с ключами

Ключ | Значение
ID | Код записи.
MIN_NUM_POSTS | Количество сообщений, которое пользователь должен написать на форуме для получения этого количества балов за одно сообщение.
POINTS_PER_POST | Количество балов за одно сообщение. Может иметь как целое значение, так и дробное: 2 - два бала за каждое сообщение 0.1 - одна десятая бала за каждое сообщение.


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 - одна десятая бала за каждое сообщение.


CForumPoints2Post::Update

int
CForumPoints2Post::Update(
 int ID,
 array arFields
);

Изменяет параметры записи с кодом ID в таблице соответствий между количеством сообщений пользователя на форуме и количеством баллов за одно сообщение на значения, указанные в массиве arFields

Параметры функции

Параметр | Описание
ID | Код изменяемой записи.
arFields | Массив новых значений параметров записи.

Возвращаемые значения

Функция возвращает код записи или false в случае ошибки


CForumPoints2Post::Delete

bool
CForumPoints2Post::Delete(
 int ID
);

Удаляет запись с кодом ID из таблицы соответствий между количеством сообщений пользователя на форуме и количеством баллов за одно сообщение

Параметры функции

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Функция возвращает значение True


CForumPrivateMessage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumPrivateMessage

CForumPrivateMessage - класс для работы с приватными сообщениями.

Методы класса

Метод | Описание
Delete | Удаление сообщения.
GetList | Получение списка сообщений с возможностью фильтрации и сортировки.
GetByID | Получение параметров сообщения по его коду.
Send | Добавление (отправка) нового сообщения.
Update | Изменение параметров сообщения.


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPrivateMessage::Delete

bool
Delete(
 int ID
);

Удаляет сообщение с кодом ID.

Параметры функции

Параметр | Описание
ID | Код сообщения, которое необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

См. также

© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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"]);
}
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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
  • таблица "Приватное сообщение"


Send

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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!";
?>


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumPrivateMessage::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующего сообщения с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого сообщения.

Параметры функции

Параметр | Описание
ID | Код сообщения, параметры которого необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Приватное сообщение".

Возвращаемое значение

Возвращает код измененного сообщения. В случае ошибки изменения возвращает False.

См. также

  • таблица "Приватное сообщение"


CForumSmile

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumSmile

CForumSmile - класс для работы со смайлами

Методы класса

Метод | Описание
GetList | Получение списка смайлов с возможностью фильтрации и сортировки.
GetByID | Получение параметров смайла, не зависящих от языка, по его коду.
GetByIDEx | Получение всех параметров смайла по его коду и языку.
GetLangByID | Получение языковых параметров смайла по его коду и языку.
Add | Добавление нового смайла.
Update | Изменение параметров смайла.
Delete | Удаление смайла.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSmile::Add

int
Add(
 array arFields
);

Создает новый смайл с параметрами, указанными в массиве arFields. Возвращает код созданного смайла.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей смайла. В специальное поле "LANG" заносится массив массивов полей языковых параметров смайла, которые имеют аналогичную структуру. Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданного смайла. В случае ошибки добавления возвращает False.

См. также

  • Поля смайла


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSmile::Delete

bool
Delete(
 int ID
);

Удаляет смайл с кодом ID.

Параметры функции

Параметр | Описание
ID | Код смайла, который необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSmile::GetByID

array
GetByID(
 int ID
);

Возвращает массив параметров смайла, которые не зависят от языка, по его коду ID.

Параметры функции

Параметр | Описание
ID | Код смайла.

Возвращаемое значение

Массив параметров смайла. Если смайл не найден, то возвращается значение false.

См. также

  • Поля смайла


GetByIDEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSmile::GetByIDEx

array
GetByIDEx(
 int ID,
 char(2) LANG
);

Возвращает массив всех параметров смайла по его коду ID и языку LANG.

Параметры функции

Параметр | Описание
ID | Код смайла.
LANG | Сайт.

Возвращаемое значение

Массив всех параметров смайла. Если смайл не найден, то возвращается значение false.

См. также

  • Поля смайла


GetLangByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSmile::GetLangByID

array
GetLangByID(
 int RANK_ID,
 char(2) LANG
);

Возвращает массив языковых параметров смайла по его коду RANK_ID и языку LANG.

Параметры функции

Параметр | Описание
RANK_ID | Код смайла.
LANG | Сайт.

Возвращаемое значение

Массив языковых параметров смайла. Если смайл не найден, то возвращается значение false.

См. также

  • Поля смайла


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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
  • Поля смайла


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSmile::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующего смайла с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого смайла.

Параметры функции

Параметр | Описание
ID | Код смайла, параметры которого необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей смайла. В специальное поле "LANG" заносится массив массивов полей языковых параметров звания, которые имеют аналогичную структуру.

Возвращаемое значение

Возвращает код измененного смайла. В случае ошибки изменения возвращает False.

См. также

  • Поля смайла


CForumSubscribe

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumSubscribe

CForumSubscribe - класс для работы с подпиской на новые сообщения форума и темы

Методы класса

Метод | Описание
GetList | Получение списка подписки с возможностью фильтрации и сортировки.
GetListEx | Получение списка подписки с возможностью фильтрации и сортировки. Дополнительно выбирает Email подписчика и имеет дополнительные возможности фильтрации.
Add | Добавление новой подписки.
Delete | Удаление подписки.
CanUserAddSubscribe | Всесторонне проверяет, может ли пользователь добавить новую подписку.
CanUserDeleteSubscribe | Всесторонне проверяет, может ли пользователь удалить подписку.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSubscribe::Add

int
Add(
 array arFields
);

Создает новую запись в таблице подписки с параметрами, указанными в массиве arFields. Возвращает код созданной записи.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей подписки. Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданной записи. В случае ошибки добавления возвращает False.

См. также

  • Поля подписки
  • Перед добавлением подписки следует проверить возможность добавления методом CForumSubscribe::CanUserAddSubscribe


CanUserAddSubscribe

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSubscribe::CanUserAddSubscribe

bool
CanUserAddSubscribe(
 int FID,
 array arUserGroups
);

Всесторонне проверяет, может ли пользователь, входящий в группы arUserGroups, добавить подписку на форум FID.

Параметры функции

Параметр | Описание
FID | ID форума, на который (или тему которого) пользователь хочет подписаться.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление подписки. В противном случае возвращается значение false.

См. также

  • CForumNew::CanUserDeleteSubscribe


CanUserDeleteSubscribe

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSubscribe::CanUserDeleteSubscribe

bool
CanUserDeleteSubscribe(
 int ID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, удалить подписку с кодом ID.

Параметры функции

Параметр | Описание
ID | Код подписки, которую пользователь хочет удалить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление подписки. В противном случае возвращается значение false.

См. также

  • CForumSubscribe::CanUserAddSubscribe


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSubscribe::Delete

bool
Delete(
 int ID
);

Удаляет подписку с кодом ID

Параметры функции

Параметр | Описание
ID | Код подписки, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

См. также

  • Перед удалением подписки следует проверить возможность удаления методом CForumSubscribe::CanUserDeleteSubscribe


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumSubscribe::GetList

CDBResult
GetList(
 [array arOrder [,
 array arFilter]]
);

Возвращает список подписок по фильтру 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 (проверка только на "меньше");
Фильтруемое поле может иметь содержать перед названием тип проверки фильтра
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult

См. также

  • CDBResult
  • Поля подписки


GetListEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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
  • Поля подписки


CForumTopic

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumTopic

CForumTopic - класс для работы с темами форумов.

Методы класса

Метод | Описание
GetList | Получение списка тем с возможностью фильтрации и сортировки.
GetListEx | Получение списка тем (включая связаные данные) с возможностью фильтрации и сортировки.
GetByID | Получение параметров темы по ее коду.
GetByIDEx | Получение параметров темы вместе со связаными данными по ее коду.
Add | Добавление новой темы.
Update | Изменение параметров темы.
Delete | Удаление темы.
CanUserAddTopic | Всесторонне проверяет, может ли пользователь добавить новую тему.
CanUserUpdateTopic | Всесторонне проверяет, может ли пользователь изменить тему.
CanUserDeleteTopic | Всесторонне проверяет, может ли пользователь удалить тему.
GetNeighboringTopics | Возвращает для данной темы коды предыдущей и следующей тем.
MoveTopic2Forum | Переносит тему в другой форум.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::Add

int
Add(
 array arFields
);

Создает новую тему с параметрами, указанными в массиве arFields. Возвращает код созданной темы.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей темы. Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданной темы. В случае ошибки добавления возвращает False.

См. также

  • Поля темы
  • Перед добавлением темы следует проверить возможность добавления методом CForumTopic::CanUserAddTopic
  • Для добавления и изменения сообщения и темы рекомендуется пользоваться высокоуровневой функцией ForumAddMessage


CanUserAddTopic

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::CanUserAddTopic

bool
CanUserAddTopic(
 int FID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, добавить новую тему в форум FID.

Параметры функции

Параметр | Описание
FID | Код форума, в который пользователь хочет добавить тему.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление темы. В противном случае возвращается значение false.

См. также

  • CForumTopic::CanUserUpdateTopic
  • CForumTopic::CanUserDeleteTopic

Примеры использования

<?
if (CForumTopic::CanUserAddTopic($FID,
                                 $USER->GetUserGroupArray(),
                                 $USER->GetID()))
{
    echo "You can add topic!";
}
?>


CanUserDeleteTopic

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::CanUserDeleteTopic

bool
CanUserDeleteTopic(
 int ID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, удалить тему с кодом ID.

Параметры функции

Параметр | Описание
ID | Код темы, которую пользователь хочет удалить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление темы. В противном случае возвращается значение false.

См. также

  • CForumTopic::CanUserAddTopic
  • CForumTopic::CanUserUpdateTopic

Примеры использования

<?
if (CForumTopic::CanUserDeleteTopic($ID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    CForumTopic::Delete($ID);
}
?>


CanUserUpdateTopic

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::CanUserUpdateTopic

bool
CanUserUpdateTopic(
 int ID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, изменить тему с кодом ID.

Параметры функции

Параметр | Описание
ID | Код темы, которую пользователь хочет изменить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на изменение темы. В противном случае возвращается значение false.

См. также

  • CForumTopic::CanUserAddTopic
  • CForumTopic::CanUserDeleteTopic

Примеры использования

<?
if (CForumTopic::CanUserUpdateTopic($ID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    echo "You can modify this topic!";
}
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::Delete

bool
Delete(
 int ID
);

Удаляет тему с кодом ID.

Параметры функции

Параметр | Описание
ID | Код темы, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

См. также

  • Перед удалением темы следует проверить возможность удаления методом CForumTopic::CanUserDeleteTopic


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::GetByID

array
GetByID(
 int ID
);

Возвращает массив параметров темы по ее коду ID. Результаты вызова функции кешируются, поэтому повторные вызовы метода для одной и той же темы не требуют дополнительного обращения к базе данных (при условии, что кеш не сбросился в результате изменения параметров темы).

Параметры функции

Параметр | Описание
ID | Код темы.

Возвращаемое значение

Массив параметров темы. Если тема не найдена, то возвращается значение false.

См. также

  • Поля темы

Примеры использования

<?
$arTopic = CForumTopic::GetByID($TID);
if ($arTopic)
{
  $FID = IntVal($arTopic["FORUM_ID"]);
}
?>


GetByIDEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::GetByIDEx

array
GetByIDEx(
 int ID
);

Возвращает массив параметров темы, а так же сопутствующие параметры, по ее коду ID.

Параметры функции

Параметр | Описание
ID | Код темы.

Возвращаемое значение

Массив параметров темы, включая сопутствующие. Если тема не найдена, то возвращается значение false.

См. также

  • Поля темы

Примеры использования

<?
// Распечатаем на экран все возвращаемые параметры темы
$arTopic = CForumTopic::GetByIDEx($TID);
if ($arTopic)
{
  echo "<pre>";
  print_r($arTopic);
  echo "</pre>";
}
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::GetList

CDBResult
GetList(
 [array arOrder [,
 array arFilter [,
 bool bCount [,
 int iNum]]]]
);

Возвращает список тем по фильтру arFilter, отсортированый в соответствии с arOrder.

Параметры функции

Параметр | Описание
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 - дата последнего сообщения в теме;

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.
bCount | Если параметр равен True, то возвращается только количество тем, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.

Возвращаемое значение

Возвращается объект 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 $ar_res["TITLE"]."<br>";
}
?>


GetListEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::GetListEx

CDBResult
GetListEx(
 [array arOrder [,
 array arFilter [,
 bool bCount [,
 int iNum]]]]
);

Возвращает список тем (включая связаные данные) по фильтру arFilter, отсортированый в соответствии с arOrder.

Параметры функции

Параметр | Описание
arOrder | Массив вида Array(by1=>order1[, by2=>order2 [, ..]]). Подробное описание параметра смотрите в описании функции CForumTopic::GetList.
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]).
Подробное описание параметра смотрите в описании функции CForumTopic::GetList.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.

Возвращаемое значение

Возвращается объект 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>";
}
?>


GetNeighboringTopics

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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>";
?>


CForumTopic::MoveTopic2Forum

bool
CForumTopic::MoveTopic2Forum(
 int TID,
 int FID
);

Функция переносит тему с кодом TID в форум с кодом FID

Параметры функции

Параметр | Описание
TID | Код темы, которую необходимо перенести.
FID | Код форума, в который необходимо перенести тему.

Возвращаемые значения

Функция возвращает True в случае успешного переноса и False - в противном случае


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumTopic::Update

int
Update(
 int ID,
 array arFields [,
 bool skip_counts]
);

Изменяет параметры существующей темы с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемой темы.

Параметры функции

Параметр | Описание
ID | Код темы, параметры которой необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей темы.
skip_counts | Если этот параметр установлен в значение true, то при изменении темы не будут автоматически обсчитаны статистические данные. Это ускоряет работу функции, но создает логические ошибки в данных. Необязательный. По умолчанию равен False.

Возвращаемое значение

Возвращает код измененной темы. В случае ошибки изменения возвращает False.

См. также

  • Поля темы
  • Перед изменением темы следует проверить возможность изменения методом CanUserUpdateTopic
  • Для добавления и изменения сообщения и темы можно воспользоваться высокоуровневой функцией ForumAddMessage


CForumUser

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumUser

CForumUser - класс для работы с профайлами посетителей форума

Методы класса

Метод | Описание
GetList | Получение списка профайлов с возможностью фильтрации и сортировки.
GetByID | Получение параметров профайла по его коду.
GetByUSER_ID | Получение параметров профайла по коду пользователя, которому профайл принадлежит.
GetByIDEx | Получение параметров профайла вместе со связаными данными по его коду.
Add | Добавление нового профайла.
Update | Изменение параметров профайла.
Delete | Удаление профайла.
CanUserAddUser | Всесторонне проверяет, может ли пользователь добавить новый профайл.
CanUserUpdateUser | Всесторонне проверяет, может ли пользователь изменить профайл.
CanUserDeleteUser | Всесторонне проверяет, может ли пользователь удалить профайл.
GetUserRank | Возвращает звание пользователя.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::Add

int
Add(
 array arFields [,
 string strUploadDir ]
);

Создает новый профайл с параметрами, указанными в массиве arFields. Возвращает код созданного профайла.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей профайла пользователя. Обязательные поля должны быть заполнены.
strUploadDir | Каталог для загрузки файлов. Должен быть задан относительно главного каталога для загрузки. Необязательный. По умолчанию равен "forum".

Возвращаемое значение

Возвращает код созданного профайла. В случае ошибки добавления возвращает False.

См. также

  • Поля профайла
  • Перед добавлением профайла следует проверить возможность добавления методом CForumUser::CanUserAddUser


CanUserAddUser

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::CanUserAddUser

bool
CanUserAddUser(
 array arUserGroups
);

Всесторонне проверяет, может ли пользователь, входящий в группы arUserGroups, добавить новый профайл.

Параметры функции

Параметр | Описание
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление профайла. В противном случае возвращается значение false.

См. также

  • CForumUser::CanUserUpdateUser
  • CForumUser::CanUserDeleteUser


CanUserDeleteUser

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::CanUserDeleteUser

bool
CanUserDeleteUser(
 int ID,
 array arUserGroups
);

Всесторонне проверяет, может ли пользователь, входящий в группы arUserGroups, удалить профайл с кодом ID.

Параметры функции

Параметр | Описание
ID | Код профайла, который пользователь хочет удалить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление профайла. В противном случае возвращается значение false.

См. также

  • CForumUser::CanUserAddUser
  • CForumUser::CanUserUpdateUser


CanUserUpdateUser

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::CanUserUpdateUser

bool
CanUserUpdateUser(
 int ID,
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, изменить профайл с кодом ID.

Параметры функции

Параметр | Описание
ID | Код профайла, который пользователь хочет изменить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на изменение профайла. В противном случае возвращается значение false.

См. также

  • CForumUser::CanUserAddUser
  • CForumUser::CanUserDeleteUser


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::Delete

bool
Delete(
 int ID
);

Удаляет профайл с кодом ID.

Параметры функции

Параметр | Описание
ID | Код профайла, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

См. также

  • Перед удалением профайла следует проверить возможность удаления методом CForumUser::CanUserDeleteUser


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::GetByID

array
GetByID(
 int ID
);

Возвращает массив параметров профайла по его коду ID. Результаты вызова функции кешируются, поэтому повторные вызовы метода для одного и того же профайла не требуют дополнительного обращения к базе данных (при условии, что кеш не сбросился в результате изменения параметров профайла).

Параметры функции

Параметр | Описание
ID | Код профайла.

Возвращаемое значение

Массив параметров профайла. Если профайл не найден, то возвращается значение false.

См. также

  • Поля профайла


GetByIDEx

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::GetByIDEx

array
GetByIDEx(
 int ID
);

Возвращает массив параметров профайла, а так же сопутствующие параметры, по его коду ID.

Параметры функции

Параметр | Описание
ID | Код профайла.

Возвращаемое значение

Массив параметров профайла, включая сопутствующие. Если профайл не найден, то возвращается значение false.

См. также

  • Поля профайла


CForumUser::GetByUSER_ID

array
GetByUSER_ID(
 int USER_ID
);

Возвращает массив параметров профайла по коду USER_ID пользователя, которому этот профайл принадлежит. Результаты вызова функции кешируются, поэтому повторные вызовы метода для одного и того же пользователя не требуют дополнительного обращения к базе данных (при условии, что кеш не сбросился в результате изменения параметров профайла).

Параметры функции

Параметр | Описание
USER_ID | Код пользователя.

Возвращаемое значение

Массив параметров профайла. Если профайл не найден, то возвращается значение false.

См. также

  • Поля профайла


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::GetList

CDBResult
GetList(
 [array arOrder [,
 array arFilter]]
);

Возвращает список профайлов по фильтру 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 - разрешено писать сообщения (т.е. не забанен);

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult

См. также

  • CDBResult
  • Поля профайла


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CForumUser::Update

int
Update(
 int ID,
 array arFields [,
 string strUploadDir ]
);

Изменяет параметры существующего профайла с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого профайла.

Параметры функции

Параметр | Описание
ID | Код профайла, параметры которого необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей профайла.
strUploadDir | Каталог для загрузки файлов. Должен быть задан относительно главного каталога для загрузки. Необязательный. По умолчанию равен "forum".

Возвращаемое значение

Возвращает код измененного профайла. В случае ошибки изменения возвращает False.

См. также

  • Поля профайла
  • Перед изменением профайла следует проверить возможность изменения методом CForumUser::CanUserUpdateUser


GetUserRank

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CForumUserPoints

CForumUserPoints - класс для работы с голосованиями пользователей форума за других пользователей форума

Методы класса

Метод | Описание
GetList | Получение списка голосований с возможностью фильтрации и сортировки.
GetByID | Получение параметров голосования по его коду.
Add | Добавление нового голосования одного из посетителей форума за другого.
Update | Изменение параметров голосования.
Delete | Удаление голосования.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 "Ошибка голосования";
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 - в случае ошибки


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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"]. " голосов";
}
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Дата последнего изменения записи.


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 "Ошибка изменения голосования";

?>


textParser

textParser - класс, предназначенный для форматирования сообщений форума. Осуществляет замену спецсимволов и заказных тегов на реальные HTML- теги, обработку ссылок, отображение смайлов.

Методы класса

Метод | Описание
convert | Функция форматирования сообщения.


convert

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

textParser::convert

string
convert(
 string strPost_message,
 array arAllow
);

Функция форматирования текста.

Параметры функции

Параметр | Описание
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 теги.

Примеры использования

<?
$parser = new textParser();  // создаем экземпляр класса textParser
$arAllow = $Forum->ALLOW;    // заполняем массив параметров форматирования
                             // из массива переменной-члена класса CForum,
                             // эти два массива имеют идентичную структуру
$arAllow["SMILES"] = "N";    // переопределяем (запрещаем) показ смайликов
                             // в виде картинок
echo $parser->convert($strMessage, $arAllow);  // форматируем и выводим сообщение
?>


Классы

Следующие PHP классы используются в модуле форума.

Классы

Класс | Описание
CForumNew | Класс для работы с форумами.
CForumTopic | Класс для работы с темами форумов.
CForumPoints | Класс для работы со званиями (статусами) форума.
CForumPoints2Post | Класс для работы с картой соответствий между количеством сообщений пользователя на форуме и количеством баллов, которое пользователь получает за одно сообщение.
CForumUserPoints | Класс для работы с голосованиями пользователей.
CForumUser | Класс для работы с профайлами посетителей форума.
CFilterDictionary | Класс для работы cо словарями нецензурных слов.
CFilterLetter | Класс для работы cо словарями букв.
CFilterUnquotableWords | Класс для работы cо словарями cлов.
CForumPMFolder | Класс для работы папками пользователя.
CForumPrivateMessage | Класс для работы с приватными сообщениями.


Функции для использования в публичной части

Эти функции уже содержат проверки на права и корректность входных параметров, поэтому для выполнения необходимого действия достаточно просто вызвать соответствующую функцию.

Функция | Описание
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 дописывает сообщения об успехах, которые произошли при работе функции.

Параметры функции

Параметр | Описание
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 (байт).

Возвращаемое значение

Возвращает ID сообщения, если функция отработала без ошибок. В противном случае возвращает False.


ForumCurrUserPermissions

char(1)
ForumCurrUserPermissions(
 int FID
);

Возвращает код права текущего посетителя на доступ к форуму по его коду FID.

Параметры функции

Параметр | Описание
FID | Код форума.

Возвращаемое значение

Возвращает код права текущего посетителя на доступ к форуму. Список возможных значений:
  • A - нет доступа - текущий пользователь не должен видеть этого форума
  • E - чтение - текущий пользователь может читать этот форум, но не может писать в него
  • I - ответ - текущий пользователь может отвечать на существующие в форуме темы, но не может создавать новые темы
  • M - новая тема - текущий пользователь может как отвечать на существующие темы, так и создавать новые
  • Q - модерирование - текущий пользователь может модерировать форум, т.е. производить те действия, которые не повлекут реальной потери данных. Например, модератор может скрыть или показать сообщение, но не может отредактировать или удалить его. Модераторы получают копии всех сообщений форума по почте
  • U - редактирование - текущий пользователь может в полном объеме управлять чужими сообщениями на форуме
  • Y - полный доступ - текущий пользователь имеет полный доступ к форуму, включая доступ к настройкам форума и прав доступа
Администраторы сайта всегда имеют полный доступ ко всем форумам.

См. также

  • Редактирование параметров форума


ForumModerateMessage

bool
ForumModerateMessage(
 int MID,
 char(1) TYPE,
 &string strErrorMessage,
 &string strOKMessage
);

Публикует или скрывает сообщение с кодом MID. В переменную, передаваемую в параметре strErrorMessage дописывает ошибки, которые произошли при работе функции. В переменную, передаваемую в параметре strOKMessage дописывает сообщения об успехах, которые произошли при работе функции.

Параметры функции

Параметр | Описание
MID | Код сообщения для публикации или скрытия.
TYPE | Возможные значения: "SHOW" - публиковать сообщение, "HIDE" - скрыть сообщение.
strErrorMessage | Переменная, в которую функция дописывает сообщения об ошибках, которые произошли при подписке.
strOKMessage | Переменная, в которую функция дописывает сообщения об успехах, которые произошли при подписке.

Возвращаемое значение

Возвращает True, если работа функции завершена без ошибок. В противном случае возвращает False.


ForumSubscribeNewMessages

bool
ForumSubscribeNewMessages(
 int FID,
 int TID,
 &string strErrorMessage,
 &string strOKMessage
);

Подписывает текущего посетителя на новые сообщения темы TID, если она задана. Иначе подписывает на новые сообщения всего форума FID. В переменную, передаваемую в параметре strErrorMessage дописывает ошибки, которые произошли при подписке. В переменную, передаваемую в параметре strOKMessage дописывает сообщения об успехах, которые произошли при подписке.

Параметры функции

Параметр | Описание
FID | Код форума, на сообщения которого подписывается текущий пользователь.
TID | Код темы. Если задан, то происходит подписка только на новые сообщения этой темы.
strErrorMessage | Переменная, в которую функция дописывает сообщения об ошибках, которые произошли при подписке.
strOKMessage | Переменная, в которую функция дописывает сообщения об успехах, которые произошли при подписке.

Возвращаемое значение

Возвращает True, если подписка прошла успешно. В противном случае возвращает False.


Структура таблиц модуля форумов

Группы форумов

Поле | Описание | Тип | Обяз. | Умолч.
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 | Имя автора последнего сообщения на форуме. | String(64) | Нет |
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 | Да |
TITLE | Заголовок темы | String(70) | Да |
DESCRIPTION | Описание темы. | String(70) | Нет |
STATE | Состояние темы: открыта или закрыта (Y|N). | Char(1) | Да | Y
USER_START_ID | Код автора темы. | Int | Нет |
USER_START_NAME | Имя автора темы. | String(64) | Да |
START_DATE | Дата создание темы. | DateTime | Да |
ICON_ID | Код иконки темы. | Int | Нет |
POSTS | Количество ответов на тему. | Int | Да | 0
VIEWS | Количество просмотров темы. | Int | Да | 0
FORUM_ID | ID форума, которому принадлежит тема. | Int | Да |
APPROVED | Опубликована ли тема (Y|N). Тема опубликована, если опубликовано хотя бы одно сообщение в ней. | Char(1) | Да | Y
SORT | Индекс сортировки темы | Int | Да | 150
LAST_POSTER_ID | Код автора последнего сообщения в теме. | Int | Нет |
LAST_POSTER_NAME | Имя автора последнего сообщения в теме. | String(64) | Да |
LAST_POST_DATE | Дата последнего сообщения в теме. | DateTime | Да |
LAST_MESSAGE_ID | ID последнего сообщения в теме | Int | Да |

Сообщения

Поле | Описание | Тип | Обяз. | Умолч.
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 | Аватар посетителя. | Int | Нет |
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 | Да |


Информация для разработчиков

Перед использованием модуля необходимо проверить, установлен ли он и подключить его при помощи конструкции:

<?
if (CModule::IncludeModule("blog"))
{
   //здесь можно использовать функции модуля
}
?>


Константы модуля блогов

Ниже приведены все константы, которые используются в модуле блогов. В описании констант используется понятие "объект", которым может быть блог, сообщение, комментарий и т.д.
Константа | Значение | Описание
BLOG_PERMS_DENY | D | Доступ запрещён ко всем объектам блога.
BLOG_PERMS_READ | I | Чтение всех объектов.
BLOG_PERMS_WRITE | P | Чтение всех объектов и запись своих объектов.
BLOG_PERMS_FULL | W | Чтение всех объектов, запись всех объектов.
BLOG_PERMS_POST | P | Сообщения
BLOG_PERMS_COMMENT | C | Комментарии
BLOG_PUBLISH_STATUS_DRAFT | D | Статус "Черновик". Видит только автор или пользователь с правами BLOG_PERMS_FULL.
BLOG_PUBLISH_STATUS_PUBLISH | P | Статус "Опубликовано". Видят все, у кого есть права BLOG_PERMS_READ.
BLOG_BY_USER_ID | 1 | Используется при поиске по идентификатору пользователя сайта.
BLOG_BY_BLOG_USER_ID | 2 | Используется при поиске по идентификатору пользователя блога.
BLOG_ADD | 1 | Действие - добавление.
BLOG_CHANGE | 2 | Действие - изменение.
BLOG_RESET | 3 | Действие - сброс.


Структура таблиц модуля блогов

Блог

Поле | Описание
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 | Идентификатор автора сообщения - пользователя сайта.
DETAIL_TEXT | Текст сообщения.
DATE_CREATE | Дата создания сообщения.
DATE_PUBLISH | Дата публикации сообщения.
KEYWORDS | Ключевые слова сообщения.
PUBLISH_STATUS | Статус сообщения.
CATEGORY_ID | Идентификатор категории сообщения.
ATRIBUTE | Атрибуты сообщения.
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 | Класс для работы с блогами.
CBlogCandidate | Класс для работы с желающими стать друзьями.
CBlogCategory | Класс для работы с категориями сообщений блога.
CBlogComment | Класс для работы с комментариями к сообщениям.
CBlogGroup | Класс для работы с группами блогов.
CBlogPost | Класс для работы с сообщениями блогов.
CBlogSitePath | Класс для работы с путями к публичной части блогов.
CBlogTrackBack | Класс для работы с TrackBack'ами к сообщениям.
CBlogUser | Класс для работы с пользователями блогов.
CBlogUserGroup | Класс для работы с группами пользователей блогов.
blogTextParser | Класс для форматирования сообщений.


blogTextParser

blogTextParser - класс, предназначенный для форматирования сообщений и комментариев блогов. Осуществляет замену спецсимволов и заказных тэгов на реальные HTML-тэги, обработку ссылок, отображение смайлов и изображений.

Методы класса

Метод | Описание
convert | Функция форматирования сообщения.


convert

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

blogTextParser::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 - идентификтор изображения в сообщении;
  • 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 теги.
Параметры могут принимать значения Y и N.

Возвращаемое значение

Метод возвращает отформатированное сообщение.

Примеры использования

<?
$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 | Добавляет новый блог.
BuildRSS | Возвращает RSS сообщений блога.
CanUserCreateBlog | Проверяет - может ли пользователь создать блог.
CanUserManageBlog | Проверяет - может ли пользователь управлять блогом.
Delete | Удаляет блог.
GetBlogUserCommentPerms | Возвращает доступ к комментариям.
GetBlogUserPostPerms | Возвращает доступ к сообщениям.
GetByID | Возвращает блог по его идентификатору.
GetByOwnerID | Возвращает блог по идентификатору его владельца.
GetList | Возвращает список блогов по фильтру.
IsBlogOwner | Проверяет является ли пользователь владельцем блога.
IsFriend | Проверяет является ли пользователь другом блога.
PreparePath | Возвращает путь к блогу.
Update | Изменяет блог.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 последних сообщений.

Возвращаемое значение

Возвращается сгенерированный RSS сообщений блога.

Примеры использования

<?
echo CBlog::BuildRSS("2", "RSS 2.0", 25);
?>


CanUserCreateBlog

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlog::CanUserCreateBlog

bool
CBlog::CanUserCreateBlog(
 int userID = 0
);

Метод проверяет имеет ли право пользователь userID создать и вести блог.

Параметры функции

Параметр | Описание
userID | Идентификатор пользователя. Необязательный. По умолчанию проверка осуществляется для текущего пользователя.

Возвращаемое значение

Метод возвращает true в случае если пользователь имеет право создать блог, в противном случае возвращает false.

См. также

  • CBlog::CanUserManageBlog

Примеры использования

<?
if(CBlog::CanUserCreateBlog($USER->GetID())
    echo "Вы можете создать и вести блог.";
else
    echo "Вы не можете создать и вести блог.";
?>


CanUserManageBlog

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlog::GetBlogUserCommentPerms

string
CBlog::GetBlogUserCommentPerms(
 int ID,
 int userID
);

Метод возвращает право пользователя userID на комментарии блога ID.

Параметры функции

Параметр | Описание
ID | Идентификатор блога.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает право пользователя на комментарии блога.

См. также

  • Уровни доступа к комментариям
  • CBlog::GetBlogUserPostPerms()

Примеры использования

<?
$perms = CBlog::GetBlogUserCommentPerms(1, $USER->GetID());
echo "Вы имеете следующее право на комментарии блога: ".$perms;
?>


GetBlogUserPostPerms

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlog::GetBlogUserPostPerms

string
CBlog::GetBlogUserPostPerms(
 int ID,
 int userID
);

Метод возвращает право пользователя userID на сообщения блога ID.

Параметры функции

Параметр | Описание
ID | Идентификатор блога.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает право пользователя на сообщения блога.

См. также

  • Уровни доступа к сообщениям блога
  • CBlog::GetBlogUserCommentPerms()

Примеры использования

<?
$perms = CBlog::GetBlogUserPostPerms(1, $USER->GetID());
echo "Вы имеете следующее право на сообщения блога: ".$perms;
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlog::GetByOwnerID

array
CBlog::GetByOwnerID(
 int userID
);

Метод возвращает блог пользователя с идентификатором userID.

Параметры функции

Параметр | Описание
userID | Идентификатор пользователя.

Возвращаемое значение

Возвращается массив с полями блога.

Примечание

Функция использует встроенное кэширование. Таким образом, запрос к базе данных при многократном использовании функции на странице будет производиться только один раз.

См. также

  • Поля блога
  • CBlog::GetList()

Примеры использования

<?
$arBlog = CBlog::GetByOwnerID($ID);
if(is_array($arBlog))
    print_r($arBlog);
else
    echo "Блог не найден";
?>


GetList

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlog::PreparePath

string
CBlog::PreparePath(
 string blogUrl,
 string siteID = false,
 bool   is404 = true,
);

Метод возвращает путь к блогу с адресом blogUrl относительно корня сайта siteID с учётом варианта публичной части (с обработчиком 404 ошибки или без).

Параметры функции

Параметр | Описание
blogUrl | Адрес блога.
siteID | Сайт. Необязательный. По умолчанию false - берется текущий сайт.
is404 | Используется ли обработчик 404 ошибки в публичной части. Необязательный. По умолчанию true - публичная часть блогов работает на базе обработчика 404 ошибки.

Возвращаемое значение

Возвращается путь к блогу относительно корня сайта.

Примеры использования

<?
echo '<a href="'.CBlog::PreparePath("admin-blog").'">Блог администратора</a>';
?>


SetBlogPerms

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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);
?>


Update

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 - уровень доступа.

Возвращаемое значение

Метод возвращает идентификатор измененного блога, если изменение параметров прошло успешно. При возникновении ошибки метод вернет 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogCandidate::Delete

bool
CBlogCandidate::Delete(
 int ID
);

Метод удаляет запись с идентификатором ID из списка желающих вступить в друзья блога.

Параметры функции

Параметр | Описание
ID | Идентификатор записи.

Возвращаемое значение

Метод возвращает true в случае успешного удаления записи, в противном случае возвращает false.

Примеры использования

<?

if(!CBlogCandidate::Delete($ID))
{
    echo 'Ошибка удаления записи!';
}
else
{
    echo 'Пользователь удален из списка желающих вступить в сообщество.';
}
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Добавляет новый категорию.
Delete | Удаляет категорию.
GetByID | Возвращает категорию по ее идентификатору.
GetList | Возвращает список категорий по фильтру.
Update | Изменяет категорию.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogCategory::Delete

bool
CBlogCategory::Delete(
 int ID
);

Метод удаляет категорию с идентификатором ID.

Параметры функции

Параметр | Описание
ID | Идентификатор категории.

Возвращаемое значение

Метод возвращает true в случае успешного удаления категории, в противном случае возвращает false.

Примеры использования

<?
if(!CBlogCategory::Delete($ID))
{
    echo 'Ошибка удаления категории '.$ID;
}
else
    echo 'Категория удалена.';
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Добавляет новый комментарий к сообщению.
Delete | Удаляет комментарий к сообщению.
GetByID | Возвращает комментарий к блогу по его идентификатору.
GetList | Возвращает список комментариев по фильтру.
Update | Изменяет комментарий к сообщению.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 автора неанонимного комментария.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogComment::Update

int
CBlogComment::Update(
 int   ID
 array arFields
);

Метод изменяет параметры комментария с идентификатором ID.

Параметры функции

Параметр | Описание
ID | Идентификатор изменяемого комментария к сообщению.
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей комментария к сообщению.

Возвращаемое значение

Метод возвращает идентификатор измененного комментария к сообщению, если изменение параметров прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

См. также

  • CBlogComment::Add
  • Поля комментария к сообщению

Примеры использования

<?
$ID = 1;
$arFields = array(
    "TITLE" => 'Мое первый измененный комментарий',
    "DETAIL_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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogGroup::Delete

bool
CBlogGroup::Delete(
 int ID
);

Метод удаляет группу с идентификатором ID.

Параметры функции

Параметр | Описание
ID | Идентификатор группы.

Возвращаемое значение

Метод возвращает true в случае успешного удаления группы, в противном случае возвращает false.

Примеры использования

<?
if(!CBlogGroup::Delete($ID))
{
    echo 'Ошибка удаления группы '.$ID;
}
else
    echo 'Группа удалена.';
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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();
}
?>


CBlogPost

CBlogPost - класс для работы с сообщениями блогов.
Метод | Описание
Add | Добавляет новое сообщение в блог.
CanUserDeletePost | Проверяет - может ли пользователь удалить сообщение.
CanUserEditPost | Проверяет - может ли пользователь изменять сообщение.
Delete | Удаляет сообщение блога.
GetBlogUserCommentPerms | Возвращает доступ к комментариям сообщения.
GetBlogUserPostPerms | Возвращает доступ к сообщению.
GetByID | Возвращает сообщение блога по его идентификатору.
GetList | Возвращает список сообщений по фильтру.
GetListCalendar | Возвращает список дней в которые были сообщения для календаря.
PreparePath | Возвращает путь к сообщению.
SetPostPerms | Устанавливает уровень доступа на сообщение и комментарии.
Update | Изменяет сообщение.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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.2008 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)
{
    echo "Новое сообщение [".$newID."] добавлено.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


CanUserDeletePost

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogPost::GetBlogUserCommentPerms

string
CBlogPost::GetBlogUserCommentPerms(
 int ID,
 int userID
);

Метод возвращает право пользователя userID на комментарии к сообщению ID.

Параметры функции

Параметр | Описание
ID | Идентификатор сообщения.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает право пользователя на комментарии к сообщению.

См. также

  • Уровни доступа к комментариям
  • CBlogPost::GetBlogUserPostPerms()

Примеры использования

<?
$perms = CBlogPost::GetBlogUserCommentPerms(1, $USER->GetID());
echo "Вы имеете следующее право на комментарии к сообщению: ".$perms;
?>


GetBlogUserPostPerms

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogPost::GetBlogUserPostPerms

string
CBlogPost::GetBlogUserPostPerms(
 int ID,
 int userID
);

Метод возвращает право пользователя userID на сообщение ID.

Параметры функции

Параметр | Описание
ID | Идентификатор сообщения.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает право пользователя на сообщение.

См. также

  • Уровни доступа к сообщениям
  • CBlogPost::GetBlogUserCommentPerms()

Примеры использования

<?
$perms = CBlogPost::GetBlogUserPostPerms(1, $USER->GetID());
echo "Вы имеете следующее право на сообщение: ".$perms;
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogPost::GetList

CDBResult
CBlogPost::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список сообщений по фильтру arFilter, отсортированный в порядке arOrder.

Параметры функции

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор сообщения;
  • TITLE - заголовок сообщения;
  • BLOG_ID - идентификатор блога;
  • AUTHOR_ID - идентификатор автора сообщения;
  • DETAIL_TEXT - текст сообщения;
  • DATE_CREATE - дата создания сообщения;
  • DATE_PUBLISH - дата публичкации сообщения;
  • DATE_PUBLISH_DAY - день публикации сообщения;
  • DATE_PUBLISH_MONTH - месяц публикации сообщения;
  • DATE_PUBLISH_YEAR - год публикации сообщения;
  • KEYWORDS - ключевые слова сообщения;
  • PUBLISH_STATUS - статус публикации сообщения;
  • CATEGORY_ID - идентификатор категории сообщения;
  • CATEGORY_NAME - название категории сообщения;
  • ATRIBUTE - атрибуты сообщения;
  • ENABLE_TRACKBACK - разрешены ли trackback'и к сообщению;
  • ENABLE_COMMENTS - разрешены ли комментарии к сообщению;
  • NUM_COMMENTS - количество комментариев;
  • NUM_TRACKBACKS - количество trackback'ов;
  • AUTHOR_LOGIN - логин автора сообщения;
  • AUTHOR_NAME - имя автора сообщения;
  • AUTHOR_LAST_NAME - фамилия автора сообщения;
  • AUTHOR_EMAIL - Email автора сообщения;
Необязательный. По умолчанию фильтруется по убыванию идентификатора сообщения.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор сообщения;
  • TITLE - заголовок сообщения;
  • BLOG_ID - идентификатор блога;
  • AUTHOR_ID - идентификатор автора сообщения;
  • DETAIL_TEXT - текст сообщения;
  • DATE_CREATE - дата создания сообщения;
  • DATE_PUBLISH - дата публичкации сообщения;
  • DATE_PUBLISH_DAY - день публикации сообщения;
  • DATE_PUBLISH_MONTH - месяц публикации сообщения;
  • DATE_PUBLISH_YEAR - год публикации сообщения;
  • KEYWORDS - ключевые слова сообщения;
  • PUBLISH_STATUS - статус публикации сообщения;
  • CATEGORY_ID - идентификатор категории сообщения;
  • CATEGORY_NAME - название категории сообщения;
  • ATRIBUTE - атрибуты сообщения;
  • ENABLE_TRACKBACK - разрешены ли trackback'и к сообщению;
  • ENABLE_COMMENTS - разрешены ли комментарии к сообщению;
  • NUM_COMMENTS - количество комментариев;
  • NUM_TRACKBACKS - количество trackback'ов;
  • AUTHOR_LOGIN - логин автора сообщения;
  • AUTHOR_NAME - имя автора сообщения;
  • AUTHOR_LAST_NAME - фамилия автора сообщения;
  • AUTHOR_EMAIL - Email автора сообщения;
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

См. также

  • CDBResult
  • Поля сообщения

Примеры использования

<?
// выберем все опубликованные сообщения всех блогов за апрель 2008 года
// у которых больше двух комментариев

$SORT = Array("DATE_PUBLISH" => "DESC", "NAME" => "ASC");
$arFilter = Array(
    "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH,
    "DATE_PUBLISH_MONTH" => '04',
    "DATE_PUBLISH_YEAR" => '2008',
    ">NUM_COMMENTS" => 2
    );

$dbPosts = CBlogPost::GetList(
        $SORT,
        $arFilter
    );

while ($arPost = $dbPosts->Fetch())
{
    print_r($arPost);
}
?>


GetListCalendar

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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] => 2008
            [MONTH] => 07
            [DAY] => 17
            [DATE] => 17.07.2008
        )[,
 ...]
)

См. также

  • CBlogPost::GetList()

Примеры использования

<?
// выберем данные для календаря за апрель 2008 года для блога
// с идентификатором 1

$arDates = CBlogPost::GetListCalendar(
        1,
        '06',
        '4'
    );

print_r($arDates);
?>


PreparePath

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 ошибки.

Возвращаемое значение

Возвращается путь к сообщению блога относительно корня сайта.

Примеры использования

<?
echo '<a href="'.CBlogPost::PreparePath("admin-blog", 1).'">Первое сообщение в блоге "Блог администратора"</a>';
?>


SetPostPerms

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 - уровень доступа.

Возвращаемое значение

Метод возвращает идентификатор измененного сообщения блога, если изменение параметров прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

См. также

  • Поля сообщения
  • CBlogPost::Add

Примеры использования

<?
$ID = 1;
$arFields = array(
    "TITLE" => 'Мое первое измененное сообщение в блоге',
    "DETAIL_TEXT" => 'Текст моего первого измененного сообщения в блоге',
    "BLOG_ID" => 1,
    "AUTHOR_ID" => $USER->GetID,
    "DATE_PUBLISH" => '25.08.2008 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

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogSitePath::Delete

bool
CBlogSitePath::Delete(
 int ID
);

Метод удаляет путь с идентификатором ID.

Параметры функции

Параметр | Описание
ID | Идентификатор пути.

Возвращаемое значение

Метод возвращает true в случае успешного удаления пути, в противном случае возвращает false.

Примеры использования

<?
$ID = 1;
if(!CBlogSitePath::Delete($ID))
{
    echo 'Ошибка удаления пути '.$ID;
}
else
    echo 'Путь удален.';
?>


GetByID

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

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

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 - путь.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
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

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Необязательный. Параметр временно не используется.
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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogUser::GetUserFriendsList

CDBResult
CBlogUser::GetUserFriendsList(
 int  ID,
 int  userID = false,
 bool bAuth = false,
 int  limit = 20
);

Возвращает список сообщений друзей пользователя ID.

Параметры функции

Параметр | Описание
ID | Идентификатор пользователя, сообщения друзей которого необходимо выбрать.
userID | Идентификатор пользователя сайта для которого будут проверяться права.
bAuth | Авторизован ли текущий пользователь, для которого будет происходить проверка прав.
limit | Количетсво выводимых сообщений.

Возвращаемое значение

Метод возвращает массив вида:
Array(
    [ID] => 20, //идетификатор сообщения
    [DATE_PUBLISH] => 2008-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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 - по идентификатору пользователя блога.

Возвращаемое значение

Метод возвращает массив групп пользователей блога, в случае ошибки возвращает false.

Примечание

Функция использует встроенное кэширование. Таким образом, запрос к базе данных при многократном использовании функции на странице будет производиться только один раз.

Примеры использования

<?
// получим группы пользователей блога с ID=1, к которым привязан текущий пользователь
$ID = $USER->GetID();
$arUserGroups = CBlogUser::GetUserGroups($ID, 1, "", BLOG_BY_USER_ID);
if(is_array($arUserGroups))
    print_r($arUserGroups);
?>


GetUserIP

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogUser::GetUserIP

string
CBlogUser::GetUserIP();

Метод возвращает IP-адреса текущего посетителя.

Возвращаемое значение

Возвращается массив с доступными IP.

Примеры использования

<?
    $userIP = CBlogUser::GetUserIP();
    print_r($userIP);
?>


GetUserName

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogUser::GetUserName

string
CBlogUser::GetUserName(
 string alias,
 string name,
 string lastName,
 string login
);

Метод возвращает имя пользователя в зависимости от наличия параметров и разрешения использовать псевдоним. Если разрешен псевдоним, то вернется псевдоним, если нет, но есть имя или фамилия, то вернется имя и фамилия, в противном случае просто логин пользователя сайта.

Параметры функции

Параметр | Описание
alias | Псевдоним пользователя блога.
name | Имя пользователя сайта.
lastName | Фамилия пользователя сайта.
login | Логин пользователя сайта.

Возвращаемое значение

Возвращается имя пользователя.

Примеры использования

<?
//выведем имя текущего пользователя для блогов
$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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogUser::PreparePath

string
CBlogUser::PreparePath(
 int    userID,
 string siteID = false,
 bool   is404 = true,
);

Метод возвращает путь к профайлу пользователя userID относительно корня сайта siteID с учётом варианта публичной части (с обработчиком 404 ошибки или без).

Параметры функции

Параметр | Описание
userID | Идентификатор пользователя сайта.
siteID | Идентификатор сайта. Необязательный. По умолчанию false - берется текущий сайт.
is404 | Используется ли обработчик 404 ошибки в публичной части. Необязательный. По умолчанию true - публичная часть блогов работает на базе обработчика 404 ошибки.

Возвращаемое значение

Возвращается путь к профайлу пользователя относительно корня сайта.

Примеры использования

<?
echo '<a href="'.CBlogUser::PreparePath($USER->GetID()).'">Ваш профайл</a>';
?>


SetLastVisit

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogUser::SetLastVisit

bool
CBlogUser::SetLastVisit(
);

Метод регистрирует последнее посещение блога текущим пользователем.

Возвращаемое значение

Метод возвращает true в случае успешной регистрации посещения, в противном случае возвращает false.

Примеры использования

<?
if(!CBlogUser::SetLastVisit())
    echo 'Ошибка!';
?>


Update

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogUserGroup::Add

int
CBlogUserGroup::Add(
 array arFields
);

Метод добавляет новую группу пользователей блога.

Параметры функции

Параметр | Описание
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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CBlogUserGroup::Delete

bool
CBlogUserGroup::Delete(
 int ID
);

Метод удаляет группу пользователей блога с идентификатором ID.

Параметры функции

Параметр | Описание
ID | Идентификатор группы пользователей блога.

Возвращаемое значение

Метод возвращает true в случае успешного удаления группы пользователей блога, в противном случае возвращает false.

Примеры использования

<?
if(!CBlogUserGroup::Delete($ID))
{
    echo 'Ошибка удаления группы '.$ID;
}
?>


GetByID

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Вызывается перед добавлением блога.
OnBlogAdd | Вызывается при добавлении блога.
OnBeforeBlogUpdate | Вызывается перед изменением блога.
OnBlogUpdate | Вызывается при изменении блога.
OnBeforeBlogDelete | Вызывается перед удалением блога.
OnBlogDelete | Вызывается при удалении блога.


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)
    {
        ...
    }
}
?>


Информация для разработчиков

Модуль информационных блоков - мощный и в то же время гибкий механизм для хранения и выборки информации различными способами. API модуля состоит из нескольких высокоуровневых функций для выборки данных в публичном разделе сайта и набора классов с низкоуровневыми методами для более специализированной работы.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?
if(CModule::IncludeModule("iblock"))
{
   //здесь можно использовать функции и классы модуля
}
?>

Для получения данных при показе в публичном разделе сайта можно пользоваться функциями с простыми параметрами и предустановленными фильтрами. Эти функции выбирают по умолчанию те значения, которые подходят для места выборки, а именно только активные, привязанные к текущему сайту, подходящие по правам доступа и т.п.

Вся работа с датами через API (вставка, выборка, фильтры и т.п.) производится в формате текущего сайта или, если в административной части, в формате текущего языка.

Публичные функции и возвращаемые значения

Метод | Описание
GetIBlockList | Возвращает список информационных блоков по фильтру.
GetIBlock | Возвращает информационный блок по заданному коду.
GetIBlockElementListEx | Возвращает список элементов по фильтру.
GetIBlockElementList | Возвращает список элементов из определённого информационного блока.
GetIBlockElement | Возвращает элемент по заданному коду.
GetIBlockSectionList | Возвращает список папок из определённого информационного блока.
GetIBlockSection | Возвращает раздел по заданному коду.

Если ваша задача более специфична и публичных функций недостаточно, или необходимо не только выбрать, но и изменить данные, то необходимо воспользоваться набором классов для работы с объектами модуля информационных блоков.

Классы модуля информационных блоков

Метод | Описание
CIBlockType | Типы информационных блоков.
CIBlock | Информационные блоки.
CIBlockProperty | Свойства элементов.
CIBlockPropertyEnum | Варианты значений для свойств типа "список".
CIBlockSection | Разделы информационных блоков.
CIBlockElement | Элементы и их значения свойств.
CIBlockResult | Вспомогательный класс для работы с объектами результатов выборок.
_CIBElement | Вспомогательный класс для работы с объектом выборки элемента.


Структура таблиц модуля информационных блоков

Поля таблиц

Типы информационных блоков

Поле | Описание | Тип | Обяз. | Умолч.
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

Языкозависимые параметры типов информационных блоков

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_TYPE_ID | ID типа блока. | String(50) | Да |
LID | Код языка параметров. | Char(2) | Да |
NAME | Название типа информационных блоков. | String(100) | Да |
SECTION_NAME | Название разделов информационных блоков (если элементы блока этого типа классифицируются по разделам). | String(100) | Нет |
ELEMENT_NAME | Название элементов информационных блоков. | String(100) | Нет |

Информационные блоки

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID информационного блока. | Int | Да |
CODE | Мнемонический идентификатор. | String(50) | Нет |
EXTERNAL_ID | Внешний код. | String(255) | Нет |
IBLOCK_TYPE_ID | Код типа информационных блоков. | String(50) | Да |
TIMESTAMP_X | Дата последнего изменения параметров блока. | Datetime | Да | Текущее.
NAME | Название. | Int | Да |
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) | Нет |
PICTURE | Код картинки в таблице файлов. | Int | Нет |
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

Группы (разделы) информационных блоков

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID группы информационного блока. | Int | Да |
CODE | Мнемонический идентификатор. | String(255) | Нет |
EXTERNAL_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 | Код картинки в таблице файлов. | 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) | - | -

Элементы

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID элемента. | Int | Да |
CODE | Мнемонический идентификатор. | String(255) | Нет |
EXTERNAL_ID | Внешний идентификатор. | String(255) | Нет |
NAME | Название элемента. | String(255) | Да |
IBLOCK_ID | ID информационного блока. | Int | Да |
IBLOCK_SECTION_ID | ID группы. Если не задан, то элемент не привязан к группе. Если элемент привязан к нескольким группам, то в этом поле ID одной из групп. | Int | Нет |
ACTIVE | Флаг активности (Y|N). | Char(1) | Да | Y
DATE_ACTIVE_FROM | Дата начала действия элемента. | Datetime | Нет |
DATE_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 | - |

Свойства

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID свойства. | Int | Да |
CODE | Мнемонический код свойства. | String(50) | Нет |
XML_ID | Внешний код свойства. | String (255) | Нет |
IBLOCK_ID | Код информационного блока. | Int | Да |
NAME | Название свойства. | String(100) | Да |
ACTIVE | Активность свойства (Y|N). | Char(1) | Да | Y
SORT | Индекс сортировки. | Int | Да | 500
PROPERTY_TYPE | Тип свойства. Возможные значения: S - строка, F - файл, L - список, E - привязка к элементам, G - привязка к группам. | Char(1) | Да | S
MULTIPLE | Множественность. | 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

Варианты значений свойств типа "список"

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID значения варианта свойства. | int | Да |
PROPERTY_ID | Код свойства. | int | Да |
VALUE | Значение варианта свойства. | string(255) | Да |
DEF | Значение по умолчанию (Y|N). | char(1) | Нет | N
SORT | Порядок сортировки варианта | int | Нет | 500
EXTERNAL_ID | Внешний код варианта свойства. | string(200) | Нет |

Значения cвойств

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID значения свойства. |  | Да |
IBLOCK_PROPERTY_ID | Код свойства. |  | Да |
IBLOCK_ELEMENT_ID | Код элемента. |  | Да |
VALUE | Значение свойства. |  | Да |
VALUE_TYPE | Тип значения свойства (text/html). |  | Да |


Создание пользовательских страниц редактирование элемента

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание пользовательских страниц редактирования элемента информационного блока

Форма добавления/изменения элементов информационных блоков является одной из самых часто используемых, а в интернет-магазинах или информационных изданиях эта форма однозначно является самой популярной в административном разделе. И несмотря на то что внешний вид и поля формы изменяются в зависимости от настроек информационного блока, а также то, что она была спроектирована для решения наиболее широкого круга задач, все равно, для специфических задач, иногда требуется адаптировать ее по своим потребностям.

Рассмотрим в качестве примера форму редактирования статьи информационного издания. Для нашего издания необходимы поля:
  • заголовок статьи;
  • текст анонса;
  • картинка для анонса;
  • текст статьи;
  • большая картинка;
  • время выхода статьи;
  • автор;
  • статус документооборота для утверждения редактором;
  • список разделов для привязки.
Процесс создания и настройки информационных блоков подробно описан в документации. Поэтому лишь рассмотрим отсутствующие и лишние, по сравнению со стандартной формой редактирования, элементы:
  • множество лишних полей (сортировка, дата окончания показа, ...);
  • необходимо изменить порядок полей редактирования;
  • было бы удобнее, если при вводе только большой картинки автоматически из нее создавалась картинка для анонса;
  • необходимо чтобы поле со статьей тоже было обязательным (вместе с названием);
  • при публикации новости автоматически записывать время в поле с датой новости.

Для начала возьмем оригинальный код страницы /bitrix/modules/iblock/admin/iblock_element_edit.php, а именно, ту ее часть, которая настраивается:

<form method="POST"
      action="iblock_element_edit.php?type=<?
          echo $type?>&lang=<?
          echo LANG?>&IBLOCK_ID=<?
          echo $IBLOCK_ID?>&<?
          echo GetFilterParams("filter_");?>#tb" ENCTYPE="multipart/form-data"
      name="form_element">
<?echo GetFilterHiddens("filter_");?>
<input type="hidden" name="Update" value="Y">
<input type="hidden" name="from" value="<?echo htmlspecialchars($from)?>">
<input type="hidden" name="WF" value="<?echo htmlspecialchars($WF)?>">
<input type="hidden" name="return_url" value="<?echo $return_url?>">
<input type="hidden" name="ID" value="<?echo $ID?>">
<input type="hidden"
       name="IBLOCK_SECTION_ID" value="<?echo IntVal($IBLOCK_SECTION_ID)?>">
<table border="0" cellspacing="1" cellpadding="3"
       class="edittable" width="100%">
    <?if ($WF=="Y" || $view=="Y"):?>
    <tr>
        <td valign="top"
            align="right"><font
            class="tablefieldtext"><?=GetMessage("IBLOCK_WF_STATUS")?></font></td>
        <td valign="top"
            nowrap><font class="tablebodytext">
        <?echo SelectBox("WF_STATUS_ID",
                         CWorkflowStatus::GetDropDownList("N", "desc"), "",
                         $str_WF_STATUS_ID);?></font></td>
    </tr>
    <?endif;?>
    <?
    if($ID>0):
        $p = CIblockElement::GetByID($ID);
        $pr = $p->ExtractFields("prn_");

        if(CModule::IncludeModule("workflow")):
            if(strlen($pr["DATE_CREATE"])>0):
            ?>
                <tr>
                    <td valign="top" align="right"><font
                        class="tablefieldtext"><?echo
                        GetMessage("IBLOCK_CREATED")?></font></td>
                    <td valign="top"><font
                        class="tablebodytext"><?echo $pr["DATE_CREATE"]?><?
                    if (intval($pr["CREATED_BY"])>0):
                    ?>&nbsp;&nbsp;&nbsp;[<a
                        class="tablebodylink"
                        href="user_edit.php?lang=<?
                            =LANG?>&ID=<?=$pr["CREATED_BY"]?>"><?
                        echo $pr["CREATED_BY"]?></a>]&nbsp;<?
                            =htmlspecialcharsex($pr["CREATED_USER_NAME"])?><?
                    endif;
                    ?></font></td>
                </tr>
            <?endif;?>
            <tr>
                <td valign="top"
                    align="right"><font
                    class="tablefieldtext"><?echo
                    GetMessage("IBLOCK_LAST_UPDATE")?></font></td>
                <td valign="top"><font
                    class="tablebodytext"><?echo $str_TIMESTAMP_X?><?
                if (intval($str_MODIFIED_BY)>0):
                ?>&nbsp;&nbsp;&nbsp;[<a class="tablebodylink"
                    href="user_edit.php?lang=<?
                        =LANG?>&ID=<?=$str_MODIFIED_BY?>"><?
                    echo $str_MODIFIED_BY?></a>]&nbsp;<?=$str_USER_NAME?><?
                endif;
                ?></font></td>
            </tr>
        <?endif?>
        <?if($WF=="Y" && strlen($prn_WF_DATE_LOCK)>0):?>
        <tr>
            <td valign="top" align="right" nowrap><font
                class="tablefieldtext"><?echo
                GetMessage("IBLOCK_DATE_LOCK")?></font></td>
            <td valign="top" nowrap><font
                class="tablebodytext"><?echo $prn_WF_DATE_LOCK?><?
            if (intval($prn_WF_LOCKED_BY)>0):
            ?>&nbsp;&nbsp;&nbsp;[<a class="tablebodylink"
                href="user_edit.php?lang=<?=lang?>&id=<?
                    =$prn_WF_LOCKED_BY?>"><?
                    echo $prn_WF_LOCKED_BY?></a>]&nbsp;<?
                    =$prn_LOCKED_USER_NAME?><?
            endif;
            ?></font></td>
        </tr>
        <?endif;?>
    <?endif;?>
    <tr>
        <td valign="top" width="50%" align="right"><font
            class="tablefieldtext"><?
            echo GetMessage("IBLOCK_ACTIVE")?></font></td>
        <td valign="top" width="50%"><input
            type="checkbox" name="ACTIVE"
            value="Y"<?if($str_ACTIVE=="Y")echo " checked"?>></td>
    </tr>
    <tr>
        <td valign="top" align="right"><font
            class="tablefieldtext"><?
            echo GetMessage("IBLOCK_ACTIVE_PERIOD")?>(<?
            echo CLang::GetDateFormat("SHORT");?>)</font></td>
        <td valign="top"><font class="tablebodytext">
            <?echo CalendarPeriod("ACTIVE_FROM",
                                  $str_ACTIVE_FROM,
                                  "ACTIVE_TO",
                                  $str_ACTIVE_TO,
                                  "form_element",
                                  "N",
                                  "class=\"typeselect\"",
                                  "class=\"typeinput\"", "19")?>
        </font>
        </td>
    </tr>
    <?if($arIBTYPE["SECTIONS"]=="Y"):?>
    <tr>
        <td valign="top" align="right"><font
            class="tablefieldtext"><?
            echo GetMessage("IBLOCK_SECTION")?></font></td>
        <td valign="top" align="left">
        <?$l = CIBlockSection::GetTreeList(Array("IBLOCK_ID"=>$IBLOCK_ID));?>
        <select name="IBLOCK_SECTION[]" size="14" multiple class="typeselect">
            <option value="0"<?
                    if (is_array($str_IBLOCK_ELEMENT_SECTION) &&
                        in_array(0, $str_IBLOCK_ELEMENT_SECTION))
                        echo " selected"?>>
                    <?echo GetMessage("IBLOCK_CONTENT")?></option>
        <?
            while($l->ExtractFields("l_")):
                ?><option value="<?echo $l_ID?>"<?
                   if (is_array($str_IBLOCK_ELEMENT_SECTION) &&
                       in_array($l_ID, $str_IBLOCK_ELEMENT_SECTION))
                       echo " selected"?>>
                   <?echo str_repeat(" . ", $l_DEPTH_LEVEL)?>
                   <?echo $l_NAME?></option><?
            endwhile;
        ?>
        </select>
        </td>
    </tr>
    <?endif?>
    <tr>
        <td valign="top" align="right"><font
            class="tablefieldtext"><font
            class="required">*</font><?
            echo GetMessage("IBLOCK_NAME")?></font></td>
        <td valign="top">
            <input type="text" name="NAME" size="50"
                   maxlength="255" class="typeinput"
                   value="<?echo $str_NAME?>">
        </td>
    </tr>
    <tr>
        <td valign="top" align="right"><font
            class="tablefieldtext"><?
            echo GetMessage("IBLOCK_SORT")?></font></td>
        <td valign="top">
            <input type="text" name="SORT"
                   size="7" class="typeinput"
                   maxlength="10" value="<?echo $str_SORT?>">
        </td>
    </tr>
    <?if(COption::GetOptionString("iblock", "show_xml_id", "N")=="Y"):?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext"><?echo GetMessage("IBLOCK_EXTERNAL_CODE")?></font></td>
        <td valign="top">
            <input type="text" size="20" name="XML_ID" maxlength="255" class="typeinput" value="<?echo $str_XML_ID?>">
        </td>
    </tr>
    <?endif?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext"><?echo GetMessage("IBLOCK_CODE")?></font></td>

        <td valign="top">
            <input type="text" size="20" name="CODE" maxlength="255" class="typeinput" value="<?echo $str_CODE?>">
        </td>
    </tr>
    <?if(count($PROP)>0):?>
    <tr>
        <td valign="top" align="center" colspan="2"
            class="tablehead"><font
            class="tableheadtext"><b><?
            echo GetMessage("IBLOCK_ELEMENT_PROP_VALUE");?></b></font></td>
    </tr>
    <?
    foreach($PROP as $prop_code=>$prop_fields):
        $prop_values = $prop_fields["VALUE"];
    ?>
    <tr>
        <td valign="top" align="right"><font
            class="tablefieldtext"><?
            echo htmlspecialcharsex($prop_fields["NAME"])?>:</font></td>
        <td valign="top">
        <font class="tablebodytext"><?
             _ShowPropertyField('PROP['.$prop_fields["ID"].']',
                                $prop_fields,
                                $prop_values,
                                ((!$bVarsFromForm) &&
                                ($ID<=0)), $bVarsFromForm);?></font>
    </td>
    </tr>
    <?endforeach;?>
    <?endif?>

    <tr>
        <td valign="top" align="center" colspan="2"
            class="tablehead" nowrap><font
            class="tableheadtext"><b><?
            echo GetMessage("IBLOCK_ELEMENT_PREVIEW")?></b></font></td>
    </tr>
    <tr>
        <td valign="top" align="right"
            class="tablebody" nowrap><font
            class="tablefieldtext"><?echo GetMessage("IBLOCK_PICTURE")?></font></td>
        <td valign="top" align="left" class="tablebody"><font class="tablebodytext">
            <?echo CFile::InputFile("PREVIEW_PICTURE",
                                    20, $str_PREVIEW_PICTURE, false, 0,
                                    "IMAGE", "class=\"typefile\"", 40);?><br>
            <?echo CFile::ShowImage($str_PREVIEW_PICTURE, 200, 200, "border=0", "", true)?>
            </font>
        </td>
    </tr>

    <?if (ereg('(MSIE|Internet Explorer) ([0-9]).([0-9])+',
               $_SERVER['HTTP_USER_AGENT'],
               $version) &&
          IntVal($version[2]) >= 5 &&
          COption::GetOptionString("iblock",
                                   "use_htmledit",
                                   "Y") == "Y" &&
          CModule::IncludeModule("fileman")):?>
    <tr>
        <td valign="top" colspan="2">
            <?CFileMan::AddHTMLEditorFrame("PREVIEW_TEXT",
                                           $str_PREVIEW_TEXT,
                                           "PREVIEW_TEXT_TYPE",
                                           $str_PREVIEW_TEXT_TYPE, 300,
                    "N",
                    0,
                    "",
                    "",
                    $arIBlock["LID"]
                    );?>
        </td>
    </tr>
    <?else:?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext"><?echo GetMessage("IBLOCK_DESC_TYPE")?></font></td>
        <td valign="top">
            <font class="tablebodytext">
                <input type="radio"
                       name="PREVIEW_TEXT_TYPE"
                       value="text"<?
                 if ($str_PREVIEW_TEXT_TYPE != "html")
                     echo " checked"?>>
                 <?echo GetMessage("IBLOCK_DESC_TYPE_TEXT")?> /
                 <input type="radio" name="PREVIEW_TEXT_TYPE"
                        value="html"<?
                  if ($str_PREVIEW_TEXT_TYPE=="html")
                      echo " checked"?>> <?echo GetMessage("IBLOCK_DESC_TYPE_HTML")?>
            </font>
        </td>
    </tr>
    <tr>
        <td valign="top" align="center"colspan="2" width="100%">
            <textarea cols="110" class="typearea"
                      rows="10" name="PREVIEW_TEXT"
                      wrap="virtual"><?echo $str_PREVIEW_TEXT?></textarea>
        </td>
    </tr>
    <?endif?>
    <tr>
        <td valign="top" align="center" colspan="2"
            class="tablehead" nowrap><font
            class="tableheadtext"><b><?
            echo GetMessage("IBLOCK_ELEMENT_DETAIL")?></b></font></td>
    </tr>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext">
            <?echo GetMessage("IBLOCK_PICTURE")?></font></td>
        <td valign="top"><font class="tablebodytext">
            <?echo CFile::InputFile("DETAIL_PICTURE",
                                    20, $str_DETAIL_PICTURE, false, 0,
                                    "IMAGE", "class=\"typefile\"", 40);?><br>
            <?echo CFile::ShowImage($str_DETAIL_PICTURE, 200, 200, "border=0", "", true)?>
            </font>
        </td>
    </tr>
    <?if (ereg('(MSIE|Internet Explorer) ([0-9]).([0-9])+',
               $_SERVER['HTTP_USER_AGENT'],
               $version) && IntVal($version[2])>=5 &&
          COption::GetOptionString("iblock",
                                   "use_htmledit",
                                   "Y") == "Y" &&
          CModule::IncludeModule("fileman")):?>
    <tr>
        <td valign="top" colspan="2">
            <?CFileMan::AddHTMLEditorFrame("DETAIL_TEXT",
                                           $str_DETAIL_TEXT,
                                           "DETAIL_TEXT_TYPE",
                                           $str_DETAIL_TEXT_TYPE,
                                           440,
                     "N",
                     0,
                     "",
                     "",
                     $arIBlock["LID"]
                     );?>
        </td>
    </tr>
    <?else:?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext"><?echo GetMessage("IBLOCK_DESC_TYPE")?></font></td>
        <td valign="top">
            <font class="tablebodytext">
                <input type="radio" name="DETAIL_TEXT_TYPE"
                       value="text"
                <?if ($str_DETAIL_TEXT_TYPE!="html")
                      echo " checked"?>>
                <?echo GetMessage("IBLOCK_DESC_TYPE_TEXT")?> /
                <input type="radio" name="DETAIL_TEXT_TYPE"
                       value="html"
                <?if ($str_DETAIL_TEXT_TYPE=="html")
                      echo " checked"?>>
                <?echo GetMessage("IBLOCK_DESC_TYPE_HTML")?>
            </font>
        </td>
    </tr>
    <tr>
        <td valign="top" align="center" colspan="2">
            <textarea cols="110" rows="20"
                      class="typearea" name="DETAIL_TEXT"
                      wrap="virtual"><?echo $str_DETAIL_TEXT?></textarea>
        </td>
    </tr>
    <?endif?>
    <?if (CModule::IncludeModule("workflow")):?>
    <tr>
        <td class="tablehead" align="center"
            colspan="2"><font
            class="tableheadtext"><b><?=GetMessage("IBLOCK_COMMENTS")?></b></font></td>
    </tr>
    <tr>
        <td valign="top" align="center" colspan="2">
            <textarea name="WF_COMMENTS" class="typearea" cols="110" rows="10"><?echo $str_WF_COMMENTS?></textarea></td>
    </tr>
    <?endif?>
    <?
    if ($view!="Y" && CModule::IncludeModule("catalog") && CCatalog::GetByID($IBLOCK_ID))
    {
        include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/admin/templates/product_edit.php");
    }
    ?>
</table>
<br>
<input <?if ($view=="Y" ||
             $prn_LOCK_STATUS=="red")
             echo "disabled";?>
       type="submit" class="button"
       name="save"
       value="<?echo (($ID > 0)?GetMessage('IBLOCK_SAVE'):GetMessage('IBLOCK_ADD'))?>">
&nbsp;
<input <?if ($view=="Y" || $prn_LOCK_STATUS=="red")
             echo "disabled";?>
       class="button"
       type="submit"
       name="apply"
       value="<?echo GetMessage('IBLOCK_APPLY')?>">
&nbsp;
<input <?if ($view=="Y" || $prn_LOCK_STATUS=="red")
             echo "disabled";?>
       type="submit"
       class="button"
       name="dontsave"
       value="<? echo GetMessage("IBLOCK_DONT_SAVE") ?>">
&nbsp;
<input type="reset" value="<?echo GetMessage('IBLOCK_RESET');?>" class="button">
</form>

Сохраним этот скрипт в файл, например, в /bitrix/php_interface/include/iblock_element_edit.php, создадим там же файл /bitrix/php_interface/include/iblock_element_edit_before_save.php - в нем будет находиться скрипт, отвечающий за обработку во время сохранения элемента. Теперь в настройках модуля информационных блоков необходимо для типа указать пути к этим файлам в поля "Файл для редактирования элемента, позволяющий модифицировать поля перед сохранением" и "Файл с формой редактирования элемента".

Это была подготовительная часть, перейдем к изменению внешнего вида формы. Удалим лишние поля и переверстаем страницу /bitrix/php_interface/include/iblock_element_edit.php под наши нужды. После всех изменений получился следующий код:

<form method="POST" action="iblock_element_edit.php?type=<?echo $type?>
 &lang=<?echo LANG?>&IBLOCK_ID=<?echo $IBLOCK_ID?>&<?
 echo GetFilterParams("filter_");?>#tb" ENCTYPE="multipart/form-data" name="form_element">
<?echo GetFilterHiddens("filter_");?>
<input type="hidden" name="Update" value="Y">
<input type="hidden" name="from" value="<?echo htmlspecialchars($from)?>">
<input type="hidden" name="WF" value="<?echo htmlspecialchars($WF)?>">
<input type="hidden" name="return_url" value="<?echo $return_url?>">
<input type="hidden" name="ID" value="<?echo $ID?>">
<input type="hidden" name="IBLOCK_SECTION_ID" value="<?echo IntVal($IBLOCK_SECTION_ID)?>">
<table border="0" cellspacing="1" cellpadding="3" class="edittable" width="100%">
    <?
    $prop_code = "AUTHOR";
    $prop_fields = $PROP[$prop_code];
    $prop_values = $prop_fields["VALUE"];
    ?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext"><?echo htmlspecialcharsex($prop_fields["NAME"])?>:</font></td>
        <td valign="top">
        <font class="tablebodytext"><?
              _ShowPropertyField('PROP['.$prop_fields["ID"].']',
                                 $prop_fields, $prop_values, ((!$bVarsFromForm) && ($ID<=0)), $bVarsFromForm);?></font>
    </td>
    </tr>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext">Дата (<?echo CLang::GetDateFormat("SHORT");?>)</font></td>
        <td valign="top"><font class="tablebodytext">
            <?echo CalendarDate("ACTIVE_FROM", $str_ACTIVE_FROM, "form_element", "20", "class=\"typeinput\"")?>
        </font>
        </td>
    </tr>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext"><font class="required">*</font>Заголовок</font></td>
        <td valign="top">
            <textarea name="NAME" cols="50" rows="5" class="typearea"><?echo $str_NAME?></textarea>
        </td>
    </tr>
    <tr>
        <td valign="top" align="center" colspan="2" class="tablehead" nowrap><font class="tableheadtext"><b>Анонс</b></font></td>
    </tr>
    <?if (ereg('(MSIE|Internet Explorer) ([0-9]).([0-9])+',
               $_SERVER['HTTP_USER_AGENT'],
               $version) &&
          IntVal($version[2])>=5 &&
          COption::GetOptionString("iblock", "use_htmledit", "Y")=="Y" &&
          CModule::IncludeModule("fileman")):?>
    <tr>
        <td valign="top" colspan="2">
            <?CFileMan::AddHTMLEditorFrame("PREVIEW_TEXT",
                                           $str_PREVIEW_TEXT,
                                           "PREVIEW_TEXT_TYPE",
                                           $str_PREVIEW_TEXT_TYPE, 300
                       "N",
                    0,
                    "",
                    "",
                    arIBlock["LID"]
                    );?>
        </td>
    </tr>
    <?else:?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext">Тип анонса:</font></td>
        <td valign="top">
            <font class="tablebodytext">
                <input type="radio"
                       name="PREVIEW_TEXT_TYPE"
                       value="text"<?
                       if ($str_PREVIEW_TEXT_TYPE!="html")
                           echo " checked"?>> Текст /
                       <input type="radio"
                              name="PREVIEW_TEXT_TYPE"
                              value="html"<?
                              if ($str_PREVIEW_TEXT_TYPE=="html")
                                  echo " checked"?>> HTML
            </font>
        </td>
    </tr>
    <tr>
        <td valign="top" align="center"colspan="2" width="100%">
            <textarea cols="110" class="typearea" rows="10" name="PREVIEW_TEXT" wrap="virtual"><?echo $str_PREVIEW_TEXT?></textarea>
        </td>
    </tr>
    <?endif?>
    <tr>
        <td valign="top" align="center" colspan="2" class="tablehead" nowrap><font class="tableheadtext"><b>Статья</b></font></td>
    </tr>
    <?if (ereg('(MSIE|Internet Explorer) ([0-9]).([0-9])+',
               $_SERVER['HTTP_USER_AGENT'],
               $version) && IntVal($version[2])>=5 &&
          COption::GetOptionString("iblock",
                                   "use_htmledit",
                                   "Y") == "Y" &&
          CModule::IncludeModule("fileman")):?>
    <tr>
        <td valign="top" colspan="2">
            <?CFileMan::AddHTMLEditorFrame("DETAIL_TEXT",
                $str_DETAIL_TEXT,
                "DETAIL_TEXT_TYPE",
                $str_DETAIL_TEXT_TYPE,
                440,
                "N",
                0,
                "",
                "",
                $arIBlock["LID"]
                )>
        </td>
    </tr>
    <?else:?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext">Тип текста статьи:</font></td>
        <td valign="top">
            <font class="tablebodytext">
                <input type="radio" name="DETAIL_TEXT_TYPE"
                       value="text"<?
                       if ($str_DETAIL_TEXT_TYPE!="html")
                           echo " checked"?>> Текст /
                       <input type="radio" name="DETAIL_TEXT_TYPE"
                              value="html"<?if($str_DETAIL_TEXT_TYPE=="html")echo " checked"?>> HTML
            </font>
        </td>
    </tr>
    <tr>
        <td valign="top" align="center" colspan="2">
            <textarea cols="110" rows="20" class="typearea" name="DETAIL_TEXT" wrap="virtual"><?echo $str_DETAIL_TEXT?></textarea>
        </td>
    </tr>
    <?endif?>
<tr>
        <td valign="top" align="right"><font class="tablefieldtext">Большая картинка</font></td>
        <td valign="top"><font class="tablebodytext">
            <?echo CFile::InputFile("DETAIL_PICTURE", 20, $str_DETAIL_PICTURE, false, 0, "IMAGE", "class=\"typefile\"", 40);?><br>
            <?echo CFile::ShowImage($str_DETAIL_PICTURE, 200, 200, "border=0", "", true)?>
            </font>
        </td>
    </tr>
    <tr>
        <td valign="top" align="right" class="tablebody" nowrap><font class="tablefieldtext">Картинка в списке:</font></td>
        <td valign="top" align="left" class="tablebody"><font class="tablebodytext">
            <input type="checkbox" name="MAKE_PREVIEW_PICTURE" value="Y" onClick="document.getElementById('PREVIEW_PICTURE').disabled=this.checked;">Создать из большой картинки<br>
            <?echo CFile::InputFile("PREVIEW_PICTURE", 20, $str_PREVIEW_PICTURE, false, 0, "IMAGE", "class=\"typefile\"", 40);?><br>
            <?echo CFile::ShowImage($str_PREVIEW_PICTURE, 200, 200, "border=0", "", true)?>
            </font>
        </td>
    </tr>
    <?if($arIBTYPE["SECTIONS"]=="Y"):?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext">Разделы:</font></td>
        <td valign="top" align="left">
        <?$l = CIBlockSection::GetTreeList(Array("IBLOCK_ID"=>$IBLOCK_ID));?>
        <select name="IBLOCK_SECTION[]" size="14" multiple class="typeselect">
            <option value="0"<?if(is_array($str_IBLOCK_ELEMENT_SECTION) && in_array(0, $str_IBLOCK_ELEMENT_SECTION))echo " selected"?>>Не привязан к разделу</option>
        <?
            while($l->ExtractFields("l_")):
                ?><option value="<?echo $l_ID?>"
                  <?if (is_array($str_IBLOCK_ELEMENT_SECTION) &&
                        in_array($l_ID, $str_IBLOCK_ELEMENT_SECTION))
                        echo " selected"?>>
                  <?echo str_repeat(" . ", $l_DEPTH_LEVEL)?><?echo $l_NAME?></option><?
            endwhile;
        ?>
        </select>
        </td>
    </tr>
    <?endif?>
    <tr>
        <td valign="top" align="center" colspan="2" class="tablehead"><font class="tableheadtext"><b>Активность и документооборот</b></font></td>
    </tr>
    <?if ($WF=="Y" || $view=="Y"):?>
    <tr>
        <td valign="top" align="right"><font class="tablefieldtext">Статус:</font></td>
        <td valign="top" nowrap><font class="tablebodytext">
        <?echo SelectBox("WF_STATUS_ID", CWorkflowStatus::GetDropDownList("N", "desc"), "", $str_WF_STATUS_ID);?></font></td>
    </tr>
    <?endif;?>
    <?
    if($ID>0):
        $p = CIblockElement::GetByID($ID);
        $pr = $p->ExtractFields("prn_");

        if(CModule::IncludeModule("workflow")):
            if(strlen($pr["DATE_CREATE"])>0):
            ?>
                <tr>
                    <td valign="top" align="right"><font class="tablefieldtext">Создана:</font></td>
                    <td valign="top"><font class="tablebodytext"><?echo $pr["DATE_CREATE"]?><?
                    if (intval($pr["CREATED_BY"])>0):
                    ?>&nbsp;&nbsp;&nbsp;[<a class="tablebodylink" href="user_edit.php?lang=<?=lang?>&id=<?=$pr["created_by"]?>"><?echo $pr["CREATED_BY"]?></a>]&nbsp;<?=htmlspecialcharsex($pr["CREATED_USER_NAME"])?><?
                    endif;
                    ?></font></td>
                </tr>
            <?endif;?>
            <tr>
                <td valign="top" align="right"><font class="tablefieldtext">Изменена:</font></td>
                <td valign="top"><font class="tablebodytext"><?echo $str_TIMESTAMP_X?><?
                if (intval($str_MODIFIED_BY)>0):
                ?>&nbsp;&nbsp;&nbsp;[<a class="tablebodylink" href="user_edit.php?lang=<?=lang?>&id=<?=$str_modified_by?>"><?echo $str_MODIFIED_BY?></a>]&nbsp;<?=$str_USER_NAME?><?
                endif;
                ?></font></td>
            </tr>
        <?endif?>
        <?if($WF=="Y" && strlen($prn_WF_DATE_LOCK)>0):?>
        <tr>
            <td valign="top" align="right" nowrap><font class="tablefieldtext">Заблокирована:</font></td>
            <td valign="top" nowrap><font class="tablebodytext"><?echo $prn_WF_DATE_LOCK?><?
            if (intval($prn_WF_LOCKED_BY)>0):
            ?>&nbsp;&nbsp;&nbsp;[<a class="tablebodylink" href="user_edit.php?lang=<?=lang?>&id=<?=$prn_wf_locked_by?>"><?echo $prn_WF_LOCKED_BY?></a>]&nbsp;<?=$prn_LOCKED_USER_NAME?><?
            endif;
            ?></font></td>
        </tr>
        <?endif;?>
    <?endif;?>
    <?if (CModule::IncludeModule("workflow")):?>
    <tr>
        <td valign="top" align="center" colspan="2">
            <textarea name="WF_COMMENTS" class="typearea" cols="110" rows="10"><?echo $str_WF_COMMENTS?></textarea></td>
    </tr>
    <?endif?>
</table>
<br>
<input <?if ($view=="Y" || $prn_LOCK_STATUS=="red") echo "disabled";?> type="submit" class="button" name="save" value="<?echo (($ID > 0)?"Изменить":"Добавить")?>">
&nbsp;
<input <?if ($view=="Y" || $prn_LOCK_STATUS=="red") echo "disabled";?> class="button" type="submit" name="apply" value="Применить">
&nbsp;
<input <?if ($view=="Y" || $prn_LOCK_STATUS=="red") echo "disabled";?> type="submit" class="button" name="dontsave" value="Выйти без сохранения">
</form>

Внешний вид готов, теперь приступим к странице-обработчику перед сохранением. Чтобы как-то повлиять на сохраняемые поля необходимо модифицировать одноименные поля в массивах $_POST и $_FILES, значения всех свойств необходимо модифицировать в массиве $PROP.

Для проверки что текст статьи введен используем следующее условие:

if (strlen($_POST['DETAIL_TEXT'])<=0)
    $error = new _CIBlockError(2, 'DESCRIPTION_REQUIRED', 'Введите текст статьи');

Конструктор объекта _CIBlockError принимает три параметра: степень серьезности ошибки, произвольный идентификатор и текст ошибки. Если на странице редактирования определить переменную $error со значением этого объекта, то сохранения внесённых изменений не произойдет. Для того чтобы значения, пришедшие из формы, не потерялись, после инициализации переменной $error также инициализируйте переменную $bVarsFromForm=true. Переменная $bVarsFromForm как раз указывает, что значения в полях необходимо показывать те, которые пришли из формы.

Для автоматической установки даты новости в момент публикации переопределим поле $_POST["ACTIVE_FROM"]:

if ($_POST["WF_STATUS_ID"]==1 && strlen($_POST["ACTIVE_FROM"])<=0)
{
    $_POST["ACTIVE_FROM"] = date("d.m.Y H:i:s");
}

В данном случае мы фиксированно считаем что формат даты для языка в котором мы работаем DD.MM.YYYY HH:MI:SS, если у вас формат другой, то необходимо обработать его.

Для автоматического создания маленькой картинки на основе большой воспользуемся функцией BXIBlockAfterSave. Если ее определить до сохранения элемента, то она автоматически будет вызвана после успешного сохранения элемента. Определим ее в начале файла /bitrix/php_interface/include/iblock_element_edit_before_save.php:

<?
function BXIBlockAfterSave($arFields)
{
    if($_POST['MAKE_PREVIEW_PICTURE']=='Y')
    {
        $dbr = CIBlockElement::GetByID($arFields['ID']);
        if(($ar = $dbr->Fetch()) && $ar['DETAIL_PICTURE']>0)
        {
            $img_path = $_SERVER['DOCUMENT_ROOT'].CFile::GetPath($ar['DETAIL_PICTURE']);
            $width = 200;
            $height = 200;
            list($width_orig, $height_orig) = getimagesize($img_path);
            if($width && ($width_orig < $height_orig))
               $width = ($height / $height_orig) * $width_orig;
            else
               $height = ($width / $width_orig) * $height_orig;
            $image_p = imagecreatetruecolor($width, $height);
            $image = imagecreatefromjpeg($img_path);
            imagecopyresized($image_p, $image, 0, 0, 0, 0,
                             $width, $height, $width_orig, $height_orig);
            $new_img_path = tempnam("/tmp", "FOO").".jpg";
            imagejpeg($image_p, $new_img_path);
            $be = new CIBlockElement();
            $be->Update($arFields['ID'],
                        Array('PREVIEW_PICTURE' => CFile::MakeFileArray($new_img_path)),
                        false);
            @unlink($new_img_path);
        }
    }
}
?>

В вышеприведенном скрипте если установлен специальный флажок, то на основе большой картинки будет создана маленькая и эта картинка будет подставлена в поле для маленькой картинки. Пример работает только с картинками в формате JPG.

При помощи этой же функции мы будем чистить закешированные страницы с текстом новости, которая была сохранена:

function BXIBlockAfterSave($arFields)
{
    if($arFields['WF_STATUS_ID']==1)
    {
        BXClearCache(true, "/ru/main_page/");
        BXClearCache(true, "/ru/detail/".$arFields['ID']."/");
    }
}

Вот и все. Теперь у нас есть форма полностью настроенная для наших нужд. Иногда бывает необходимо выполнить изменения совсем другого характера, например, форма ввода и изменения одновременно несколько картинок, в этом случае необходимо просто создать свою новую страницу и добавить ее в административное меню. В заключении приведем полный код страницы /bitrix/php_interface/include/iblock_element_edit_before_save.php:

<?
if($REQUEST_METHOD=="POST" && strlen($Update)>0 && $view!="Y" && (!$error) && empty($dontsave) && strlen($_POST['DETAIL_TEXT'])<=0)
    $error = new _CIBlockError(2, "DESCRIPTION_REQUIRED", "Введите текст статьи");
elseif($_POST["WF_STATUS_ID"] == 1 && strlen($_POST["ACTIVE_FROM"]) <= 0)
    $_POST["ACTIVE_FROM"] = date("d.m.Y H:i:s");

function BXIBlockAfterSave($arFields)
{
    if($_POST['MAKE_PREVIEW_PICTURE']=='Y')
    {
        $dbr = CIBlockElement::GetByID($arFields['ID']);
        if(($ar = $dbr->Fetch()) && $ar['DETAIL_PICTURE']>0)
        {
            $img_path = $_SERVER['DOCUMENT_ROOT'].CFile::GetPath($ar['DETAIL_PICTURE']);
            $width = 200;
            $height = 200;
            list($width_orig, $height_orig) = getimagesize($img_path);
            if($width && ($width_orig < $height_orig))
               $width = ($height / $height_orig) * $width_orig;
            else
               $height = ($width / $width_orig) * $height_orig;
            $image_p = imagecreatetruecolor($width, $height);
            $image = imagecreatefromjpeg($img_path);
            imagecopyresized($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
            $new_img_path = tempnam("/tmp", "FOO").".jpg";
            imagejpeg($image_p, $new_img_path);
            $be = new CIBlockElement();
            $be->Update($arFields['ID'], Array('PREVIEW_PICTURE'=>CFile::MakeFileArray($new_img_path)), false);
            @unlink($new_img_path);
            die($new_img_path);
        }
    }

    if($arFields['WF_STATUS_ID']==1)
    {
        BXClearCache(true, "/ru/main_page/");
        BXClearCache(true, "/ru/detail/".$arFields['ID']."/");
    }
}
?>


Типы фильтрации

В большинстве функций и методов модуля информационных блоков, выбирающих списки, в фильтрах возможно использование различных типов фильтрации. Символы типов фильтрации указываются непосредственно перед названием фильтруемого поля.

Типы:

  • (пустой) - для строковых полей означает поиск по маске (в маске: "%" - произвольное число любых символов, "_" - один произвольный символ), для полей с нестроковыми типами поиск "равно".

<?
// найти элементы у которых название начинается на "#"
$res = CIBlockElement::GetList(Array(), Array("NAME"=>"#%"));

// найти элементы с идентификатором 100
$res = CIBlockElement::GetList(Array(), Array("ID"=>"100"));
?>
  • "!" - для строк выражение не попадающее под маску, или не равно (для остальных типов полей).

<?
// найти элементы у которых название не начинается на "#"
$res = CIBlockElement::GetList(Array(), Array("!NAME"=>"#%"));
?>
  • "?" - с применением логики, работает только для строковых свойств.

<?
// найти элементы у которых название содержит "One" или "Two"
$res = CIBlockElement::GetList(Array(), Array("?NAME"=>"One | Two"));
?>
  • "<" - меньше;
  • "<=" - меньше либо равно;
  • ">" - больше;
  • ">=" - больше либо равно.

<?
// найти элементы у которых название начинается на "A"
$res = CIBlockElement::GetList(Array(), Array(">=NAME"=>"A", "<NAME"=>"B"));

// найти элементы с идентификатором большим 100
$res = CIBlockElement::GetList(Array(), Array(">ID"=>"100"));
?>
  • "=" - равно;
  • "!=" - не равно.

<?
// найти элементы у которых название равно "ELEMENT%1"
$res = CIBlockElement::GetList(Array(), Array("=NAME"=>"ELEMENT%1"));
?>
  • "%" - подстрока;
  • "!%" - не подстрока.

<?
// найти элементы у которых в названии есть символ процента "%"
$res = CIBlockElement::GetList(Array(), Array("%NAME"=>"%"));
?>
  • "><" - между;
  • "!><" - не между.

В качестве аргумента данные типы фильтров принимает массив вида Array("значение ОТ", "значение ДО")

<?
// найти элементы у которых название начинается между "A" и "B" или между "D" и "E"
$res = CIBlockElement::GetList(Array(), Array("><NAME"=>Array(Array("A", "B"), Array("D", "E"))));

// найти элементы, у которых дата начала активности не в периоде 2003 года
$res = CIBlockElement::GetList(Array(),
                               Array("!><DATE_ACTIVE_FROM"=>
                                     Array(date($DB->DateFormatToPHP(CLang::GetDateFormat("FULL")),
                                                mktime(0,0,0,1,1,2003)),
                                           date($DB->DateFormatToPHP(CLang::GetDateFormat("FULL")),
                                                mktime(0,0,0,1,1,2004)))));
?>


RSS

RSS - формат, предназначенный для обмена информацией (прежде всего новостями) между сайтами. Формат RSS является диалектом XML. Получить полную информацию по формату RSS 2.0 можно по адресу http://backend.userland.com/rss.

Терминология

Канал
Информационный блок в RSS формате.
Сайт-сервер
Сайт, который экспортирует (отдает) информацию в формате RSS.
Сайт-клиент
Сайт, который импортирует (принимает) информацию в формате RSS.
Кеширование
Временное хранение информации, полученной с сайта-сервера, на сайте-клиенте для ускорения повторного доступа к ней.
Узел (элемент) канала
Элемент информационного блока (например, новость или товар) в RSS формате.

Экспорт в RSS

Существует три способа экспорта содержимого информационного блока в формат RSS

Динамическая ("на лету") генерация RSS файла по запросу сайта-клиента.

Для включения этого способа необходимо на сайте-сервере поставить флаг Разрешен экспорт в RSS динамически в настройках информационного блока и установить в поле Действительно (часов) время, через которое сайт-клиент должен будет перезапрашивать данные с сайта-сервера (между перезапросами сайт-клиент будет выводить данные из кеша).

Для доступа к RSS файлу сайт-клиент должен запросить скрипт /bitrix/rss.php с сайта-сервера с параметрами ID, LANG, TYPE и LIMIT.

Параметры запроса
Параметр | Описание
ID | Код информационного блока или символьный код инфоблока.
LANG | Сайт информационного блока.
TYPE | Тип информационного блока.
LIMIT | Сколько элементов информационного блока выдавать.

Пример запроса

http://www.1c-bitrix.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.1c-bitrix.ru/upload/iblock_rss_3.xml

Прегенерация RSS файла в Yandex-формате.

Этот формат служит для отправки новостей службе Яндекс.Новости и отличается от предыдущих форматов наличием дополнительной ветки, содержащей полный текст элемента информационного блока. Для включения этого способа необходимо на сайте-сервере поставить флаг Разрешен экспорт в RSS файл в формате yandex в настройках информационного блока. В этом случае элементы информационного блока выбираются за последние два дня без ограничения количества.

RSS будет генерироваться с периодичностью, заданной в поле Действительно (часов), и сохраняться в файл с именем типа yandex_rss_<ID блока>.xml в каталог, заданный в настройках модуля информационных блоков.

Для доступа к RSS файлу сайт-клиент должен запросить файл http://<сайт-сервер>/<путь из настроек модуля информационных блоков>/yandex_rss_<ID блока>.xml.

Пример запроса

http://www.1c-bitrix.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.bitrix.ru".
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>


Режим хранения свойств в отдельных таблицах

Введение

Начиная с версии 5.1 разработчики получили возможность выбора места и формы хранения значений свойств элементов инфоблока. Теперь можно сохранять их в отдельных таблицах, причем все значения свойств одного элемента хранятся в одной строке. Из этого вытекают несколько важных следствий:

  1. При выборке элементов можно сразу получать значения свойств, т.к. количество присоединяемых таблиц в запросе не увеличивается с каждым свойством, а всегда равно единице.
  2. Фильтрация по значениям свойств происходит аналогично (за исключением множественных).
  3. Выборка значений множественных свойств теперь не приводит к декартовому произведению результата запроса - значения свойств передаются в виде массива.
  4. Для комбинированных фильтров по не множественным (в дальнейшем назовем их единичными) свойствам появилась возможность ручного создания составных индексов БД для ускорения операций выборки.
  5. Для инфоблоков с хранением значений свойств в выделенных таблицах нет возможности "сквозной" выборки элементов, когда в фильтре указывается тип инфоблока и символьный код свойства. В фильтре необходимо указывать IBLOCK_ID.

Важным является полная совместимость API. Т.е. техника использования инфоблоков, свойств, элементов и их значений не изменилась. Изменилась методика - например, теперь нет необходимости в дополнительном запросе CIBlockElement::GetProperty при выборе значений свойств функцией CIBlockElement::GetList.

Уровень информационного блока.

Для информационного блока добавился новый признак VERSION. Соответственно, при создании нового инфоблока появилась новая опция - выбор хранения значений свойств информационного блока в общем хранилище или в выделенном. При выборе выделенного хранения для данного инфоблока в БД создаются две дополнительные таблицы, включающие в своё имя идентификатор инфоблока. В одной из них будут хранится множественные свойства, а в другой единичные и кэшированные значения множественных.

При редактировании инфоблока доступна ссылка на "конвертер" между типами хранения. Пользоваться им надо с большой осторожностью, т.к. продолжительность процесса конвертации зависит от общего объема значений свойств инфоблока. В течение всего процесса инфоблок находится в несогласованном состоянии (часть значений перенесена, а часть нет). На тестовой конфигурации для MySQL версии скорость была порядка 1500 элементов за 20-ти секундный шаг.

В классе CIBlockResult переопределён метод Fetch. В нем происходит кэширование значений множественных свойств элемента, участвующих в выборке. Для этих же свойств типа "список" выбираются пары ID=>VALUE из справочника списков.

В API добавлен новый параметр "VERSION" в массиве полей $arFields метода CIBlock::Add. Его значения: 1 - для общего хранения и 2 - для выделенного (нового).

Уровень свойств информационного блока.

Для свойств инфоблока в административном разделе изменений нет.

При редактировании свойств (смена признака множественности или типа свойства) для свойств в выделенном хранилище выполняются дополнительные операции по управлению таблицами. Такие как удаление/добавление колонок, вставка/обновление или удаление большого количества записей. Без настоятельной необходимости лучше избегать этого. Наилучшей методикой будет менять тип или множественность одного свойства за один раз. Причем для единичных свойств предпочтительнее сначала сделать его множественным а потом сменить тип, а для множественных наоборот - сначала тип, и уже потом делать его единичным.

Уровень элементов информационного блока.

Главные изменения коснулись использования метода GetList. Все они были перечислены во введении.

При вставке элемента вставляется и соответствующая запись в таблицу хранения значений свойств элемента.

Уровень значений свойств элементов информационного блока.

Для значений единичных свойств инфоблока с выделенным хранилищем ID - "синтетический". Он состоит из ID элемента и ID свойства, разделенных двоеточием.

При обновлении множественных свойств происходит сброс кеша этих значений.

Значения свойств хранятся в 2-х таблицах (описание таблиц и их структуры имеет справочный характер и могут меняться в следующих версиях):

  • b_iblock_element_prop_mNN - для множественных. Имеет ту же самую структуру, что и b_iblock_element_property;
  • b_iblock_element_prop_sNN - для единичных. Имеет поле IBLOCK_ELEMENT_ID - ID элемента инфоблока которому принадлежат свойства:
    • PROPERTY_XX - хранит значения единичного свойства XX или кэш значений для множественного свойства;
    • DESCRIPTION_XX - хранит описание для единичного свойства

Как достичь наибольшей эффективности при использовании новых инфоблоков?

Для использования преимуществ, создаваемых структурой хранения данных в новых инфоблоках, необходимо несколько модифицировать логику работы компонентов.

Например: если раньше шаблон кода был примерно таким:

<?
//Определяем массив нужных полей элемента
$arSelect = array(
    "ID",
    "IBLOCK_ID",
    "IBLOCK_SECTION_ID",
    "NAME",
    "PREVIEW_PICTURE",
    "DETAIL_PICTURE",
    "DETAIL_PAGE_URL",
);
//Получаем список элементов. (+1 запрос)
if($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, false, false, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER), $ELEMENT_COUNT, $arFilter, $arSelect))
{
    //Инициализация постраничного вывода.
    $rsElements->NavStart($ELEMENT_COUNT);
    $count = intval($rsElements->SelectedRowsCount());
    if ($count>0)
    {
        //Для каждого элемента:
        while ($obElement = $rsElements->GetNextElement())
        {
            $arElement = $obElement->GetFields();
            //Получаем его свойства. (+1 запрос)
            $arProperty = $obElement->GetProperties();
            //Ниже можно пользоваться значениями свойств.
            //Например:
            echo $arProperty["SOURCE"],"<br>";
            //и т.д. и т.п.
        }
    }
}
?>

Теперь, после преобразования в новый тип хранения, стало возможным избавится от запросов в цикле:

<?
//Определяем массив нужных полей элемента
$arSelect = array(
    "ID",
    "IBLOCK_ID",
    "IBLOCK_SECTION_ID",
    "NAME",
    "PREVIEW_PICTURE",
    "DETAIL_PICTURE",
    "DETAIL_PAGE_URL",
    "PROPERTY_SOURCE", //Выбираем нужное нам свойство
    // И все другие какие могут понадобится
    // непосредственно в списке
);
//Получаем список элементов. (+1 запрос)
if($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, false, false, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER), Array("nPageSize"=>$ELEMENT_COUNT), $arFilter, $arSelect))
{
    //Инициализация постраничного вывода.
    $rsElements->NavStart($ELEMENT_COUNT);
    if($obElement = $rsElements->GetNextElement())
    {
        //Для каждого элемента:
        do
        {
            $arElement = $obElement->GetFields();
            //Ниже можно пользоваться значениями свойств.
            //Например:
            echo $arElement["PROPERTY_SOURCE"],"<br>";
            //и т.д. и т.п.
        }
        while ($obElement = $rsElements->GetNextElement())
    }
}
?>


Классы

CIBlockElement - класс для работы с элементами информационных блоков.

Метод | Описание
GetList | Возвращает список элементов по фильтру.
GetByID | Возвращает элемент по его ID.
GetElementGroups | Возвращает группы, которым принадлежит элемент, по его коду.
GetProperty | Получение свойств злемента.
Add | Добавляет новый элемент.
Update | Изменяет элемент.
Delete | Удаляет элемент из информационного блока.
SetElementSection | Привязывает элемент информационного блока к группам.
SetPropertyValues | Сохраняет свойства элемента информационного блока.
SetPropertyValueCode | Изменяет значение свойства элемента.
UpdateSearch | Индексирует указанный элемент в модуле поиска.

CIBlockSection - класс для работы с группами информационных блоков.

Метод | Описание
GetList | Возвращает список групп по фильтру.
GetByID | Возвращает группу по ID.
Add | Добавляет в информационный блок новую группу.
Update | Изменяет группу.
Delete | Удаляет группу информационного блока.

CIBlock - класс для работы с информационными блоками.

Метод | Описание
ShowPanel | Добавляет кнопки для управления блоками, группами и элементами в верхнюю панель.
SetPermission | Устанавливает права доступа на информационный блок.
GetProperties | Возвращает свойства информационного блока.
GetGroupPermissions | Возвращает все права доступа для информационного блока.
GetPermission | Определяет право доступа для текущего пользователя.
GetList | Возвращает список информационных блоков по фильтру.
GetByID | Возвращает информационный блок по его ID.
Add | Добавляет новый информационный блок.
Update | Изменяет информационный блок.
Delete | Удаляет информационный блок.

CIBlockProperty - класс для работы со свойствами информационных блоков.

Метод | Описание
GetList | Возвращает список свойств по фильтру.
GetByID | Возвращает свойство по его ID.
Add | Добавляет новое свойство.
Update | Изменяет параметры свойства.
Delete | Удаляет свойства.
GetPropertyEnum | Начинает перечисление свойств.
UpdateEnum | Обновляет информацию в массиве результатов перечисления свойства.

CIBlockPropertyEnum - класс для работы с вариантами значений для свойств типа "список".

Метод | Описание
GetList | Возвращает список вариантов по фильтру.
Add | Добавляет новый вариант.
Update | Изменяет вариант.
Delete | Удаляет вариант свойства.

CIBlockType - класс для работы с типами информационных блоков.

Метод | Описание
GetList | Возвращает список типов по фильтру.
GetByID | Возвращает тип по его ID.
Add | Добавляет новый тип.
Update | Изменяет параметры типа.
Delete | Удаляет тип блока.

CIBlockResult - вспомогательный класс для работы с объектами результатов выборок.

Метод | Описание
GetNext | Возвращает массив полей из выборки.
GetNextElement | Возвращает объект _CIBElement из выборки.

_CIBElement - вспомогательный класс для работы с объектом выборки элемента .

Метод | Описание
GetFields | Возвращает поля элемента.
GetProperty | Возвращает значение свойства элемента.
GetProperties | Возвращает значения нескольких свойств элемента.
GetGroups | Возвращает список разделов, к которым привязан элемент.


CIBlock

CIBlock - класс для работы с информационными блоками

Методы класса

Метод | Описание
GetList | Возвращает список информационных блоков по фильтру.
GetSite | Возвращаке список сайтов для информационного блока.
GetByID | Возвращает информационный блок по его ID.
GetProperties | Возвращает свойства информационного блока.
GetPermission | Определяет право доступа для текущего пользователя.
Add | Добавляет новый информационный блок.
Update | Изменяет информационный блок.
Delete | Удаляет информационный блок.
SetPermission | Устанавливает права доступа на информационный блок.
GetGroupPermissions | Возвращает все права доступа для информационного блока.
ShowPanel | Добавляет кнопки для управления блоками, группами и элементами в верхнюю панель.


CIBlock::Add

int
CIBlock::Add(
 array arFields
);

Метод добавляет новый информационный блок.

Параметры функции

Параметр Описание
arFields Массив Array("поле"=>"значение", ...). Содержит значения всех полей информационного блока.
Дополнительно в поле SITE_ID должен находиться массив идентификаторов сайтов, к которым привязан добавляемый информационный блок.
Кроме того, с помощью поля "GROUP_ID", значением которого должен быть массив соответствий кодов групп правам доступа, можно установить права для разных групп на доступ к информационному блоку(см. CIBlock::SetPermission()).

Возвращаемое значение

Метод возвращает код добавленного информационного блока, если добавление прошло успешно, при возникновении ошибки функция вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

См. также

  • CIBlock::Update
  • Поля информационного блока

Примеры использования

<?
$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);
}
?>


CIBlock::Delete

bool
CIBlock::Delete(
 int ID
);

Функция удаляет информационный блок.

Параметры функции

Параметр | Описание
ID | Код информационного блока.

Возвращаемое значение

Возвращается true в случае успешного удаления и false - в противном случае.

Примеры использования

<?
if($USER->IsAdmin())
{
    $DB->StartTransaction();
    if(!CIBlock::Delete($iblock_id))
    {
        $strWarning .= GetMessage("IBLOCK_DELETE_ERROR");
        $DB->Rollback();
    }
    else
        $DB->Commit();
}
?>


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'];
?>


CIBlock::GetGroupPermissions

array
CIBlock::GetGroupPermissions(
 int ID
);

Возвращает права доступа к информационному блоку ID для всех групп пользователей.

Параметры функции

Параметр | Описание
ID | Код информационного блока.

Возвращаемое значение

Массив прав вида Array("ID группы"=>"Право доступа"[, ...]). Право доступа может принимать значение: "D" - запрещён, "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));
?>


CIBlock::GetList

CDBResult
CIBlock::GetList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array(),
 bool bIncCnt = false
);

Возвращает список информационных блоков по фильтру arFilter отсортированный в порядке arOrder.

Параметры функции

Параметр | Описание
arOrder Массив для сортировки результата. Содержит пары "поле сортировки"=>"направление сортировки". Поле для сортировки может принимать значения:
  • id - код раздела;
  • iblock_type - тип раздела;
  • name - название раздела;
  • active - активность;
  • sort - индекс сортировки;
  • element_cnt - количество элементов (только если bIncCnt = true);
  • timestamp_x - дата последнего изменения.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ACTIVE - фильтр по активности (Y|N);
  • NAME - по названию (можно искать по шаблону [%_]);
  • EXTERNAL_ID, XML_ID - по внешнему коду;
  • SITE_ID - по сайту;
  • TYPE - по типу раздела;
  • CODE - по мнемоническому коду;
  • ID - по коду;
  • CNT_ACTIVE - только если bIncCnt = true. Если значение Y, то при подсчете элементов будут учитываться только активные элементы, при любом другом значении все элементы;
  • CNT_ALL - только если bIncCnt = true. Если значение Y, то при подсчете элементов будут учитываться и те элементы, которые ещё не были опубликованы. При любом другом значении все элементы;
  • MIN_PERMISSION - фильтр по правам доступа, по умолчанию принимает R (уровень доступа Чтение).
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
Все фильтруемые поля кроме могут содержать перед названием тип проверки фильтра.
"значения фильтра" - одиночное значение или массив.

Необязательное. По умолчанию записи не фильтруются.
bIncCnt | Возвращать ли количество элементов в информационном блоке в поле ELEMENT_CNT. Не обязательный параметр, по умолчанию равен false.

Возвращаемое значение

Возвращается объект CDBResult.

См. также

  • CDBResult
  • Поля CIBlock

Примеры использования

<?
// выберем все активные информационные блоки для текущего сайта типа 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'];
}
?>


CIBlock::GetPermission

string
CIBlock::GetPermission(
 int IBLOCK_ID
);

Возвращает право доступа к информационному блоку IBLOCK_ID для текущего пользователя.

Параметры функции

Параметр | Описание
IBLOCK_ID | Код информационного блока.

Возвращаемое значение

Символ права доступа: "D" - запрещён, "R" - чтение, "U" - изменение через документооборот, "W" - изменение, "X" - полный доступ (изменение + право изменять права доступа).

См. также

  • GetGroupPermissions

Примеры использования

<?
$iblock_permission = CIBlock::GetPermission($id);
if($iblock_permission<"X")
        return false;
?>


CIBlock::GetProperties

CDBResult
CIBlock::GetProperties(
 int iblock_id,
 array arOrder=Array(),
 array arFilter=Array()
);
Возвращает свойства информационного блока iblock_id с возможностью сортировки и дополнительной фильтрации.

Параметры функции

Параметр | Описание
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>";
}
?>


CIBlock::SetPermission

CIBlock::SetPermission(
 int IBLOCK_ID,
 array arPERMISSIONS
);

Функция устанавливает права доступа arPERMISSIONS для информационного блока IBLOCK_ID.

Параметры функции

Параметр | Описание
IBLOCK_ID | код информационного блока.
arPERMISSIONS | массив вида Array("код группы"=>"право доступа", ....), где право доступа: D - доступ запрещён, R - чтение, U - редактирование через документооборот, W - запись, X - полный доступ (запись + назначение прав доступа на данный инфоблок)

См. также

  • CIBlock::GetPermission()
  • CIBlock::Update()

Примеры использования

<?
CIBlock::SetPermission($IBLOCK_ID, Array("2"=>"R", "3"=>"W"));
?>


CIBlock::ShowPanel

CIBlock::ShowPanel(
 int IBLOCK_ID = 0,
 int ELEMENT_ID = 0,
 int SECTION_ID = 0,
 string TYPE_ID = "news"
);

Добавляет в административную панель кнопки для быстрого перехода к редактированию объектов модуля информационных блоков, с учётом прав доступа.

Параметры функции

Параметр | Описание
IBLOCK_ID | код информационного блока. если задан (больше нуля), то в панель добавляются кнопки на изменение параметров этого информационного блока, на добавление в него разделов и элементов.
ELEMENT_ID | код элемента информационного блока. если задан (больше нуля), то в панель добавляются кнопки на редактирование этого элемента и просмотр его истории изменений (при установленном модуле документооборота)
SECTION_ID | код раздела информационного блока. если задан (больше нуля), то в панель добавляются кнопки на изменение свойств этого раздела.
TYPE_ID | тип информационного блока. если задан, то в панель добавляется кнопка добавления нового информационного блока.

Примечание

Если задан ELEMENT_ID, но не определён IBLOCK_ID, то функция автоматически установит его .

См. также

  • CMain::ShowPanel()

Примеры использования

<?
$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;
?>


CIBlock::Update

bool
CIBlock::Update(
 int ID,
 array arFields
);

Функция изменяет параметры информационного блока с кодом ID.

Параметры функции

Параметр | Описание
ID | ID изменяемой записи.
arFields Массив Array("поле"=>"значение", ...). Содержит значения всех полей информационного блока.
Дополнительно в поле SITE_ID должен находиться массив идентификаторов сайтов, к которым привязан изменяемый информационный блок.
Кроме того, с помощью поля "GROUP_ID", значением которого должен быть массив соответствий кодов групп правам доступа, можно установить права для разных групп на доступ к информационному блоку(см. CIBlock::SetPermission()).

Возвращаемое значение

Функция возвращает true если изменение прошло успешно, при возникновении ошибки функция вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

См. также

  • CIBlock::Add
  • Поля информационного блока

Примеры использования

<?
$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 | Возвращает список элементов по фильтру.
GetByID | Возвращает элемент по его ID.
GetElementGroups | Возвращает группы, которым принадлежит элемент, по его коду.
GetProperty | Получение свойств злемента.
Add | Добавляет новый элемент.
Update | Изменяет элемент.
Delete | Удаляет элемент из информационного блока.
SetElementSection | Привязывает элемент информационного блока к группам.
SetPropertyValues | Сохраняет свойства элемента информационного блока.
SetPropertyValueCode | Изменяет значение свойства элемента.
UpdateSearch | Индексирует указанный элемент в модуле поиска.
CounterInc | Увеличивает счетчик показов элемента.


CIBlockElement::Add

int
CIBlockElement::Add(
 array arFields,
 bool bWorkFlow = false,
 bool bUpdateSearch = true
);
Метод добавляет новый элемент информационного блока.

Параметры функции

Параметр | Описание
arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей элемента инфоблоков и дополнительно может содержать поле "PROPERTY_VALUES" - массив со всеми значениями свойств элемента в виде массива Array("код свойства"=>"значение свойства"). Где "код свойства" - числовой или мнемонический код свойства, "значение свойства" - одиночное значение, либо массив значений если свойство множественное. Дополнительно для сохранения значения свойств см: CIBlockElement::SetPropertyValues(), CIBlockElement::SetPropertyValueCode()
bWorkFlow | Вставка в режиме документооборота. Если true и модуль документооборота установлен, то данное добавление будет учтено в журнале изменения элемента. Не обязательный параметр, по умолчанию вставка в режиме документооборота отключена.
bUpdateSearch | Индексировать элемент для поиска. Для повышения производительности можно отключать этот параметр во время серии добавлений элементов, а после вставки переиндексировать поиск. Не обязательный параметр, по умолчанию элемент после добавления будет проиндексирован в поиске.

Возвращаемое значение

Метод возвращает код добавленного элемента инфоблока, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

См. также

  • CIBlockElement::Update
  • CIBlockElement::SetPropertyValues()
  • CIBlockElement::SetPropertyValueCode()

Примеры использования

<?
$el = new CIBlockElement;

$PROP = array();
$PROP[12] = "Белый";  // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38;        // свойству с кодом 3 присваиваем значение 38

$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION" => 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;
?>


CIBlockElement::CounterInc

CIBlockElement::CounterInc(
 int ID
);
Увеличивает счетчик просмотров элемента с кодом ID. При увеличении учитывается уникальность просмотров данного элемента в одной сессии.

Параметры функции

Параметр | Описание
ID | Код элемента.

Примеры использования

<?
if(CModule::IncludeModule("iblock"))
    CIBlockElement::CounterInc($ID);
?>


CIBlockElement::Delete

bool
CIBlockElement::Delete(
 int ID
);

Функция удаляет элемент информационного блока.

Параметры функции

Параметр | Описание
ID | Код элемента.

Возвращаемое значение

Возвращается true в случае успешного удаления, в противном случае функция вернет false.

Примеры использования

<?
if(CIBlock::GetPermission($IBLOCK_ID)>='W')
{
    $DB->StartTransaction();
    if(!CIBlockElement::Delete($ELEMENT_ID))
    {
        $strWarning .= 'Error!';
        $DB->Rollback();
    }
    else
        $DB->Commit();
}
?>


CIBlockElement::GetByID

CIBlockResult
CIBlockElement::GetByID(
 int ID
);

Возвращает параметры элемента с кодом ID.

Параметры функции

Параметр | Описание
ID | ID элемента.

Возвращаемое значение

Возвращается объект CIBlockResult с полями элемента информационного блока.

Примечание

Функция не проверяет чтобы элемент с кодом ID был опубликован и не являлся записью из истории. Для выборки только опубликованных элементов воспользуйтесь функциeй CIBlockElement::GetList().

См. также

  • CDBResult
  • CIBlockResult
  • Поля элемента информационного блока
  • CIBlockElement::GetList()

Примеры использования

<?
$res = CIBlockElement::GetByID($_GET["PID"]);
if($ar_res = $res->GetNext())
  echo $ar_res['NAME'];
?>


CIBlockElement::GetElementGroups

CDBResult
CIBlockElement::GetElementGroups(
 int ID
);

Возвращает группы, которым принадлежит элемент, по его коду ID.

Параметры функции

Параметр | Описание
ID | ID элемента.

Возвращаемое значение

Возвращается объект CDBResult с полями разделов.

См. также

  • CDBResult
  • Поля раздела
  • CIBlockElement::SetElementSectio n()

Примеры использования

<?
$db_old_groups = CIBlockElement::GetElementGroups($ELEMENT_ID);
$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);
?>


CIBlockElement::GetList

CIBlockResult
CIBlockElement::GetList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array(),
 mixed arGroupBy = false,
 mixed arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список элементов по фильтру arFilter.

Примечание: внутренние ограничения Oracle и MSSQL не позволяют использовать DISTINCT при фильтрации по полям типа blob, поскольку фильтрация по нескольким значениям множественного свойства может дать дублирование.

Параметры функции

Параметр Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
  • id - ID элемента;
  • sort - индекс сортировки;
  • timestamp_x - дата изменения;
  • name - название;
  • active_from - начало периода действия элемента;
  • active_to - окончание периода действия элемента;
  • status - код статуса элемента в документообороте;
  • code - мнемонический код элемента;
  • iblock_id - числовой код информационного блока;
  • modified_by - код последнего изменившего пользователя;
  • active - признак активности элемента;
  • show_counter - количество показов элемента (учитывается функцией CIBlockElement::CounterInc);
  • show_counter_start - время первого показа элемента (учитывается функцией CIBlockElement::CounterInc);
  • shows - усредненное количество показов (количество показов / продолжительность показа);
  • rand - случайный порядок;
  • property_<PROPERTY_CODE> - по значению свойства с числовым или мнемоническим кодом PROPERTY_CODE (например, PROPERTY_123 или PROPERTY_NEWS_SOURCE);
  • catalog_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD (может быть PRICE - цена или CURRENCY - валюта) из цены с типом PRICE_TYPE (например, catalog_PRICE_1 или CATALOG_CURRENCY_3);
  • order - порядок сортировки, может принимать значения:
    • asc - по возрастанию;
    • desc - по убыванию;
    Необязательный. По умолчанию равен Array("sort"=>"asc")
arFilter Массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]). "фильтруемое поле" может принимать значения:
  • ID - по числовому коду;
  • ACTIVE - фильтр по активности (Y|N); передача пустого значения ("ACTIVE"=>"") выводит все элементы без учета их состояния;
  • NAME - по названию (можно искать по шаблону [%_]);
  • CODE - по мнемоническому идентификатору (можно искать по шаблону [%_]);
  • EXTERNAL_ID - по внешнему коду (можно искать по шаблону [%_]);
  • PREVIEW_TEXT - по анонсу (можно искать по шаблону [%_]);
  • PREVIEW_TEXT_TYPE - по типу анонса (html|text);
  • PREVIEW_PICTURE - коду картинки для анонса;
  • DETAIL_TEXT - по детальному описанию (можно искать по шаблону [%_]);
  • DETAIL_TEXT_TYPE - по типу детальному описания (html|text);
  • DETAIL_PICTURE - по коду детальной картинки;
  • CHECK_PERMISSIONS - если установлен в "Y", то в выборке будет осуществляться проверка прав доступа к информационным блокам. По умолчанию права доступа не проверяются.
  • MIN_PERMISSION - минимальный уровень доступа, будет обработан только если CHECK_PERMISSIONS установлен в "Y". По умолчанию "R". Список прав доступа см. в CIBlock::SetPermission().
  • SEARCHABLE_CONTENT - по содержимому для поиска. Включает в себя название, описание для анонса и детальное описание (можно искать по шаблону [%_]);
  • SORT - по сортировке;
  • TIMESTAMP_X - по времени изменения (можно искать по шаблону [%_]);
  • MODIFIED_USER_ID - по коду пользователя, изменившего элемент;
  • DATE_CREATE - по времени создания;
  • CREATED_BY - по коду пользователя, добавившего элемент;
  • DATE_ACTIVE_FROM - по дате начала активности;
  • DATE_ACTIVE_TO - по дате окончания активности;
  • ACTIVE_DATE - непустое значение задействует фильтр по датам активности (DATE_ACTIVE_FROM и DATE_ACTIVE_TO). Если значение не установлено (""), фильтрация по датам активности не производится;
  • IBLOCK_ID - по коду информационного блока;
  • IBLOCK_CODE - по мнемоническому коду информационного блока (можно искать по шаблону [%_]);
  • IBLOCK_SITE_ID - по сайту;
  • IBLOCK_TYPE - по типу информационного блока (можно искать по шаблону [%_]);
  • IBLOCK_ACTIVE - по активности информационного блока(Y|N);
  • SECTION_ID - по родительской группе;
  • INCLUDE_SUBSECTIONS - если задан фильтр по родительским группам SECTION_ID, то будут также выбраны элементы находящиеся в подгруппах этих групп;
  • SHOW_COUNTER - по количеству показов;
  • SHOW_COUNTER_START - по времени первого показа;
  • WF_COMMENTS - по комментарию документооборота (можно искать по шаблону [%_]);
  • 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_<код свойства>_VALUE - фильтр по значениям списка для свойств типа "список" (можно искать по шаблону [%_]), поиск будет осуществляться по строковому значению списка, а не по идентификатору;
  • CATALOG_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD из цены типа PRICE_TYPE (ID типа цены), где CATALOG_FIELD может быть: PRICE - цена, CURRENCY - валюта.
Перед названием фильтруемого поля можно указать тип проверки фильтра:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
Значения фильтра - одиночное значение или массив значений.

Необязательное. По умолчанию записи не фильтруются.
arGroupBy Массив полей для группировки элемента. Если поля указаны, то выборка по ним группируется, а в результат добавляется поле CNT - количество сгруппированных элементов. Если указать в качестве arGroupBy пустой массив, то функция вернет количество элементов CNT по фильтру. Группировать можно по полям элемента, а также по значениям его свойств. Для этого в качестве одного из полей группировки необходимо указать PROPERTY_<PROPERTY_CODE>, где PROPERTY_CODE - мнемонический код.
Необязательное. По умолчанию false - записи не группируются.
arNavStartParams Параметры для постраничной навигации и ограничения количества выводимых элементов. массив вида "Название параметра"=>"Значение", где название параметра
"nTopCount" - ограничить количество сверху
"bShowAll" - разрешить вывести все элементы при постраничной навигации
"iNumPage" - номер страницы при постраничной навигации
"nPageSize" - количество элементов на странице при постраничной навигации

Необязательное. По умолчанию false - не ограничивать выводимые элементы.
arSelectFields Массив возвращаемых полей элемента. Список полей элемента, а также можно сразу выводить значения его свойств. Обязательно должно быть использовано поле IBLOCK_ID, иначе не будет работать корректно. Кроме того, также в качестве одного из полей необходимо указать 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 типа цены.

По умолчанию выводить все поля.

Примечание: если в массиве используются свойство, являющееся множественным, то для элементов, где используются несколько значений этого свойства, будет возвращено несколько записей вместо одной. Для решения этой проблемы инфоблоки нужно перевести в "инфоблоки+", в этом случае для свойства будет отдаваться массив значений. Либо можно не указывать свойства в параметрах выборки, а получать их значения на каждом шаге перебора выборки с помощью _CIBElement::GetProperties().

Рассмотрим несколько частных случаев фильтрации:

  • $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") =>"" - используется, чтобы выбрать все элементы;
  • $arFilter = array("!PROPERTY_CML2_SCAN_CODE") =>qwe - при фильтрации элементов проверяется точное совпадение с заданными свойствами;
  • $arFilter = array("!?PROPERTY_CML2_SCAN_CODE") =>we - при фильтрации элементов проверяется наличие заданной подстроки свойствах.

Возвращаемое значение

Возвращается объект CIBlockResult.

См. также

  • CDBResult
  • Поля элементов

    Примеры использования

<?
$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);
}
?>

<?
// выборка активных элементов из информационного блока $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>";
}
?>


CIBlockElement::GetProperty

CDBResult
CIBlockElement::GetProperty(
 int iblock_id,
 int element_id,
 string by = "sort",
 string order = "asc",
 array arFilter = Array()
);

Функция возвращает значения свойств для злемента element_id.

Параметры функции

Параметр | Описание
iblock_id | Код раздела.
element_id | Код элемента.
by | Поле для сортировки результата. Может принимать одно из следующих значений id - по ключу, name - по имени свойства, active - по активности свойства, sort - по индексу сортировки свойства. Не обязательный параметр, по умолчанию равен sort.
order | Направление сортировки. Может принимать одно из следующих значений asc - по возрастанию, desc - по убыванию. Не обязательный параметр, по умолчанию равен asc.
arFilter | массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]) "фильтруемое поле" может принимать значения: ACTIVE - активность (Y/N), NAME - название свойства, ID - код свойства, ACTIVE - активность (Y|N), PROPERTY_TYPE - тип свойства, CODE - мнемонический код свойства, EMPTY - пустота свойства. Не обязательный параметр, по умолчанию равен array().

Возвращаемое значение

Возвращается объект CDBResult, содержащий поля свойств и поля со значениями:
PROPERTY_VALUE_ID - код значения свойства,
VALUE - значение свойства,
DESCRIPTION - описание значения свойства,
VALUE_ENUM - код значения свойства типа "список".

См. также

  • CDBResult
  • Поля свойств

Примеры использования

<?
$db_props = CIBlockElement::GetProperty($PRODUCT_IBLOCK_ID, $PRODUCT_ID, "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;
?>


CIBlockElement::SetElementSection

CIBlockElement::SetElementSection(
 int ID,
 array arSections
);
Функция привязывает элемент информационного блока к группам.

Параметры функции

Параметр | Описание
ID | Код (ID) элемента.
arSections | Массив кодов групп, к которым принадлежит указанный элемент.

См. также

  • CIBlockElement:: GetElementGroups()

Примеры использования

<?
$ID = 18;  // код элемента
$arSects = array(1, 5, 7); // массив кодов групп
CIBlockElement::SetElementSection($ID, $arSects);
?>


CIBlockElement::SetPropertyValueCode

bool
CIBlockElement::SetPropertyValueCode(
 int ELEMENT_ID,
 string PROPERTY_CODE,
 string PROPERTY_VALUE
);
Функция изменяет значение свойства элемента информационного блока.

Параметры функции

Параметр | Описание
ELEMENT_ID | Код элемента, значение свойства которого изменяется.
PROPERTY_CODE | Мнемонический или числовой код свойства, которое изменяется.
PROPERTY_VALUE | Значение свойства (одиночное или множественное в виде массива значений)

См. также

  • CIBlockElement::Update
  • CIBlockElement::SetPropertyValues

Примеры использования

<?
$arFile = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/add_basket.gif");
CIBlockElement::SetPropertyValueCode($ELEMENT_ID, "picture", $arFile);
?>


CIBlockElement::SetPropertyValues

CIBlockElement::SetPropertyValues(
 int ELEMENT_ID,
 int IBLOCK_ID,
 array PROPERTY_VALUES,
 string PROPERTY_CODE = false
);
Функция сохраняет значения всех свойств элемента информационного блока.

Параметры функции

Параметр | Описание
ELEMENT_ID | Код элемента, значения свойств которого необходимо установить.
IBLOCK_ID | Код информационного блока.
PROPERTY_VALUES | Массив значений свойств, в котором коду свойства ставится в соответствие значение свойства. Если PROPERTY_CODE установлен, то должен содержать одно или массив всех значений свойства (множественное) для заданного элемента. Если PROPERTY_CODE равен false, то PROPERTY_VALUES должен быть вида Array("код свойства1"=>"значения свойства1", ....), где "код свойства" - числовой или мнемонический код свойства, "значения свойства" - одно или массив всех значений свойства (множественное). При этом массив PROPERTY_VALUES должен содержать полный набор значений свойств для данного элемента, т.е. если в нем будет остутствовать одно из свойств, то все его значения для данного элемента будут удалены.
PROPERTY_CODE | Код изменяемого свойства. Если этот параметр отличен от false, то изменяется только свойство с таким кодом. Не обязательный параметр, по умолчанию равен false.

См. также

  • CIBlockElement::Update
  • CIBlockElement::SetPropertyValueCode

Примеры использования

<?
$ELEMENT_ID = 18;  // код элемента
$PROPERTY_CODE = "PROP1";  // код свойства
$PROPERTY_VALUE = "Синий";  // значение свойства

// Установим новое значение для данного свойства данного элемента
$strSql =
  "SELECT BE.IBLOCK_ID ".
  "FROM b_iblock_element BE ".
  "WHERE BE.ID = ".IntVal($ELEMENT_ID);
$dbr = $DB->Query($strSql);
if ($dbr_arr = $dbr->Fetch())
{
  $IBLOCK_ID = $dbr_arr["IBLOCK_ID"];
  CIBlockElement::SetPropertyValues($ELEMENT_ID, $IBLOCK_ID, $PROPERTY_VALUE, $PROPERTY_CODE);
}
?>


CIBlockElement::Update

bool
CIBlockElement::Update(
 int ID,
 array arFields,
 bool bWorkFlow = false,
 bool bUpdateSearch = true
);

Метод изменяет параметры элемента с кодом ID.

Параметры функции

Параметр | Описание
ID | ID изменяемой записи.
arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей элемента инфоблоков и дополнительно может содержать поле "PROPERTY_VALUES" - массив со всеми значениями свойств элемента в виде массива Array("код свойства"=>"значение свойства"). Где "код свойства" - числовой или мнемонический код свойства, "значение свойства" - одиночное значение, либо массив значений (если свойство множественное). Если массив PROPERTY_VALUES задан, то он должен содержать полный набор значений свойств для данного элемента, т.е. если в нем будет отсутствовать одно из свойств, то все его значения для данного элемента будут удалены. Дополнительно для сохранения значения свойств см: CIBlockElement::SetPropertyValues(), CIBlockElement::SetPropertyValueCode()
bWorkFlow | Изменение в режиме документооборота. Если true и модуль документооборота установлен, то данное изменение будет учтено в журнале изменений элемента. Не обязательный параметр, по умолчанию изменение в режиме документооборота отключена. Примечание: в режиме документооборота можно передавать значения не всех свойств в PROPERTY_VALUES, а только необходимых.
bUpdateSearch | Индексировать элемент для поиска. Для повышения производительности можно отключать этот параметр во время серии изменений элементов, а после их окончания переиндексировать поиск. Не обязательный параметр, по умолчанию элемент после изменения будет автоматически проиндексирован в поиске.

Возвращаемое значение

Метод возвращает true если изменение прошло успешно, при возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

См. также

  • CIBlockElement::Add

Примеры использования

<?
$el = new CIBlockElement;

$PROP = array();
$PROP[12] = "Белый";  // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38;        // свойству с кодом 3 присваиваем значение 38

$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION" => false,          // элемент лежит в корне раздела
  "IBLOCK_ID"      => 18,
  "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);
?>


CIBlockElement::UpdateSearch

CIBlockElement::UpdateSearch(
 int ID,
 bool bOverWrite = false
);
Индексирует элемент с кодом ID в модуле поиска.

Параметры функции

Параметр | Описание
ID | Код элемента.
bOverWrite | Переиндексировать ли элемент, если дата его изменения не изменилась.


CIBlockProperty

CIBlockProperty - класс для работы со свойствами информационных разделов.

Методы класса

Метод | Описание
GetList | Возвращает список свойств по фильтру.
GetByID | Возвращает свойство по его ID.
Add | Добавляет новое свойство.
Update | Изменяет параметры свойства.
Delete | Удаляет свойства.
GetPropertyEnum | Начинает перечисление свойств.
UpdateEnum | Обновляет информацию в массиве результатов перечисления свойства.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockProperty::Add

int
CIBlockProperty::Add(
 array fields
);

Функция добавляет новое свойство.

Параметры функции

Параметр | Описание
fields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей свойства. Кроме того, с помощью поля "VALUES", значением которого должен быть массив структуры array(array("VALUE"=>"значение", "DEF"=>"по умолчанию (Y/N)", "SORT"=>"индекс сортировки"),...), можно установить варианты выбора для свойств типа "список" (подробнее смотрите метод CIBlockProperty::UpdateEnum()).

Возвращаемое значение

Функция возвращает код добавленного свойства, если добавление прошло успешно, при возникновении ошибки функция вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

См. также

  • CIBlockProperty::Update
  • Поля свойства

Примеры использования

<?
$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);
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockProperty::Delete

bool
CIBlockProperty::Delete(
 int ID
);

Функция удаляет свойство.

Параметры функции

Параметр | Описание
ID | Код свойства.

Возвращаемое значение

В случае успешного удаления возвращается true, иначе - false.


CIBlockProperty::GetByID

CDBResult
CIBlockProperty::GetByID(
 mixed ID,
 int IBLOCK_ID = false,
 string IBLOCK_CODE = false
);

Возвращает свойство по его коду ID.

Параметры функции

Параметр | Описание
ID | Числовой или мнемонический код свойства.
IBLOCK_ID | Код информационного блока. Используется для уточнения свойства если его ID задано мнемоническим кодом и с таким мнемоническим кодом свойства присутствует в нескольких информационных блоках.
IBLOCK_CODE | Мнемонический код информационного блока. Используется для уточнения свойства если его ID задано мнемоническим кодом и с таким мнемоническим кодом свойства присутствует в нескольких информационных блоках.

Возвращаемое значение

Возвращается объект CDBResult.

Примечание

Если заданы оба значения IBLOCK_ID и IBLOCK_CODE, то будет производиться попытка найти свойство в одном из них (логика "или").

См. также

  • CDBResult
  • Поля свойства

Примеры использования

<?
$res = CIBlockProperty::GetByID("SRC", false, "company_news");
if($ar_res = $res->GetNext())
  echo $ar_res['NAME'];
?>


CIBlockProperty::GetList

CDBResult
CIBlockProperty::GetList(
 array arOrder = Array(),
 array arFilter = Array()
);

Возвращает список свойств по фильтру arFilter отсортированные в порядке arOrder.

Параметры функции

Параметр Описание
arOrder Массив для сортировки, имеющий вид by1=>order1[,by2=>order2 [, ..]], где: by - поле сортировки, может принимать значения:
  • id - код;
  • block_id - код информационного блока, которому принадлежит свойство; name - название;
  • active - активность;
  • sort - индекс сортировки;
  • timestamp_x - дата последнего изменения
  • searchable - по признаку участия значения свойства в поиске;
  • filtrable - по признаку участия свойства в фильре на странице списка элементов;
  • order - порядок сортировки, может принимать значения:
    • asc - по возрастанию;
    • desc - по убыванию;
arFilter Массив вида array("фильтруемое поле"=>"значение" [, ...]) . Фильтруемое поле может принимать значения:
  • ACTIVE - фильтр по активности (Y|N);
  • CODE - по мнемоническому коду(по шаблону [%_]);
  • NAME - по названию свойства (по шаблону [%_]);
  • EXTERNAL_ID - по внешнему коду(по шаблону [%_]). Возможно использование отрицания, указав !EXTERNAL_ID;
  • PROPERTY_TYPE - по типу свойства;
  • SEARCHABLE - по признаку участия значения свойства в поиске;
  • FILTRABLE - по признаку участия свойства в фильре на странице списка элементов;
  • IBLOCK_ID - по коду информационного блока, которому принадлежит свойство;
  • ID - по коду.
Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult

См. также

  • 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>";
}
?>


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 - поле сортировки,
order - порядок сортировки, может принимать значения:
asc - по возрастанию;
desc - по убыванию;
arFilter массив вида array("фильтруемое поле"=>"значение" [, ...])
"фильтруемое поле" может принимать значения:
VALUE - по значению варианта свойства (можно искать по шаблону [%_]);
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"])));
}
?>


CIBlockProperty::Update

bool
CIBlockProperty::Update(
 int ID,
 array arFields
);

Функция изменяет параметры свойства с кодом ID.

Параметры функции

Параметр | Описание
ID | ID изменяемой записи.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей изменяемого свойства. Кроме того, с помощью поля "VALUES", значением которого должен быть массив вида Array(Array("VALUE"=>"значение", "DEF"=>"по умолчанию (Y/N)", "SORT"=>"индекс сортировки"),...), можно установить варианты выбора для свойств типа "список" (подробнее смотрите метод CIBlockProperty::UpdateEnum()).

Возвращаемое значение

Функция возвращает true если изменение прошло успешно, при возникновении ошибки функция вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

См. также

  • CIBlockProperty::Add
  • Поля свойства

Примеры использования

<?
$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;
?


CIBlockProperty::UpdateEnum

CIBlockProperty::UpdateEnum(
 int ID,
 array arVALUES
);

Функция устанавливает значения перечислений свойства типа "список".

Параметры функции

Параметр | Описание
ID | Код свойства.
arVALUES | Массив всех значений в формате Array("код существующего значения"=>"массив полей значения", ..., "массив полей нового значения", ...). Где массив полей имеет вид: Array("VALUE"=>"значение"[, "SORT"=>"порядок сортировки"][, "DEF"=>"является значением по умолчанию (Y|N)"]).

Примечание

Массив 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']);
}

CIBlockPropertyEnum::UpdateEnum($PROP_ID, $ar_all_values);
?>


CIBlockPropertyEnum

CIBlockPropertyEnum - класс для работы со вариантами значений свойств типа "список".

Методы класса

Метод | Описание
GetList | Возвращает список вариантов свойств по фильтру.
Add | Добавляет новый вариант свойства.
Update | Изменяет вариант свойства.
Delete | Удаляет вариант свойства.


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;
?>


CIBlockPropertyEnum::Delete

bool
CIBlockPropertyEnum::Delete(
 int ID
);

Функция удаляет вариант значения свойства типа "список".

Параметры функции

Параметр | Описание
ID | Код варианта значения свойства.

Возвращаемое значение

В случае успешного удаления возвращается true, иначе - false.


CIBlockPropertyEnum::GetList

CDBResult
CIBlockPropertyEnum::GetList(
 array arOrder = Array("SORT"=>"ASC", "VALUE"=>"ASC"),
 array arFilter = Array()
);

Возвращает список вариантов значений свойств типа "список" по фильтру arFilter отсортированные в порядке arOrder.

Параметры функции

Параметр Описание
arOrder массив для сортировки, имеющий вид by1=>order1[, by2=>order2 [, ..]], где
by - поле сортировки, может принимать значения:
id - код варианта значения;
value - значение варианта;
sort - индекс сортировки варианта;
external_id - внешний код варианта значения;
def - по признаку "значение по умолчанию";
property_id - код свойства;
property_sort - индекс сортировки свойства;
property_code - мнемонический код свойства;
order - порядок сортировки, может принимать значения:
asc - по возрастанию;
desc - по убыванию;
arFilter массив вида array("фильтруемое поле"=>"значение" [, ...])
"фильтруемое поле" может принимать значения:
VALUE - по значению (по шаблону [%_]);
ID - по коду значения варианта свойства;
SORT - по индексу сортировки варианта свойства;
DEF - по параметру "значение по умолчанию" (Y|N);
EXTERNAL_ID - по внешнему коду(по шаблону [%_]);
CODE - по мнемоническому коду свойства (по шаблону [%_]);
PROPERTY_ID - по числовому или мнемоническому коду свойства;
IBLOCK_ID - фильтр по коду информационного блока, которому принадлежит свойство;
Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult

См. также

  • CDBResult
  • Поля варианта значений свойства типа "список"

Примеры использования

<?
$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>";
}
?>


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.
GetNextElement | Возвращает объект _CIBElement элемента из выборки.


CIBlockResult::GetNext

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockResult::GetNextElement

mixed
CIBlockResult::GetNext();

Возвращает массив значений полей приведенный в HTML безопасный вид. Также в полях DETAIL_PAGE_URL и LIST_PAGE_URL заменяются шаблоны вида #IBLOCK_ID# и т.п. на их реальные значения, в результате чего в этих полях будут ссылки на страницу детального просмотра и страницу списка элементов.

Возвращаемое значение

Метод возвращает массив с полями элемента информационного блока вида Array("поле"=>"преобразованное значение" [, ...]) и передвигает курсор на следующую запись.
Если достигнута последняя запись (или в результате нет ни одной записи) функция вернет false.

См. также

  • 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>';
?>


CIBlockResult::GetNextElement

_CIBElement
CIBlockResult::GetNextElement();

Метод возвращает из выборки объект _CIBElement.

Возвращаемое значение

Метод возвращает из выборки объект _CIBElement, и передвигает курсор на следующую запись.
Если достигнута последняя запись (или в результате нет ни одной записи) функция вернет false.

См. также

  • _CIBElement
  • CIBlockResult::GetNext()
  • CIBlockElement::GetList()

Примеры использования

<?
$res = CIBlockElement::GetByID($_GET["PID"]);
if($obRes = $res->GetNextElement())
{
  $ar_res = $obRes->GetFields();
  echo $ar_res['NAME'];
}
?>


CIBlockSection

CIBlockSection - класс для работы с разделами (группами) информационных блоков.

Методы класса

Метод | Описание
GetList | Возвращает список разделов по фильтру.
GetByID | Возвращает параметры раздела по его коду ID.
Add | Добавляет в информационный блок новый раздел.
Update | Изменяет параметры существующего раздела.
Delete | Удаляет раздел из информационного блока.
GetCount | Возвращает количество подразделов.
GetSectionElementsCount | Возвращает количество элементов в разделе.
GetTreeList | Возвращает разделы отсортированные в порядке "полностью развернутого дерева"
GetNavChain | Возвращает путь от заданного раздела до корневого.
ReSort | Пересчет левой и правой границ.


CIBlockSection::Add

int
Add(
 array arFields,
 bool bResort = true,
 bool bUpdateSearch = true
);

Метод добавляет новый раздел в информационный блок.

Параметры функции

Параметр | Описание
arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей раздела инфоблоков.
bResort | Флаг, указывающий пересчитывать ли правую и левую границы после изменения (поля LEFT_MARGIN и RIGHT_MARGIN). Установите значение в false, если необходимо выполнить серию добавлений, в этом случае для повышения производительности можно установить параметр в false, а после всех изменений вызвать метод CIBlockSection::ReSort()
bUpdateSearch | Флаг, указывающий, что раздел должен быть проиндексирован для поиска сразу же после сохранения.

Возвращаемое значение

Метод возвращает код добавленного раздела блока, если добавление прошло успешно. При возникновении ошибки функция вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

См. также

  • CIBlockSection::Update

Примеры использования

<?
$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;
?>


Delete

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockSection::Delete

bool
CIBlockSection::Delete(
 int ID
);

Функция удаляет раздел с кодом ID, вместе со всеми подразделами и элементами, которые привязаны только к этому разделу.

Параметры функции

Параметр | Описание
ID | Код раздела.

Возвращаемое значение

Возвращается true в случае успешного удаления, иначе возвращается false.

Примеры использования

<?
if(CIBlock::GetPermission($IBLOCK_ID)>='W')
{
    $DB->StartTransaction();
    if(!CIBlockSection::Delete($SECTION_ID))
    {
        $strWarning .= 'Error.';
        $DB->Rollback();
    }
    else
        $DB->Commit();
}
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockSection::GetByID

CDBResult
GetByID(
 int ID
);

Возвращает параметры раздела по его коду ID.

Параметры функции

Параметр | Описание
ID | Код раздела.

Возвращаемое значение

Возвращается объект CDBResult.

См. также

  • CDBResult
  • Поля раздела

Примеры использования

<?
$res = CIBlockSection::GetByID($_GET["GID"]);
if($ar_res = $res->GetNext())
  echo $ar_res['NAME'];
?>


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);
?>


CIBlockSection::GetList

CDBResult
CIBlockSection::GetList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array(),
 bool bIncCnt = false
);

Возвращает список разделов, отсортированных в порядке arOrder по фильтру arFilter.

Параметры функции

Параметр Описание
arOrder Массив для сортировки, имеющий вид by1=>order1[, by2=>order2 [, ..]], где by1, ... - поле сортировки, может принимать значения:
  • id - код группы;
  • section - код родительской группы;
  • name - название группы;
  • active - активности группы;
  • left_margin - левая граница;
  • depth_level - глубина вложенности;
  • sort - индекс сортировки;
  • element_cnt - количество элементов в группе, работает только если bIncCnt = true;
  • timestamp_x - по времени последнего изменения.
order1, ... - порядок сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.
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 - по внешнему коду информационного блока (по шаблону [%_]);
  • PROPERTY - по значениям свойств внутрилежащих элементов, PROPERTY - массив вида Array("код свойства"=>"значение", ...).
Все фильтруемые поля могут содержать перед названием тип проверки фильтра.

Значения фильтра одиночное значение или массив.

Необязательное. По умолчанию записи не фильтруются.
bIncCnt Возвращать ли поле ELEMENT_CNT - количество элементов в разделе.

Необязательный параметр, по умолчанию равен false.

Возвращаемое значение

Возвращается объект CDBResult

Примечание

Поле для сортировки left_margin, так называемая "сквозная" сортировка, высчитывается на основании поля sort, уровня вложенности и сортировкой верхнего уровня. Отличие полей sort и left_margin в том, что sort указывается пользователем, для сортировки разделов между собой в пределах одного раздела-родителя, а вычисляемое left_margin предназначено для сортировки во всем информационном блоке.

См. также

  • CDBResult
  • Поля раздела информационного блока

Примеры использования

<?
$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"]);
}
?>


GetNavChain

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockSection::GetNavChain

CDBResult
CIBlockSection::GetNavChain(
 int IBLOCK_ID,
 int SECTION_ID
);
Функция возвращает путь по дереву от корня до раздела SECTION_ID.

Параметры функции

Параметр | Описание
IBLOCK_ID | Код информационного блока, служит для проверки что раздел SECTION_ID, находится в заданном информационном блоке. Если значение IBLOCK_ID ноль, то проверка не будет выполнена и код информационного блока не будет учитываться.
SECTION_ID | Код раздела информационного раздела, путь до которого будет выбран.

Возвращаемое значение

Возвращается объект CDBResult с полями раздела информационного блока.

См. также

  • CDBResult
  • Поля раздела информационного блока

Примеры использования

<?
$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;?>


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()


CIBlockSection::GetTreeList

CDBResult
CIBlockSection::GetTreeList(
 array arFilter=Array()
);

Функция возвращает список разделов, отсортированный в порядке "полного развернутого дерева". По сути является оберткой функции CIBlockSection::GetList() с предустановленным параметром сортировки:

CIBlockSection::GetList(Array("left_margin"=>"asc"), $arFilter);

См. также

  • CIBlockSection::GetList()


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);
?>


CIBlockSection::Update

bool
CIBlockSection::Update(
 int ID,
 array arFields,
 bool bResort = true,
 bool bUpdateSearch = true
);

Метод изменяет параметры раздела с кодом ID.

Параметры функции

Параметр | Описание
ID | Код изменяемой записи.
arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей раздела инфоблоков.
bResort | Флаг, указывающий пересчитывать ли правую и левую границы после изменения (поля LEFT_MARGIN и RIGHT_MARGIN). Установите значение в false, в случае если поля которые влияют на значения границ не изменяются или необходимо выполнить серию изменений, в последнем случае для повышения производительности можно установить параметр в false, а после всех изменений вызвать метод CIBlockSection::ReSort()
bUpdateSearch | Флаг, указывающий, что раздел должен быть проиндексирован для поиска сразу же после сохранения.

Возвращаемое значение

Метод возвращает true если изменение прошло успешно, при возникновении ошибки функция вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

См. также

  • CIBlockSection::Add

Примеры использования

<?
$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 | Возвращает список типов по фильтру.
GetByID | Возвращает тип по идентификатору.
GetByIDLang | Возвращает настройки типа для заданного языка.
Add | Добавляет новый тип информационных блоков.
Update | Изменяет тип.
Delete | Удаляет тип информационных блоков.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockType::Add

bool
CIBlockType::Add(
 array arFields
);

Метод добавляет новый тип информационных блоков. Этот метод не может быть использован как статическая функция. В случае ошибки в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Параметры метода

Параметр | Описание
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockType::Delete

bool
CIBlockType::Delete(
 string ID
);

Функция удаляет тип информационных блоков по его коду ID.

Параметры функции

Параметр | Описание
ID | Код типа.

Возвращаемое значение

Возвращается true в случае успешного удаления, иначе возвращает false.

Примеры использования

<?
$DB->StartTransaction();
if(!CIBlockType::Delete('catalog'))
{
    $DB->Rollback();
    echo 'Delete error!';
}
$DB->Commit();
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockType::GetByID

CDBResult
CIBlockType::GetByID(
 string ID
);

Возвращает тип информационных блоков по его коду ID.

Параметры функции

Параметр | Описание
ID | Код типа.

Возвращаемое значение

Возвращается объект CDBResult.

См. также

  • CDBResult
  • Поля CIBlockType


GetByIDLang

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockType::GetByIDLang

mixed
CIBlockType::GetByIDLang(
 string ID,
 string LANGUAGE_ID,
 bool bFindAny = true
);

Метод возвращает языковые настройки типа информационных блоков по его коду ID, для языка LANGUAGE_ID. Если для языка LANGUAGE_ID нет настроек и параметр bFindAny установлен в true, функция вернет настройки типа для языка по умолчанию.

Параметры функции

Параметр | Описание
ID | Код типа.

Возвращаемое значение

Если языковые настройки найдены, то метод возвратит массив полей типа информационных блоков, в противном случае метод вернет false.

См. также

  • Поля 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlockType::GetList

CDBResult
CIBlockType::GetList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array()
);

Возвращает список типов информационных блоков по фильтру arFilter с сортировкой arOrder.

Параметры функции

Параметр | Описание
arOrder | массив полей для сортировки, содержащий пары "поле сортировки"=>"направление сортировки". Поля сортировки могут принимать значения id - код типа; sort - индекс сортировки;
arFilter | Массив вида array("фильтруемое поле"=>"значение" [, ...]) может принимать значения 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>";
   }
}
?>


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();
?>


_CIBElement

_CIBElement - вспомогательный класс для работы с объектами, которые возвращает CIBlockResult::GetNextElement. Для получения различных характеристик элемента рекомендуется использовать именно этот класс, т.к. использование методов этого объекта позволяет более гибко и эффективно работать с элементами информационных блоков.

Методы класса

Метод | Описание
GetFields | Возвращает массив полей элемента, с замененными ссылками в полях DETAIL_PAGE_URL и LIST_PAGE_URL.
GetProperties | Возвращает все или некоторые значения свойств элемента.
GetProperty | Возвращает значения свойства элемента.
GetGroups | Возвращает группы, к которым привязан элемент.


_CIBElement::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>';
}
?>


_CIBElement::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);
}
?>


_CIBElement::GetProperties

array
_CIBElement::GetProperties(
   arOrder = Array("sort" => "asc"),
   arFilter = Array()
);

Метод возвращает значения свойств текущего элемента информационного блока .

Параметры функции

Параметр Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
id - по ключу,
name - по имени свойства,
active - по активности свойства,
sort - по индексу сортировки свойства.
order - порядок сортировки, может принимать значения
asc - по возрастанию,
desc - по убыванию.
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения:
NAME - название свойства;
ID - код свойства;
ACTIVE - активность свойства (Y|N), по умолчанию выводятся только активные свойства, если необходимо вывести все значения, то установите ACTIVE в пустое значение;
PROPERTY_TYPE - тип свойства;
CODE - мнемонический код свойства;
EMPTY - пустота значения свойства (Y|N). По умолчанию выводятся все свойства и имеющие непустые значения и без значений.
Не обязательный параметр, по умолчанию равен array().

Возвращаемое значение

Метод возвращает массив значений свойств, где:
  • в качестве индексов массива "Символьный код свойства" (задается в настройках информационного блока) или, если символьный код свойства не указан, то уникальный числовой ID свойства.
  • значением массива будет массив полей свойства и дополнительно поля со значениями свойства:
    "VALUE" => "значение свойства или массив значений свойств, если свойство множественное",
    "VALUE_ENUM_ID" => "код варианта значения для свойства типа "Список" (массив или единичное значение)",
    "DESCRIPTION" => "описание значения свойства (массив или единичное значение)",
    "PROPERTY_VALUE_ID" => "код значения свойства (массив или единичное значение)"

    См. также

    • _CIBElement::GetProperties()
    • CIBlockElement::GetProperty()

    Примеры использования

<?
    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] =>
        )
)


_CIBElement::GetProperty

array
_CIBElement::GetProperty(
   mixed ID
);

Метод возвращает параметры свойства ID и его значения для текущего элемента информационного блока.

Параметры функции

Параметр | Описание
ID | Числовой или мнемонический код свойства.

Возвращаемое значение

Метод возвращает массив полей свойства и дополнительно поля со значениями свойства:
VALUE => значение свойства или массив значений свойств, если свойство множественное,
VALUE_ENUM_ID => код варианта значения для свойства типа "Список" (массив или единичное значение),
DESCRIPTION => описание значения свойства (массив или единичное значение),
PROPERTY_VALUE_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] =>
)


События, инфоблоки

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

События

Событие | Описание
OnBeforeIBlockAdd | Вызывается перед добавлением информационного блока.
OnAfterIBlockAdd | Вызывается после добавления информационного блока.
OnBeforeIBlockUpdate | Вызывается перед изменением информационного блока.
OnAfterIBlockUpdate | Вызывается после изменения информационного блока.
OnBeforeIBlockDelete | Вызывается перед удалением информационного блока.
OnIBlockDelete | Вызывается при удалении информационного блока.
OnBeforeIBlockPropertyAdd | Вызывается перед добавлением свойства.
OnAfterIBlockPropertyAdd | Вызывается после добавления свойства.
OnBeforeIBlockPropertyUpdate | Вызывается перед изменением свойства.
OnAfterIBlockPropertyUpdate | Вызывается после изменения свойства.
OnBeforeIBlockPropertyDelete | Вызывается перед удалением свойства.
OnBeforeIBlockSectionAdd | Вызывается перед добавлением раздела.
OnAfterIBlockSectionAdd | Вызывается после добавления раздела.
OnBeforeIBlockSectionUpdate | Вызывается перед изменением раздела.
OnAfterIBlockSectionUpdate | Вызывается после изменения раздела.
OnBeforeIBlockSectionDelete | Вызывается перед удалением раздела.
OnBeforeIBlockElementAdd | Вызывается перед добавлением элемента.
OnAfterIBlockElementAdd | Вызывается после добавления элемента.
OnBeforeIBlockElementUpdate | Вызывается перед изменением элемента.
OnAfterIBlockElementUpdate | Вызывается после изменения элемента.
OnBeforeIBlockElementDelete | Вызывается перед удалением элемента.
OnIBlockElementDelete | Вызывается при удалении элемента информационного блока.


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.

Параметры

Параметр | Описание
arFields | Массив полей нового элемента информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlockElement::Add и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

См. также

  • Событие "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"].").");
    }
}
?>


OnAfterIBlockElementUpdate

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockElementUpdate" вызывается после попытки изменения элемента информационного блока методом CIBlockElement::Update.

Параметры

Параметр | Описание
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"].").");
    }
}
?>


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.

См. также

  • Событие "OnAfterIBlockElementAdd"
  • CIBlockElement::Add
  • Обработка событий

Пример функции-обработчика:

<?
// файл /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;
        }
    }
}
?>


OnBeforeIBlockElementDelete

bool
функция-обработчик(
 int ID
);
Событие "OnBeforeIBlockElementDelete" вызывается перед удалением элемента методом CIBlockElement::Delete. Как правило задачи обработчика данного события - разрешить или запретить удаление.

Параметры

Параметр | Описание
ID | ID удаляемого элемента.

Возвращаемое значение

Для отмены удаления элемента и прекращении выполнения метода CIBlockElement::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

См. также

  • CIBlockElement::Delete
  • Обработка событий

Пример функции-обработчика:

<?
// файл /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;
        }
    }
}
?>


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;
            $APPLICATION->throwException("Введите мнемонический код.");
            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);
  }
}

// Теперь при удалении блока будет вызываться обработчик
?>


OnIBlockElementDelete

функция-обработчик(
   int ID
);

Вызывается в момент удаления элемента информационного блока.

Параметры

Параметр | Описание
ID | ID элемента информационного блока.

Примеры использования

<?
// Подключаем к событию обработчик
RegisterModuleDependences("iblock",
                          "OnIBlockElementDelete",
                          "catalog",
                          "CCatalogProduct",
                          "OnIBlockElementDelete");

// Реализуем обработчик
class CCatalogProduct
{
  * * *

  function OnIBlockElementDelete($PRODUCT_ID)
  {
    global $DB;
    echo "Удаляем...";
    return True;
  }
}

// Теперь при удалении элемента будет вызываться обработчик
?>


Функции для использования в публичной части

Метод | Описание
GetIBlockList | Возвращает список информационных блоков по фильтру.
GetIBlock | Возвращает информационный блок по заданному коду.
GetIBlockElementListEx | Возвращает список элементов по фильтру.
GetIBlockElementList | Возвращает список элементов из определённого информационного блока.
GetIBlockElement | Возвращает элемент по заданному коду.
GetIBlockSectionList | Возвращает список папок из определённого информационного блока.
GetIBlockSection | Возвращает раздел по заданному коду.


GetIBlock

array
GetIBlock(
 string ID,
 type = ""
);

Функция возвращает информационный блок по коду ID.

Параметры функции

Параметр | Описание
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.

Параметры функции

Параметр | Описание
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.

Параметры функции

Параметр | Описание
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) могут содержать перед названием тип проверки фильтра, а поля SECTION_ID и ACTIVE_DATE могут содержать перед названием тип проверки фильтра "!" - не равно.

Значения фильтра - одиночное значение или массив.

Необязательный. По умолчанию - пустой массив.
Полный список полей фильтра и дополнительную информацию смотрите в CIBlockElement::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#.

См. также

  • Поля элементов информационного блока
  • Функция 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.

Параметры функции

Параметр | Описание
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) могут содержать перед названием тип проверки фильтра, а поля 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 - записи не группируются.

Возвращаемое значение

Функция возвращает объект класса 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#.

См. также

  • 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.

Параметры функции

Параметр | Описание
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 Максимальное количество записей, которые вернет функция.
Необязательный. По умолчанию выбираются все записи.

Возвращаемое значение

Функция возвращает объект класса 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#.

См. также

  • Поля информационных блоков

Примеры использования

<?
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.

Параметры функции

Параметр | Описание
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("код свойства"=>"значение", ...).
Необязательное. По умолчанию записи не фильтруются дополнительно.

Все фильтруемые поля могут содержать перед названием тип проверки фильтра.

Полный список параметров фильтра и дополнительную информацию смотрите в CIBlockSection::GetList()

Возвращаемое значение

Функция возвращает объект класса CDBResult с активными разделами (находящиеся в активных информационных блоках (у которых установлен флаг "Активен"), и которые лежат внутри активных разделов).

Примечание

1. При работе с результатом рекомендуется применять метод класса CDBResult::GetNext(), результатом которого будет массив с полями раздела. Все поля при этом будут преобразованы в "HTML безопасный" вид. Если результат пуст или достигнут конец выборки CDBResult::GetNext() функция вернет false.

2. Поле для сортировки left_margin, так называемая "сквозная" сортировка, высчитывается на основании поля sort, уровня вложенности и сортировкой верхнего уровня. Отличие полей sort и left_margin в том, что sort указывается пользователем, для сортировки разделов между собой в пределах одного раздела-родителя, а вычисляемое left_margin предназначено для сортировки во всем информационном блоке.

См. также

  • Поля разделов информационных блоков

Примеры использования

<?
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");
?>


Информация для разработчиков

Перед использованием модуля необходимо проверить, установлен ли он и подключить его при помощи конструкции:

<?
if (CModule::IncludeModule("sale"))
{
   //здесь можно использовать функции модуля
}
?>

Некоторые термины модуля

Базовая валюта для данного сайта - валюта, в которой осуществляются операции по продаже товаров на данном сайте. Устанавливается на странице глобальных настроек модуля Интернет-Магазина. Понятие базовой валюты в модуле Интернет-Магазина отличается от понятия базовой валюты в модуле Валют.


Интеграция с платежными системами

Под платежными системами в этой статье понимаются любые способы оплаты заказа: как платежные системы, принимающие платежи 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).

В случае реализации собственного компонента оформления заказа структура и алгоритм работы обработчика платежной системы могут быть совершенно произвольными.


Создание собственных обработчиков служб доставки

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Создание собственных автоматизированных обработчиков служб доставки

В этом разделе

  • Структура обработчика
  • Описание обработчика
  • Параметры обработчика
  • Обработка параметров
  • Проверка совместимости
  • Обработчик
    •
  • Интеграция обработчика
  • Пример
  • 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("CDeliverySimple", "GetSettings"),
    "DBSETSETTINGS" => array("CDeliverySimple", "SetSettings"),
    "GETCONFIG" => array("CDeliverySimple", "GetConfig"),

    "COMPABILITY" => array("CDeliverySimple", "Compability"),
    "CALCULATOR" => array("CDeliverySimple", "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 = CDeliverySimple::__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'). Если отсутствует, то длительность не выводится.
    TEXT | Текст ошибки или текст, сопровождающий переход на следующий шаг (RESULT = {'ERROR'|'NEXT_STEP'}).
    TEMP | Строка, содержащая промежуточные данные, передаваемые следующему шагу (RESULT = 'NEXT_STEP').

    В описываемом нами примере многошаговый процесс не подразумевается, потому, расчёт осуществляется просто.

    Пример:

function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false)
{
  // служебный метод рассчета определён выше, нам достаточно переадресовать на выход возвращаемое им значение.
  return array(
    "RESULT" => "OK",
    "VALUE" => CDeliverySimple::__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("CDeliverySimple", "GetSettings"),
      "DBSETSETTINGS" => array("CDeliverySimple", "SetSettings"),
      "GETCONFIG" => array("CDeliverySimple", "GetConfig"),

      "COMPABILITY" => array("CDeliverySimple", "Compability"),
      "CALCULATOR" => array("CDeliverySimple", "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 = CDeliverySimple::__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" => CDeliverySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig)
    );
  }
}

// установим метод onSaleDeliveryHandlersBuildList в качестве обработчика события
AddEventHandler("sale", "onSaleDeliveryHandlersBuildList", array('CDeliveryMySimple', 'Init'));
?>

    Post factum

    Несколько советов в завершение:

    • Если Ваш обработчик использует какие-либо ресурсоемкие вычисления, обращения к базе данных, запросы к удаленным серверам и т.д., то категорически рекомендуется использовать тот или иной вариант кеширования результата, реализованный таким образом, чтобы запоминались результаты хотя бы для заказа с данными параметрами. Это необходимо из-за того, что в процессе оформления и обработки заказа запрос к обработчику на расчёт стоимости заказа может происходить несколько раз. В поставляемых обработчиках используется механизм управляемого кеширования, настроенный с учётом специфики алгоритма вычисления стоимости конкретной службой доставки.
    • Для кастомизации системного обработчика достаточно скопировать его файл (вместе с сопутствующими файлами, лежащими обычно в каталоге с тем же названием) в каталог /bitrix/php_interface/include/sale_deivery/ с сохранением имени. В этом случае он будет подключаться вместо системного.

    См. также

  • Кеширование
  • События
  • AddEventHandler
    •


Загрузка каталога из 1С в 1С-Битрикс

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Загрузка каталога из 1С в «1С-Битрикс: Управление сайтом»

Данный раздел описывает протокол обмена информацией между программным комплексом «1С: Предприятие 8.1» и «1С-Битрикс: Управление сайтом».

Инициатором обмена во всех случаях выступает «1С: Предприятие». Обмен производится в формате CommerceML 2.0 (CML 2.0).

Формат обмена является открытым, рекомендуется использовать его для реализации собственных решений по интеграции.

Загрузка каталога из 1С в «1С-Битрикс: Управление сайтом»

  1. Загрузка каталога начинается с того, что 1С отправляет http-запрос вместе с http-авторизацией следующего вида:
    http://<сайт>/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth

    На этот запрос система «1С-Битрикс: Управление сайтом» отвечает тремя строками (используется разделитель строк "\n"):
    1. слово "success";
    2. имя Cookie;
    3. значение Cookie.

    Примечание:
    Все последующие запросы к 1С-Битрикс сопровождаются выставлением со стороны 1С имени и значения Cookie, полученными по команде "checkauth".

  2. Далее следует запрос вида:
    http://<сайт>/bitrix/admin/1c_import.php?mode=init

    В ответ 1С-Битрикс выдает две строчки:
    1. zip=yes, если сервер поддерживает обмен в zip-формате. В этом случае файлы на следующем шаге должны быть упакованы в zip-формате
      или
      zip=no, в таком случае файлы не должны быть упакованы, а передаются каждый по отдельности.
    2. file_limit=<число>, где <число> - максимально допустимый размер файла в байтах для передачи за один запрос. Если размер файла больше, то он должен быть порезан на части.
  3. Затем 1С запросами вида:
    http://<сайт>/bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=<имя файла>
    загружает на сервер файлы обмена в формате CommerceML 2, посылая содержимое файла или его части в виде POST.

    В случае успешной записи файла 1С-Битрикс выдает "success".
  4. На последнем шаге по запросу из 1С проводится пошаговая загрузка каталога:
    http://<сайт>/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=<имя файла>

    Во время загрузки система «1С-Битрикс: Управление сайтом» может отвечать в одном из следующих форматов:
    1. Если в первой строке содержится слово "progress" - это означает необходимость послать тот же запрос повторно. В этом случае во второй строке будет возвращен текущий статус обработки, объем загруженных данных, статус импорта и т.д.
    2. Если в строке содержится слово "success", то это сообщает об успешном окончании обработки файла <имя файла>.

Примечание:
Если в ходе какого-либо запроса произошла ошибка, то ответ системы 1С-Битрикс будет иметь вид: в первой строке слово "failure", а на следующих - описание ошибки, произошедшей в процессе обработки запроса.

Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то в таком случае будет возвращен html-код.


Протокол загрузки данных из 1С в 1С-Битрикс

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Обмен заказами с «1С: Предприятие 8.1»

Данный раздел описывает протокол обмена информацией между программным комплексом «1С: Предприятие 8.1» и «1С-Битрикс: Управление сайтом».

Инициатором обмена во всех случаях выступает «1С: Предприятие». Обмен производится в формате CommerceML 2.0 (CML 2.0).

Формат обмена является открытым, рекомендуется использовать его для реализации собственных решений по интеграции.

Аналогично загрузке каталога в 1С-Битрикс происходит и обмен заказами с 1С:

  1. Обмен заказами начинается с того, что 1С посылает http-запрос вместе с http-авторизацией следующего вида: http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=checkauth

    На этот запрос система 1С-Битрикс отвечает тремя строками (используется разделитель строк "\n"):
    1. слово "success";
    2. имя Cookie;
    3. значение Cookie.

    Примечание:
    все последующие запросы к 1С-Битрикс сопровождаются выставлением со стороны 1С имени и значения Cookie, полученными по команде "checkauth".

  2. Далее следует запрос 1С вида:
    http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=init

    В ответ 1С-Битрикс выдает две строчки:
    1. zip=yes, если сервер поддерживает обмен в zip-формате. В этом случае файлы на следующем шаге должны быть упакованы в zip-формате
      или
      zip=no, в таком случае файлы не должны быть упакованы, а передаются каждый по отдельности.
    2. file_limit=<число>, где <число> - максимально допустимый размер файла в байтах для передачи за один запрос. Если размер файла больше, то он должен быть порезан на части.
  3. Затем отправляется запрос вида:
    http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=query

    Сайт отдает заказы в формате CML 2. В случае успешного получения и записи заказов в 1С совершается запрос вида:
    http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=success
  4. Затем из 1С отправляется запрос вида:
    http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=file&filename=<имя файла>
    который загружает на сервер файл обмена, посылая содержимое файла в виде POST.

    В случае успешной записи файла 1С-Битрикс выдает "success". Дополнительно на следующих строчках могут содержаться замечания по загрузке.

Примечание:
Если в ходе какого-либо запроса произошла ошибка, то ответ системы 1С-Битрикс будет иметь вид:
в первой строке слово "failure", а на следующих - описание ошибки, произошедшей в процессе обработки запроса.
Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то в таком случае будет возвращен html-код.


Классы модуля магазина

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Классы

Следующие PHP классы используются в модуле интернет-магазина.

Классы

Класс | Описание
CSaleAuxiliary | Класс для облегчения предоставления платного доступа к ресурсам.
CSaleBasket | Класс для работы с корзиной покупателей.
CSaleDelivery | Класс для работы со службами (методами) доставки.
CSaleDiscount | Класс для работы со скидками на сумму заказа.
CSaleLocation | Класс для работы с местоположениями.
CSaleLocationGroup | Класс для работы с группами местоположений.
CSaleOrder | Класс для работы с заказами.
CSaleOrderProps | Класс для работы с набираемыми свойствами заказов.
CSaleOrderPropsGroup | Класс для работы с группами свойств заказов.
CSaleOrderPropsValue | Класс для работы со значениями свойств заказов.
CSaleOrderPropsVariant | Класс для работы с вариантами значений свойств заказов.
CSaleOrderTax | Класс для работы с суммами налогов, которые начисляются для каждого заказа.
CSaleOrderUserProps | Класс для работы с профилями покупателей.
CSaleOrderUserPropsValue | Класс для работы со значениями свойств заказов, сохраняемыми в профилях покупателей.
CSalePaySystem | Класс для работы с платежными системами.
CSalePaySystemAction | Класс для работы с обработчиками платежных систем.
CSalePersonType | Класс для работы с типами плательщиков.
CSaleRecurring | Класс для работы с возобновляемыми подписками.
CSaleStatus | Класс для работы со статусами заказов.
CSaleTax | Класс для работы с налогами.
CSaleTaxRate | Класс для работы со ставками налогов.
CSaleUserAccount | Класс для работы с внутренними счетами клиентов.
CSaleUserCards | Класс для работы с платежными картами.
CSaleUserTransact | Класс для работы с платежными транзакциями.


CSaleAuxiliary

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleAuxiliary

Методы класса

Метод | Описание
DeleteByTime | Метод удаляет всю информацию о временном доступе, которая старше указанного времени.
DeleteByUserID | Метод удаляет всю информацию о временном доступе пользователя с кодом userID.
GetByID | Метод выбирает параметры информации о временном доступе с кодом ID.
GetByParams | Метод выбирает параметры информации о временном доступе к ресурсу с идентификатором itemMD5 для пользователя с кодом userID.
GetList | Функция возвращает результат выборки записей информации о временном доступе в соответствии со своими параметрами.
Update | Метод изменяет параметры записи с кодом ID информации о временном доступе к ресурсу в соответствии с данными из массива arFields.
Add | Метод добавляет новую запись с информацией о временном доступе к ресурсу в соответствии с данными из массива arFields.
CheckAccess | Метод проверяет, может ли посетитель с кодом userID получить доступ к ресурсу с идентифицирующей строкой itemMD5.
Delete | Метод удаляет информацию о временном доступе с кодом ID.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleAuxiliary::Add

int
CSaleAuxiliary::Add(
 array arFields
);

Метод добавляет новую запись с информацией о временном доступе к ресурсу в соответствии с данными из массива arFields.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров новой информации о временном доступе к ресурсу, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • USER_ID - код пользователя;
  • ITEM - ресурс, доступ к которому разрешен;
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс);
  • DATE_INSERT - дата вставки записи.

Возвращаемые значения

Метод возвращает код вставленной записи или false в случае ошибки.


CheckAccess

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleAuxiliary::Delete

bool
CSaleAuxiliary::Delete(
 int ID
);

Метод удаляет информацию о временном доступе с кодом ID.

Параметры функции

Параметр | Описание
ID | Код записи.

Возвращаемые значения

true в случае успешного удаления и false в противном случае.


DeleteByTime

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleAuxiliary::DeleteByUserID

bool
CSaleAuxiliary::DeleteByUserID(
 int userID
);

Метод удаляет всю информацию о временном доступе пользователя с кодом userID.

Параметры функции

Параметр | Описание
userID | Код пользователя.

Возвращаемые значения

true в случае успешного удаления и false в противном случае.


GetByID

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleAuxiliary::GetByID

array
CSaleAuxiliary::GetByID(
 int ID
);

Метод выбирает параметры информации о временном доступе с кодом ID.

Параметры функции

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров информации о временном доступе с ключами:

  • ID - код записи;
  • USER_ID - код пользователя;
  • ITEM - ресурс, доступ к которому разрешен;
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс);
  • TIMESTAMP_X - дата изменения;
  • DATE_INSERT - дата вставки записи.


GetByParams

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleAuxiliary::GetByParams

array
CSaleAuxiliary::GetByParams(
 int userID,
 string itemMD5
);

Метод выбирает параметры информации о временном доступе к ресурсу с идентификатором itemMD5 для пользователя с кодом userID.

Параметры функции

Параметр | Описание
userID | Код пользователя.
itemMD5 | Идентификатор ресурса (строка, однозначно идентифицирующая ресурс).

Возвращаемые значения

Метод возвращает ассоциативный массив параметров информации о временном доступе с ключами:

  • ID - код записи
  • USER_ID - код пользователя
  • ITEM - ресурс, доступ к которому разрешен
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс)
  • TIMESTAMP_X - дата изменения
  • DATE_INSERT - дата вставки записи


GetList

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleAuxiliary::Update

int
CSaleAuxiliary::Update(
 int ID,
 array arFields
);

Метод изменяет параметры записи с кодом ID информации о временном доступе к ресурсу в соответствии с данными из массива arFields.

Параметры функции

Параметр | Описание
ID | Код записи.
arFields Ассоциативный массив параметров новой информации о временном доступе к ресурсу, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • USER_ID - код пользователя;
  • ITEM - ресурс, доступ к которому разрешен;
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс);
  • DATE_INSERT - дата вставки записи.

Возвращаемые значения

Метод возвращает код измененной записи или false в случае ошибки.


CSaleBasket

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleBasket

Методы класса

Метод | Описание
Init | Функция инициализирует внутренний код владельца корзины.
Update | Функция обновляет параметры товара с кодом ID на основании массива arFields.
GetByID | Функция возвращает параметры записи корзины с кодом ID
GetList | Функция возвращает результат выборки записей из корзины в соответствии со своими параметрами.
UpdatePrice | Функция актуализирует параметры записи с кодом ID корзины на основании функции обратного вызова для поддержки актуальности корзины.
OrderBasket | Функция привязывает к заказу с кодом OrderID товары из корзины, которые доступны к покупке и не являются отложенными.
Add | Функция добавляет товар в корзину, если его ещё нет, и обновляет параметры товара с увеличением количества, если он уже находится в корзине.
GetBasketUserID | Функция возвращает внутренний код владельца корзины.
Delete | Функция удаляет запись корзины с кодом ID.
Delete | Функция удаляет из корзины все записи с внутренним кодом владельца fUserID.


CSaleBasket::Add

int
CSaleBasket::Add(
  array arFields
);

Функция добавляет товар в корзину, если его ещё нет, и обновляет параметры товара с увеличением количества, если он уже находится в корзине. В массиве arFields перечисляются все параметры товара, которые нужны для работы модуля Интернет-магазина (т.е. этот модуль не зависит от других модулей и работает полностью самостоятельно).

Интернет-магазин не зависит от других модулей, поэтому товары в корзину модуля продаж могут добавляться из любого места (например, из торгового каталога или со статической страницы). Для некоторых модулей существуют функции - оболочки, облегчающие добавление товара в корзину (например, для модуля catalog существуют функции Add2Basket и Add2BasketByProductID).

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров элемента корзины, содержащий следующие ключи:
  • 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 - ссылка на страницу детального просмотра товара;
  • CANCEL_CALLBACK_FUNC - название функции обратного вызова для отмены заказа (описание ниже);
  • PAY_CALLBACK_FUNC - название функции обратного вызова, которая вызывается при установке флага "Доставка разрешена" заказа;
  • PROPS - массив свойств товара, который сохраняется в корзине. Каждый элемент этого массива является массивом следующего формата:
    array("NAME"  => "Название свойства",
      "CODE"  => "Код свойства",
      "VALUE" => "Значение свойства",
      "SORT"  => "Индекс сортировки")

Возвращаемые значения

Функция возвращает код элемента корзины, в который попал данный товар.

Пример использования

<?
if (CModule::IncludeModule("sale"))
{
  $arFields = array(
    "PRODUCT_ID" => 51,
    "PRODUCT_PRICE_ID" => 0,
    "PRICE" => 138.54,
    "CURRENCY" => "RUR",
    "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);
}
?>

Функция обратного вызова для поддержки актуальности корзины

Функция обратного вызова вызывается (если установлена) при каждом чтении корзины для обновления параметров содержащихся в корзине товаров. Например, если после добавления товара в корзину изменилась его цена или товар сняли с продажи, то использование функции обратного вызова позволяет соответственно обновить данные в корзине. В поле CALLBACK_FUNC записывается только имя функции обратного вызова. Для некоторых модулей функции обратного вызова уже написаны (например, для модуля catalog функция обратного вызова называется CatalogBasketCallback($PRODUCT_ID, $QUANTITY = 0, $renewal = "N"))

array CALLBACK_FUNC(
 int PRODUCT_ID [,
 int QUANTITY,
 char renewal]
);

Функция обратного вызова должна возвращать массив той же структуры, что и входной массив функции CSaleBasket::Add(array arFields). Если функция возвращает пустой массив, то это означает, что данный товар не доступен для покупки.

Параметры функции обратного вызова

PRODUCT_ID
Код товара, находящегося в корзине.
QUANTITY
Количество товаров в корзине.
renewal
Равен "Y", если функция вызывается для продления подписки, и "N" в остальных случаях.
Пример создания функции обратного вызова

<?
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" => "RUR",
    "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))

void ORDER_CALLBACK_FUNC(
 int PRODUCT_ID,
 int QUANTITY
);

Функция не возвращает значений.

Параметры функции обратного вызова заказа

PRODUCT_ID
Код товара, находящегося в корзине.
QUANTITY
Количество товаров в корзине.
Пример создания функции обратного вызова заказа

<?
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

Код товара, находящегося в корзине.

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;
}


CSaleBasket::Delete

bool
CSaleBasket::Delete(
 int ID
);

Функция удаляет запись корзины с кодом ID.

Пример использования

<?
if (CSaleBasket::Delete(22))
    echo "Запись успешно удалена";
?>


CSaleBasket::DeleteAll

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleBasket::Delete

bool
CSaleBasket::DeleteAll(
 int fUserID[,
 bool bIncOrdered = false]
);

Функция удаляет из корзины все записи с внутренним кодом владельца fUserID.

Параметры функции

Параметр | Описание
fUserID | Внутренний код владельца.
bIncOrdered | Если флаг равен false (по-умолчанию), то удаляются только записи из корзины. Если флаг равен true, то удаляются и те записи, которые относятся к уже сделанным заказам.

Пример использования

<?
if (CSaleBasket::DeleteAll(3, False))
    echo "Корзина пользователя с внутренним кодом 3 успешно удалена";
?>


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 | Название функции обратного вызова, которая вызывается при установке флага заказа "Доставка разрешена".

Обратите внимание, что этот метод возвращает данные, которые были актуальны на момент последнего выполнения для этой записи функции обратного вызова для поддержки актуальности корзины (либо на момент добавления записи, если функция обратного вызова не выполнялась или не установлена).

Пример использования

<?
// Выведем актуальную корзину для текущего пользователя

$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>";
?>


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() - означает, что результат отфильтрован не будет.
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 | Название функции обратного вызова для оформления заказа.
DETAIL_PAGE_URL | Ссылка на страницу детального просмотра товара.
FUSER_ID | Внутренний код владельца корзины (не совпадает с кодом пользователя)
ORDER_ID | Код заказа, в который вошла эта запись (товар). Для товаров, которые помещены в корзину, но ещё не заказаны, это поле равно NULL.
DATE_INSERT | Дата добавления товара в корзину.
DATE_UPDATE | Дата последнего изменения записи.
CANCEL_CALLBACK_FUNC | Название функции обратного вызова для отмены заказа.
PAY_CALLBACK_FUNC | Название функции обратного вызова, которая вызывается при установке флага заказа "Доставка разрешена".
DISCOUNT_PRICE | Скидка на товар. Значение устанавливается только после оформления заказа.

Если в качестве параметра arGroupBy передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выведем актуальную корзину для текущего пользователя

$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>";
?>


CSaleBasket::GetBasketUserID

int
CSaleBasket::GetBasketUserID();

Функция возвращает внутренний код владельца корзины.

Пример использования

<?
// Выберем записи корзины текущего пользователя

$dbBasketItems = CSaleBasket::GetList(
        array(
                "NAME" => "ASC",
                "ID" => "ASC"
                ),
        array(
                "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                "LID" => SITE_ID,
                "ORDER_ID" => "NULL"
                ),
        false,
        false,
        array()
        );
?>


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 и пустая строка так же удовлетворяют условиям фильтра,
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поля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>";
}
?>


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"));
?>


CSaleBasket::OrderBasket

CSaleBasket::OrderBasket(
  int OrderID,
  int FUSER_ID = 0,
  string strLang = SITE_ID,
  array arDiscounts = false
);

Функция привязывает к заказу с кодом OrderID товары из корзины, которые доступны к покупке и не являются отложенными. Эта функция выполняется при оформлении заказа на товары корзины.

Параметры функции

Параметр | Описание
OrderID | Код заказа, к которому привязываются товары из корзины.
FUSER_ID | Внутренний код владельца корзины. Если не установлен (равен нулю) или текущий пользователь не имеет прав на запись на модуль Интернет-магазина, то берется внутренний код для текущего пользователя.
strLang | Сайт, корзина которого отправляется в заказ. Если не установлен, то берется текущий сайт.
arDiscounts | Ассоциативный массив величин скидок, в котором кодами являются коды записей в корзине, а значениями - соответствующие величины скидок. Если не установлен (равен false), то скидки не сохраняются.

Пример использования

<?
// Привяжем записи корзины текущего пользователя на текущем сайте к заказу с кодом $ORDER_ID
// Установим, что скидка была 5%

$arDiscounts = array();

$arRes = GetBasketList();
for ($i = 0; $i<count($arRes); $i++)
{
   if ($arRes[$i]["DELAY"]=="N" && $arRes[$i]["CAN_BUY"]=="Y")
   {
      $curDiscount = roundEx(DoubleVal($arRes[$i]["PRICE"])*5/100, 2);
      $arDiscounts[IntVal($arRes[$i]["ID"])] = $curDiscount;
   }
}

// Здесь создаем заказ и учитываем в его цене величину скидки
 * * *
// Теперь в $ORDER_ID записан код заказа

CSaleBasket::OrderBasket($ORDER_ID, $_SESSION["SALE_USER_ID"], SITE_ID, $arDiscounts);
?>


CSaleBasket::Update

int
CSaleBasket::Update(
 int ID,
 array arFields
);

Функция обновляет параметры товара с кодом ID на основании массива arFields.

Параметры функции

Параметр | Описание
ID | Код элемента корзины.
arFields Ассоциативный массив новых параметров элемента корзины, содержащий следующие ключи:
  • PRODUCT_ID - уникальный в рамках модуля код товара;
  • PRODUCT_PRICE_ID - дополнительный код товара;
  • PRICE - стоимость единицы товара ;
  • CURRENCY - валюта стоимости единицы товара;
  • WEIGHT - вес единицы товара;
  • QUANTITY - количество единиц товара, если значение элемента массива с этим ключем равно нулю, то товар удаляется из корзины;
  • LID - сайт, на котором сделана покупка;
  • DELAY - флаг "товар отложен" (Y/N);
  • CAN_BUY - флаг "товар можно купить" (Y/N) - может устанавливаться автоматически про наличии функции обратного вызова для поддержки актуальности корзины;
  • NAME - название товара (обязательное поле);
  • CALLBACK_FUNC - название функции обратного вызова для поддержки актуальности корзины (подробности в описании метода CSaleBasket::Add);
  • MODULE - модуль, добавляющий файл в корзину;
  • NOTES - особые заметки, например, тип цены;
  • ORDER_CALLBACK_FUNC - название функции обратного вызова для оформления заказа (подробности в описании метода CSaleBasket::Add);
  • DETAIL_PAGE_URL - ссылка на страницу детального просмотра товара;
  • PROPS - массив свойств товара, который сохраняется в корзине. Каждый элемент этого массива является массивом следующего формата:
    array("NAME"  => "Название свойства",
      "CODE"  => "Код свойства",
      "VALUE" => "Значение свойства",
      "SORT"  => "Индекс сортировки")

Возвращаемые значения

Функция возвращает код элемента корзины, который был изменен.

Пример использования

<?
// Изменим количество товара в записи $ID корзины на 2 штуки и отложим товар
$arFields = array(
   "QUANTITY" => 2,
   "DELAY" => "Y"
);
CSaleBasket::Update($ID, $arFields);
?>


CSaleBasket::UpdatePrice

CSaleBasket::UpdatePrice(
  int ID,
  string CALLBACK_FUNC = "",
  string MODULE = "",
  int PRODUCT_ID = 0,
  int QUANTITY = 0
);

Функция актуализирует параметры записи с кодом ID корзины на основании функции обратного вызова для поддержки актуальности корзины CALLBACK_FUNC

Параметры функции

Параметр | Описание
ID | Код записи в корзине.
CALLBACK_FUNC | Название функции обратного вызова для поддержки актуальности корзины.
MODULE | Модуль, добавивший товар в корзину.
PRODUCT_ID | Код товара.
QUANTITY | Количество товара в корзине.

Пример использования

<?
// 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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleDelivery

Методы класса

Метод | Описание
GetByID | Функция возвращает параметры службы доставки с кодом ID
GetLocationList | Функция возвращает набор местоположений по фильтру arFilter
Update | Функция изменяет параметры доставки с кодом ID на новые значения из массива arFields
Delete | Функция удаляет доставку с кодом ID
GetList | Функция возвращает результат выборки записей из служб доставки в соответствии со своими параметрами.
Add | Функция добавляет новый способ (службу) доставки с параметрами из массива arFields


CSaleDelivery::Add

int
CSaleDelivery::Add(
  array arFields
);

Функция добавляет новый способ (службу) доставки с параметрами из массива arFields

Параметры функции

Параметр Описание
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" => "RUR",
   "ACTIVE" => "Y",
   "PRICE" => 58,
   "CURRENCY" => "RUR",
   "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 "Ошибка добавления доставки";
?>


CSaleDelivery::Delete

bool
CSaleDelivery::Delete(
  int ID
);

Функция удаляет доставку с кодом ID

Параметры функции

Параметр | Описание
ID | Код доставки.

Возвращаемые значения

Возвращает true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSaleDelivery::Delete(8);
?>


CSaleDelivery::GetByID

array
CSaleDelivery::GetByID(
  int ID
);

Функция возвращает параметры службы доставки с кодом ID

Параметры функции

Параметр | Описание
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"]);
}
?>


CSaleDelivery::GetList

CDBResult
CSaleDelivery::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("+<=WEIGHT_FROM" => 1000)
Этот фильтр означает "выбрать все записи, в которых значение в поле WEIGHT_FROM (вес от) меньше либо равно 1000 или значение не установлено (null или ноль)".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи служб доставки. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле служб доставки. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса 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
{
   else "Доступных способов доставки не найдено<br>";
}
?>


CSaleDelivery::GetLocationList

CDBResult
CSaleDelivery::GetLocationList(
  array arFilter = Array()
);

Функция возвращает набор местоположений по фильтру arFilter

Параметры функции

Параметр Описание
arFilter Фильтр представляет собой ассоциативный массив, в котором ключами являются названия параметров, а значениями - условия.

Допустимые ключи:
  • DELIVERY_ID - код доставки;
  • LOCATION_ID - код местоположения или группы местоположений;
  • LOCATION_TYPE - тип (L - местоположение, G - группа местоположений).

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
DELIVERY_ID | Код службы доставки.
LOCATION_ID | Код местоположения или группы местоположений.
LOCATION_TYPE | Тип (L - местоположение, G - группа местоположений)


CSaleDelivery::Update

int
CSaleDelivery::Update(
  int ID,
  array arFields
);

Функция изменяет параметры доставки с кодом ID на новые значения из массива arFields

Параметры функции

Параметр | Описание
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" => "RUR",
   "ACTIVE" => "Y",
   "PRICE" => 58,
   "CURRENCY" => "RUR",
   "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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleDeliveryHandler

Методы класса

Метод | Описание
GetList | Функция возвращает список обработчиков автоматизированных служб доставки, для которых установлены настройки в БД.
GetAdminList | Функция возвращает список всех имеющихся обработчиков автоматизированных служб доставки.
GetBySID | Функция служит для получения информации о конкретном обработчике по его строковому идентификатору.
GetHandlerCompability | Функция возвращает список профилей обработчика, подходящих конкретному заказу.
Calculate | Вызов одного шага расчёта стоимости доставки.
CalculateFull | Вызов полного цикла расчёта стоимости доставки.


CSaleDeliveryHandler::Calculate

array
CSaleDeliveryHandler::Calculate(
 int STEP,
 string SID,
 string profile,
 array arOrder,
 string currency,
 mixed TMP = false,
 mixed SITE_ID = false
);

Вызов одного шага расчёта стоимости доставки.

Параметры функции

Параметр | Описание
STEP | Текущий шаг расчёта.
SID | Строковый идентификатор обработчика.
profile | Идентификатор профиля обработчика.
arOrder Массив заказа:
  • WEIGHT - суммарный вес заказа в граммах;
  • PRICE - суммарная стоимость заказа в базовой валюте магазина;
  • LOCATION_FROM - ID местоположения магазина, настраиваемого в настройках модуля "Интернет-магазин";
  • LOCATION_TO - ID местоположения, указываемого клиентом при оформлении заказа.
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').


CSaleDeliveryHandler::CalculateFull

array
CSaleDeliveryHandler::CalculateFull(
    string SID,
    string profile,
    array arOrder,
    string currency,
    mixed SITE_ID = false
);

Вызов полного цикла расчёта. В случае, если обработчик службы доставки осуществляет расчёт за один шаг, метод аналогичен CSaleDeliveryHandler::Calculate(). В противном случае метод автоматически выполнит переход на следующий шаг расчёта.

Параметры функции

Параметр | Описание
SID | Строковый идентификатор обработчика.
profile | Идентификатор профиля обработчика.
arOrder Массив заказа:
  • WEIGHT - суммарный вес заказа в граммах;
  • PRICE - суммарная стоимость заказа в базовой валюте магазина;
  • LOCATION_FROM - ID местоположения магазина, настраиваемого в настройках модуля "Интернет-магазин";
  • LOCATION_TO - ID местоположения, указываемого клиентом при оформлении заказа.
currency | Идентификатор валюты.
SITE_ID | Идентификатор сайта. По умолчанию используется текущий.

Возвращаемые значения

Возвращается ассоциативный массив следующей структуры:

Ключ | Описание
RESULT Идентификатор ответа. Возможные значения:
  • "OK" - стоимость доставки успешно рассчитана;
  • "ERROR" - в процессе расчёта произошла ошибка.
VALUE | Значение стоимости доставки в валюте, задаваемой в параметрах метода - currency. (RESULT = 'OK').
TRANSIT | Длительность доставки в днях (RESULT = 'OK'). Если обработчик доставки не возвращает длительность, то этот параметр отсутствует.
TEXT | Текст ошибки (RESULT = 'ERROR').

Пример использования

$arOrder = array(
  "ORDER_WEIGHT" => "10", // вес заказа в граммах
  "ORDER_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('Обработчик не найден!');
}


CSaleDeliveryHandler::GetAdminList

CDBResult
CSaleDeliveryHandler::GetAdminList(
array arSort = array("SORT" => "ASC")
);

Функция возвращает список всех имеющихся обработчиков. Список обработчиков строится на основе события onSaleDeliveryHandlersBuildList.

Параметры функции

Параметр Описание
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>';


CSaleDeliveryHandler::GetBySID

CDBResult
CSaleDeliveryHandler::GetBySID(
string SID,
mixed SITE_ID = false
);

Данная функция служит для получения информации по конкретному обработчику по его строковому идентификатору.

Параметры функции

Параметр | Описание
SID | Строковый идентификатор обработчика.
SITE_ID | Идентификатор сайта. По умолчанию используется текущий.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий запись со структурой, аналогичной CSaleDeliveryHandlers::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 'Обработчик не найден';
}


CSaleDeliveryHandler::GetHandlerCompability

array|bool
CSaleDeliveryHandler::GetHandlerCompability(
array arOrder,
 array arHandler,
 mixed SITE_ID = SITE_ID
);

Функция возвращает список профилей обработчика, подходящих данному заказу. Осуществляется проверка по весу и стоимости, а также вызывается метод COMPABILITY обработчика.

Параметры функции

Параметр | Описание
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" => "флаг_активности_профиля",
    ),
/* ................... */
)


CSaleDeliveryHandler::GetList

CDBResult
CSaleDeliveryHandler::GetList(
array arSort = array("SORT" => "ASC"),
 array arFilter = array()
);

Функция возвращает список обработчиков автоматизированных служб доставки, для которых установлены настройки в БД.

Параметры функции

Параметр Описание
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 к методу обработчика, возвращающему список настроек обработчика.
COMPABILITY | 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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleDiscount

Методы класса

Метод | Описание
GetList | Функция возвращает результат выборки записей из служб доставки в соответствии со своими параметрами.
GetByID | Функция возвращает параметры скидки с кодом ID
Update | Функция обновляет параметры скидки с кодом ID на параметры из массива arFields
Delete | Функция удаляет скидку с кодом ID
Add | Функция добавляет новую скидку на сумму заказа с параметрами из массива arFields.


CSaleDiscount::Add

int
CSaleDiscount::Add(
  array arFields
);

Функция добавляет новую скидку на сумму заказа с параметрами из массива arFields.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров скидки, ключами в котором являются названия параметров скидки, а значениями - значения параметров.

Допустимые ключи:
  • LID - код сайта, к которому привязана эта скидка;
  • PRICE_FROM - общая стоимость заказа, начиная с которой предоставляется эта скидка;
  • PRICE_TO - общая стоимость заказа, до достижения которой предоставляется эта скидка;
  • CURRENCY - валюта денежных полей в записи;
  • DISCOUNT_VALUE - величина скидки;
  • DISCOUNT_TYPE - тип величины скидки (P - величина задана в процентах, V - величина задана в абсолютной сумме);
  • ACTIVE - флаг (Y/N) активности скидки;
  • SORT - индекс сортировки (если по сумме заказа доступно несколько скидок, то берется первая по сортировке)

Возвращаемые значения

Возвращается код добавленной скидки или false в случае ошибки.


CSaleDiscount::Delete

bool
CSaleDiscount::Delete(
  int ID
);

Функция удаляет скидку с кодом ID

Параметры функции

Параметр | Описание
ID | Код скидки.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


CSaleDiscount::GetByID

array
CSaleDiscount::GetByID(
  int ID
);

Функция возвращает параметры скидки с кодом ID

Параметры функции

Параметр | Описание
ID | Код скидки.

Возвращаемые значения

Ассоциативный массив параметров скидки с ключами:

Ключ | Описание
ID | Код скидки.
LID | Код сайта, к которому привязана эта скидка.
PRICE_FROM | Общая стоимость заказа, начиная с которой предоставляется эта скидка.
PRICE_TO | Общая стоимость заказа, до достижения которой предоставляется эта скидка.
CURRENCY | Валюта денежных полей в записи.
DISCOUNT_VALUE | Величина скидки.
DISCOUNT_TYPE | Тип величины скидки (P - величина задана в процентах, V - величина задана в абсолютной сумме).
ACTIVE | Флаг (Y/N) активности скидки.
SORT | Индекс сортировки (если по сумме заказа доступно несколько скидок, то берется первая по сортировке).


CSaleDiscount::GetList

CDBResult
CSaleDiscount::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("!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 | Индекс сортировки (если по сумме заказа доступно несколько скидок, то берется первая по сортировке).

Если в качестве параметра arGroupBy передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выберем величину активной скидки для текущего сайта и стоимости
// заказа $ORDER_PRICE (в базовой валюте этого сайта)
$db_res = CSaleDiscount::GetList(
        array("SORT" => "ASC"),
        array(
                "LID" => SITE_ID,
                "ACTIVE" => "Y",
                "PRICE" => $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"]);
   }
}
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleLocation

Методы класса

Метод | Описание
GetCountryByID | Функция возвращает языконезависимые параметры страны с кодом ID
GetCountryLangByID | Функция возвращает языкозависимые параметры страны по ее коду ID и языку strLang
GetCityByID | Функция возвращает языконезависимые параметры города с кодом ID
GetCityLangByID | Функция возвращает языкозависимые параметры города по его коду ID и языку strLang
UpdateCountry | Функция изменяет параметры страны с кодом ID на новые параметры из массива arFields
DeleteCountry | Функция удаляет страну с кодом ID. Связаные с этой страной местоположения не изменяются.
UpdateCity | Функция изменяет параметры города с кодом ID на значения из массива arFields
DeleteCity | Функция удаляет город с кодом ID. Местоположение, с которым связан этот город, не изменяется.
UpdateLocation | Функция обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields.
Add | Функция добавляет новое местоположение включая страну и город местоположения, если нужно.
Update | Функция обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields. Обновляются также страна и город этого местоположения.
Delete | Функция удаляет местоположение с кодом ID. Функция также удаляет город этого местоположения, страну этого местоположения (если она не входит больше ни в одно другое местоположение), а так же связи этого местоположения с группами местоположений и службами доставки.
GetList | Функция возвращает набор местоположений, удовлетворяющих фильтру arFilter.
GetByID | Функция возвращает параметры местоположения с кодом ID, включая параметры страны и города.
GetCountryList | Функция возвращает набор стран по фильтру arFilter, отсортированный по массиву arOrder.
AddCountry | Функция добавляет новую страну с параметрами из массива arFields
AddCity | Функция добавляет новый город с параметрами из массива arFields
AddLocation | Функция добавляет новое местоположение на основании параметров массива arFields
DeleteAll | Функция удаляет все местоположения из базы.


CSaleLocation::Add

int
CSaleLocation::Add(
 array arFields
);

Функция добавляет новое местоположение включая страну и город местоположения, если нужно.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров местоположения с ключами:
  • SORT - индекс сортировки;
  • COUNTRY_ID - код страны (если такая страна уже есть, иначе код должен быть нулем, и должен быть заполнен ключ COUNTRY);
  • COUNTRY - массив с параметрами страны (если страна уже есть и установлен ключ COUNTRY_ID, то этот ключ заполнять не нужно);
  • WITHOUT_CITY - флаг (Y/N), означающий, что это местоположение без города (только страна) (если значением с этим ключом является N, то необходимо заполнить ключ 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" => 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 "Ошибка добавления местоположения";
?>


CSaleLocation::AddCity

int
CSaleLocation::AddCity(
 array arFields
);

Функция добавляет новый город с параметрами из массива arFields.

Параметры функции

Параметр Описание
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 "Ошибка добавления города";
?>


CSaleLocation::AddCountry

int
CSaleLocation::AddCountry(
 array arFields
);

Функция добавляет новую страну с параметрами из массива arFields.

Параметры функции

Параметр Описание
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 "Ошибка добавления страны";
?>


CSaleLocation::AddLocation

int
CSaleLocation::AddLocation(
  array arFields
);

Функция добавляет новое местоположение на основании параметров массива arFields.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров местоположения с ключами:
  • SORT - индекс сортировки;
  • COUNTRY_ID - код страны;
  • CITY_ID - код страны.

Возвращаемые значения

Возвращается код добавленного местоположения или false у случае ошибки.

Пример использования

<?
// Добавим местоположение из страны с кодом 2 и города с кодом 10
$ID = CSaleLocation::AddLocation(
      array(
         "COUNTRY_ID" => 2,
         "CITY_ID" => 10
         )
      );
?>


CSaleLocation::Delete

bool
CSaleLocation::Delete(
  int ID
);

Функция удаляет местоположение с кодом ID. Функция так же удаляет город этого местоположения, страну этого местоположения (если она не входит больше ни в одно другое местоположение), а так же связи этого местоположения с группами местоположений и службами доставки.

Параметры функции

Параметр | Описание
ID | Код местоположения.

Возвращаемые значения

Функция возвращает true в случае успешного удаления местоположения и false - в противном случае.

Пример использования

<?
if (!CSaleLocation::Delete(12))
   echo "Ошибка удаления местоположения";
?>


CSaleLocation::DeleteAll

CSaleLocation::DeleteAll();

Функция удаляет все местоположения из базы.


CSaleLocation::DeleteCity

bool
CSaleLocation::DeleteCity(
  int ID
);

Функция удаляет город с кодом ID. Местоположение, с которым связан этот город, не изменяется.

Параметры функции

Параметр | Описание
ID | Код города.

Возвращаемые значения

Функция возвращает true в случае успешного удаления местоположения и false - в противном случае.

Пример использования

<?
if (!CSaleLocation::DeleteCity(12))
   echo "Ошибка удаления города";
?>


CSaleLocation::DeleteCountry

bool
CSaleLocation::DeleteCountry(
  int ID
);

Функция удаляет страну с кодом ID. Связаные с этой страной местоположения не изменяются.

Параметры функции

Параметр | Описание
ID | Код страны.

Возвращаемые значения

Функция возвращает true в случае успешного удаления местоположения и false - в противном случае.

Пример использования

<?
if (!CSaleLocation::DeleteCountry(12))
   echo "Ошибка удаления страны";
?>


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 | Языкозависимое название города.
COUNTRY_NAME | Языкозависимое название страны, если оно есть. Иначе - языконезависимое название страны.
CITY_NAME | Языкозависимое название города, если оно есть. Иначе - языконезависимое название города.

Пример использования

<?
$arLocs = CSaleLocation::GetByID(22, LANGUAGE_ID);
echo $arLocs["COUNTRY_NAME"]." - ".$arLocs["CITY_NAME"];
?>


CSaleLocation::GetCityByID

array
CSaleLocation::GetCityByID(
  int ID
);

Функция возвращает языконезависимые параметры города с кодом ID

Параметры функции

Параметр | Описание
ID | Код города.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код города.
NAME | Языконезависимое название города.
SHORT_NAME | Языконезависимое короткое название города.


CSaleLocation::GetCityLangByID

array
CSaleLocation::GetCityLangByID(
  int ID,
  string strLang = LANGUAGE_ID
);

Функция возвращает языкозависимые параметры города по его коду ID и языку strLang

Параметры функции

Параметр | Описание
ID | Код города.
strLang | Язык. По умолчанию равен текущему языку.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код записи.
CITY_ID | Код города.
LID | Язык.
NAME | Языкозависимое название города.
SHORT_NAME | Языкозависимое короткое название города.


CSaleLocation::GetCountryByID

array
CSaleLocation::GetCountryByID(
  int ID
);

Функция возвращает языконезависимые параметры страны с кодом ID

Параметры функции

Параметр | Описание
ID | Код страны.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код страны.
NAME | Языконезависимое название страны.
SHORT_NAME | Языконезависимое короткое название страны.


CSaleLocation::GetCountryLangByID

array
CSaleLocation::GetCountryLangByID(
  int ID,
  string strLang = LANGUAGE_ID
);

Функция возвращает языкозависимые параметры страны по ее коду ID и языку strLang

Параметры функции

Параметр | Описание
ID | Код страны.
strLang | Язык.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код записи.
CITY_ID | Код страны.
LID | Язык.
NAME | Языкозависимое название страны.
SHORT_NAME | Языкозависимое короткое название страны.


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 | Языкозависимое название страны, если оно есть. Иначе языконезависимое название страны.


CSaleLocation::GetList

CDBResult
CSaleLocation::GetList(
 array arOrder = array(),
 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" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
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 - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код местоположения.
COUNTRY_ID | Код страны.
CITY_ID | Код города.
SORT | Индекс сортировки.
COUNTRY_NAME_ORIG | Языконезависимое название страны.
COUNTRY_SHORT_NAME | Языконезависимое короткое название страны.
COUNTRY_NAME_LANG | Языкозависимое название страны.
CITY_NAME_ORIG | Языконезависимое название города.
CITY_SHORT_NAME | Языконезависимое короткое название города.
CITY_NAME_LANG | Языкозависимое название города.
COUNTRY_NAME | Языкозависимое название страны, если оно установлено. Иначе - языконезависимое название страны.
CITY_NAME | Языкозависимое название города, если оно установлено. Иначе - языконезависимое название города.

Пример использования

<?// Выведем выпадающий список местоположений?>

<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>
?>


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 "Ошибка изменения местоположения";
?>


CSaleLocation::UpdateCity

int
CSaleLocation::UpdateCity(
  int ID,
  array arFields
);

Функция изменяет параметры города с кодом ID на значения из массива arFields

Параметры функции

Параметр | Описание
ID | Код города.
arFields Массив с параметрами города должен содержать ключи:
  • NAME - название города (не зависящее от языка);
  • SHORT_NAME - сокращенное название города - абревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида
    array("LID" => "код языка",
      "NAME" => "название города на этом языке",
      "SHORT_NAME" => "сокращенное название города
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код измененного города или false у случае ошибки.


CSaleLocation::UpdateCountry

int
CSaleLocation::UpdateCountry(
  int ID,
  array arFields
);

Функция изменяет параметры страны с кодом ID на новые параметры из массива arFields

Параметры функции

Параметр | Описание
ID | Код страны.
arFields Массив с параметрами страны должен содержать ключи:
  • NAME - название страны (не зависящее от языка);
  • SHORT_NAME - сокращенное название страны - абревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида
    array("LID" => "код языка",
      "NAME" => "название страны на этом языке",
      "SHORT_NAME" => "сокращенное название страны
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код измененной страны или false у случае ошибки.


CSaleLocation::UpdateLocation

int
CSaleLocation::UpdateLocation(
  int ID,
  array arFields
);

Функция обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields.

Параметры функции

Параметр | Описание
ID | Код местоположения.
arFields Ассоциативный массив параметров местоположения с ключами:
  • SORT - индекс сортировки;
  • COUNTRY_ID - код страны;
  • CITY_ID - код города (если такой город уже есть, иначе код должен быть нулем, и должен быть заполнен ключ CITY).

Возвращаемые значения

Возвращается код измененного местоположения или false у случае ошибки.


CSaleLocationGroup

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleLocationGroup

Методы класса

Метод | Описание
GetLocationList | Функция возвращает набор местоположений, связанных с группами местоположений, удовлетворяющих фильтру arFilter.
GetGroupLangByID | Функция возвращает языкозависимые параметры группы местоположений с кодом ID для языка с кодом strLang
Update | Функция обновляет параметры группы местоположений с кодом ID на значения из массива arFields
Delete | Функция удаляет группу местоположений с кодом ID. Местоположения, входящие в эту группу, не изменяются.
GetList | Функция возвращает набор групп местоположений, удовлетворяющих фильтру arFilter. Группы отсортированы в соответствии с массивом arOrder.
GetByID | Функция возвращает параметры группы местоположений с кодом ID. Языкозависимые параметры возвращаются для языка с кодом strLang
Add | Функция добавляет новую группу местоположений с параметрами из массива arFields.


CSaleLocationGroup::Add

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 "Ошибка добавления группы";
?>


CSaleLocationGroup::Delete

bool
CSaleLocationGroup::Delete(
  int ID
);

Функция удаляет группу местоположений с кодом ID. Местоположения, входящие в эту группу, не изменяются.

Параметры функции

Параметр | Описание
ID | Код группы местоположений.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
if (!CSaleLocationGroup::Delete(2))
   echo "Ошибка удаления группы местоположений";
?>


CSaleLocationGroup::GetByID

array
CSaleLocationGroup::GetByID(
  int ID,
  string strLang = LANGUAGE_ID
);

Функция возвращает параметры группы местоположений с кодом ID. Языкозависимые параметры возвращаются для языка с кодом strLang

Параметры функции

Параметр | Описание
ID | Код группы местоположений.
strLang | Код языка для языкозависимых параметров. По умолчанию равен текущему языку.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код группы местоположений.
SORT | Индекс сортировки.
NAME | Название группы.
LID | Язык названия.


CSaleLocationGroup::GetGroupLangByID

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"];
?>


CSaleLocationGroup::GetList

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>


CSaleLocationGroup::GetLocationList

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"].", ";
}
?>


CSaleLocationGroup::Update

int
CSaleLocationGroup::Update(
  int ID,
  array arFields
);

Функция обновляет параметры группы местоположений с кодом ID на значения из массива arFields

Параметры функции

Параметр | Описание
ID | Код группы.
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")
   )
);

if (!CSaleLocationGroup::Update(2, $arFields))
   echo "Ошибка изменения группы";
?>


CSaleOrder

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleOrder

Методы класса

Метод | Описание
GetList | Функция возвращает результат выборки записей из заказов в соответствии со своими параметрами.
GetByID | Функция возвращает параметры заказа с кодом ID.
PayOrder | Функция меняет значение флага "заказ оплачен" (поле PAYED) на значение параметра Val для заказа с кодом ID.
DeliverOrder | Функция меняет значение флага "доставка разрешена" (поле ALLOW_DELIVERY) на значение параметра Val для заказа с кодом ID.
CancelOrder | Функция меняет значение флага "заказ отменён" (поле CANCELED) на значение параметра Val для заказа с кодом ID.
StatusOrder | Функция меняет значение статуса заказа (поле STATUS_ID) на значение параметра Val для заказа с кодом ID.
CommentsOrder | Функция устанавливает новое значение Val комментария (поле COMMENTS) к заказу с кодом ID
Delete | Функция удаляет заказ с кодом ID.
Add | Функция добавляет новый заказ с параметрами из массива arFields.
Update | Функция изменяет параметры заказа с кодом ID на новые параметры из массива arFields.


CSaleOrder::Add

int
CSaleOrder::Add(
  array arFields
);

Функция добавляет новый заказ с параметрами из массива arFields. Перед добавлением заказа вызываются обработчики события OnBeforeOrderAdd модуля магазина, а после добавления - обработчики события OnOrderAdd модуля магазина.

Параметры функции

Параметр Описание
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 - общая величина скидки;
  • 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 - дата платежного поручения.

Возвращаемые значения

Возвращается код добавленного заказа или 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);
?>


CSaleOrder::CancelOrder

int
CSaleOrder::CancelOrder(
  int ID,
  string Val,
  string Descr = ""
);

Функция меняет значение флага "заказ отменён" (поле CANCELED) на значение параметра Val для заказа с кодом ID. Кроме флага отмены заказа, устанавливаются также поля даты изменения значения флага (DATE_CANCELED) и кода пользователя, изменившего значение флага (EMP_CANCELED_ID). Поле с описанием причины отмены заказа (REASON_CANCELED) заполняется значением параметра Descr.

Если заказ был оплачен, то при отмене снимается флаг оплаты с возвращением денег на счет покупателя. Если заказ был частично оплачен, то при отмене внесённая сумма возвращается на счет покупателя.

Перед отменой заказа вызываются обработчики события OnSaleBeforeCancelOrder модуля магазина, в которых можно отменить отмену заказа, вернув значение false. После отмены вызываются обработчики события OnSaleCancelOrder модуля магазина.

В случае отмены заказа генерируется почтовое событие типа SALE_ORDER_CANCEL.

Параметры функции

Параметр | Описание
ID | Код заказа.
Val | Новое значение флага отмены заказа (Y/N)
Descr | Описание причины отмены заказа.

Возвращаемые значения

Возвращается код заказа или false в случае ошибки.

Пример использования

<?
CSaleOrder::CancelOrder(25, "Y", "Потому что передумал");
?>


CSaleOrder::CommentsOrder

int
CSaleOrder::CommentsOrder(
  int ID,
  string Val
);

Функция устанавливает новое значение Val комментария (поле COMMENTS) к заказу с кодом ID

Параметры функции

Параметр | Описание
ID | Код заказа.
Val | Новое значение комментария.

Возвращаемые значения

Возвращается код заказа или false в случае ошибки.

Пример использования

<?
if (!CSaleOrder::CommentsOrder(12, "Не отгружать до оплаты!"))
   echo "Ошибка изменения комментария к заказу";
?>


CSaleOrder::Delete

bool
CSaleOrder::Delete(
  int ID
);

Функция удаляет заказ с кодом ID. При этом если заказ отменяется, если не был отменён, снимается флаг оплаты с возвращением денег на счет покупателя, если он был оплачен, и снимается флаг разрешения доставки, если он был установлен.

Перед удалением заказа вызываются обработчики события OnBeforeOrderDelete модуля магазина, в которых можно отменить удаление вернув значение false. Непосредственно перед удалением вызываются обработчики события OnOrderDelete модуля магазина.

Параметры функции

Параметр | Описание
ID | Код заказа.

Возвращаемые значения

Возвращается true при успешном удалении и false - в противном случае.

Пример использования

<?
CSaleOrder::Delete(23);
?>


CSaleOrder::DeliverOrder

int
CSaleOrder::DeliverOrder(
 int ID,
 string Val[,
 int recurringID = 0]
);

Функция меняет значение флага "доставка разрешена" (поле 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 | Код продления подписки (если он есть).

Возвращаемые значения

Возвращается код заказа или false в случае ошибки.

Пример использования

<?
if (!CSaleOrder::DeliverOrder(23, "Y"))
   echo "Ошибка изменения заказа 23";
?>


CSaleOrder::GetByID

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 | Код пользователя, который установил флаг отмены заказа.
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>";
}
?>


CSaleOrder::GetList

CDBResult
CSaleOrder::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("CANCELED" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле CANCELED (отменён) равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи заказов. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле заказов. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы с ключами:

Ключ | Описание
DATE_INSERT | Дата добавления заказа в формате текущего сайта.
DATE_UPDATE | Дата последнего изменения заказа в формате текущего сайта.
DATE_STATUS | Дата изменения статуса заказа в формате текущего сайта.
DATE_CANCELED | Дата изменения флага отмены заказа в формате текущего сайта.
DATE_PAYED | Дата изменения флага оплаты заказа в формате текущего сайта.
PS_RESPONSE_DATE | Дата получения статуса платежной системы в формате текущего сайта.
DATE_ALLOW_DELIVERY | Дата изменения флага разрешения доставки заказа в формате текущего сайта.
SUM_PAID | Сумма, которая уже была оплачена покупателем по данному счету (например, с внутреннего счета).
PAY_VOUCHER_NUM | Номер платежного поручения.
PAY_VOUCHER_DATE | Дата платежного поручения.

Если в качестве параметра 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>";
}
?>


CSaleOrder::PayOrder

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 изменяет только флаг, не затрагивая счет.
bPay | Если параметр bWithdraw установлен в true, то установка параметра bPay в true приведет к тому, что необходимая сумма денег будет внесена на счет покупателя перед оплатой, а установка в false приведет к тому, что оплата будет происходить целиком с внутреннего счета. Если параметр bWithdraw установлен в false, то операции со счетом не производятся и значение параметра bPay не играет роли.
recurringID | Должен быть равен 0.
arAdditionalFields | Массив дополнительно обновляемых параметров (обычно это номер и дата платежного поручения).

Возвращаемые значения

Возвращается код заказа или false в случае ошибки.

Пример использования

<?
if (!CSaleOrder::PayOrder($ID, "Y", True, True, 0, array("PAY_VOUCHER_NUM" => "19210")))
{
   echo "Ошибка обновления заказа";
}
?>


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 "Ошибка установки нового статуса заказа";
?>


CSaleOrder::Update

int
CSaleOrder::Update(
  int ID,
  array arFields
);

Функция изменяет параметры заказа с кодом 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 - общая величина скидки;
  • 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 - дата платежного поручения.

Возвращаемые значения

Возвращается код добавленного заказа или 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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleOrderProps

Методы класса

Метод | Описание
GetList | Функция возвращает результат выборки записей из заказов в соответствии со своими параметрами.
GetByID | Функция возвращает параметры свойства с кодом ID заказа.
Update | Функция изменяет параметры свойства с кодом ID заказа на значения из массива arFields
Delete | Функция удаляет свойство с кодом ID заказа. Существующие в базе значения этого свойства отвязываются от удаляемого свойства. Удаляются связанные значения из профиля покупателя.
Add | Функция добавляет новое свойство заказа с параметрами из массива arFields


CSaleOrderProps::Add

int
CSaleOrderProps::Add(
  array arFields
);

Функция добавляет новое свойство заказа с параметрами из массива arFields

Параметры функции

Параметр Описание
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 - мнемонический код свойства.

Возвращаемые значения

Возвращается код добавленного свойства заказа.

Пример использования

<?
$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 "Ошибка добавления свойства";
}
?>


CSaleOrderProps::Delete

bool
CSaleOrderProps::Delete(
  int ID
);

Функция удаляет свойство с кодом ID заказа. Существующие в базе значения этого свойства отвязываются от удаляемого свойства. Удаляются связанные значения из профиля покупателя.

Параметры функции

Параметр | Описание
ID | Код удаляемого свойства.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в случае ошибки.

Пример использования

<?
if (!CSaleOrderProps::Delete(12))
   echo "Ошибка удаления свойства";
?>


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>";
}
?>


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 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("REQUIED" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле REQUIED (обязательно для заполнения) равно Y".

Значение по умолчанию - пустой массив 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 | Название свойства.
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());
}
?>


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 - мнемонический код свойства.

Возвращаемые значения

Возвращается код измененного свойства заказа.

Пример использования

<?
$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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleOrderPropsGroup

Методы класса

Метод | Описание
GetList | Функция возвращает результат выборки записей из заказов в соответствии со своими параметрами.
GetByID | Функция возвращает параметры группы свойств заказа с кодом ID
Update | Функция обновляет параметры группы заказов с кодом ID на параметры из массива arFields
Delete | Функция удаляет группу свойств с кодом ID.
Add | Функция добавляет новую группу свойств заказа. Группа используется только для группировки свойств.


CSaleOrderPropsGroup::Add

int
CSaleOrderPropsGroup::Add(
  array arFields
);

Функция добавляет новую группу свойств заказа. Группа используется только для группировки свойств.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров группы свойств, в котором ключами являются названия параметров, а значениями - их значения.
Допустимые ключи:
  • PERSON_TYPE_ID - тип плательщика;
  • NAME - название группы (группа привязывается к типу плательщика, тип плательщика привязывается к сайту, сайт привязывается к языку, название задается на этом языке);
  • SORT - индекс сортировки.

Возвращаемые значения

Возвращается код добавленной группы или false в случае ошибки.


CSaleOrderPropsGroup::Delete

bool
CSaleOrderPropsGroup::Delete(
  int ID
);

Функция удаляет группу свойств с кодом ID. Так же удаляются свойства этой группы и другие сопутствующие данные. Значения свойств этой группы, привязанные к заказам, отвязываются от удаляемых свойств.
Если необходимо удалить только группу, то сначала от нее необходимо отвязать все свойства.

Параметры функции

Параметр | Описание
ID | Код группы свойств.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


CSaleOrderPropsGroup::GetByID

array
CSaleOrderPropsGroup::GetByID(
  int ID
);

Функция возвращает параметры группы свойств заказа с кодом ID

Параметры функции

Параметр | Описание
ID | Код группы заказов.

Возвращаемые значения

Возвращается ассоциативный массив параметров группы свойств с ключами:

Ключ | Описание
ID | Код группы заказов.
PERSON_TYPE_ID | Тип плательщика.
NAME | Название группы.
SORT | Индекс сортировки.

Пример использования

<?
if ($arPropsGroup = CSaleOrderPropsGroup::GetByID(3))
   echo $arPropsGroup["NAME"];
?>


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>";
}
?>


CSaleOrderPropsGroup::Update

int
CSaleOrderPropsGroup::Update(
  int ID,
  array arFields
);

Функция обновляет параметры группы заказов с кодом ID на параметры из массива arFields

Параметры функции

Параметр | Описание
ID | Код группы заказов.
arFields Ассоциативный массив параметров группы свойств, в котором ключами являются названия параметров, а значениями - новые значения.

Допустимые ключи:
  • PERSON_TYPE_ID - тип плательщика;
  • NAME - название группы (группа привязывается к типу плательщика, тип плательщика привязывается к сайту, сайт привязывается к языку, название задается на этом языке);
  • SORT - индекс сортировки.

Возвращаемые значения

Возвращается код добавленной группы или false в случае ошибки.


CSaleOrderPropsValue

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleOrderPropsValue

Методы класса

Метод | Описание
GetList | Функция возвращает результат выборки записей из заказов в соответствии со своими параметрами.
GetByID | Функция возвращает параметры значения с кодом ID свойства заказа.
Update | Функция обновляет параметры значения с кодом ID свойства заказа на параметры из массива arFields
Add | Функция добавляет новое значение свойства к заказу на основании параметров arFields
GetOrderProps | Функция возвращает набор значений свойств для заказа с кодом ORDER_ID.


CSaleOrderPropsValue::Add

int
CSaleOrderPropsValue::Add(
  array arFields
);

Функция добавляет новое значение свойства к заказу на основании параметров arFields

Параметры функции

Параметр Описание
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);
?>


CSaleOrderPropsValue::GetByID

array
CSaleOrderPropsValue::GetByID(
  int ID
);

Функция возвращает параметры значения с кодом ID свойства заказа.

Параметры функции

Параметр | Описание
ID | Код значения свойства заказа.

Возвращаемые значения

Возвращается ассоциативный массив параметров значения свойства с ключами:

Ключ | Описание
ID | Код значения свойства заказа.
ORDER_ID | Код заказа.
ORDER_PROPS_ID | Код свойства.
NAME | Название свойства.
VALUE | Значение свойства.
CODE | Мнемонический код свойства.


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("SORT" => "ASC"),
            array(
                    "ORDER_ID" => $ORDER_ID,
                    "ORDER_PROPS_ID" => $arProps["ID"]
                )
        );
      if ($arVals = $db_vals->Fetch())
        $PAYER_NAME = $arVals["VALUE"];
   }
}
echo $PAYER_NAME;
?>


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>";
}
?>


CSaleOrderPropsValue::Update

int
CSaleOrderPropsValue::Update(
  int ID,
  array arFields
);

Функция обновляет параметры значения с кодом ID свойства заказа на параметры из массива arFields

Параметры функции

Параметр | Описание
ID | Код знасения свойства заказа.
arFields Ассоциативный массив параметров значения свойства, ключами в котором являются названия параметров значения свойства, а значениями - соответствующие новые значения.

Допустимые ключи:
  • ORDER_ID - код заказа (обязательное);
  • ORDER_PROPS_ID - код свойства;
  • NAME - название свойства;
  • VALUE - значение свойства (обязательное);
  • CODE - мнемонический код свойства.

Возвращаемые значения

Функция возвращает код обновленного значения свойства или false в случае ошибки.

Пример использования

<?
CSaleOrderPropsValue::Update(8, array("CODE"=>"ADDRESS"));
?>


CSaleOrderPropsVariant

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleOrderPropsVariant

Методы класса

Метод | Описание
GetList | Функция возвращает набор вариантов значений свойств заказа, удовлетворяющих фильтру.
GetByValue | Функция возвращает параметры варианта значения свойства заказа по коду свойства заказа и значению.
GetByID | Функция возвращает параметры варианта с кодом ID значения свойства заказа.
Update | Функция обновляет параметры варианта с кодом ID на значения из массива arFields.
Delete | Функция удаляет вариант с кодом ID значения свойства заказа.
DeleteAll | Функция удаляет все варианты значений для свойства с кодом ID заказа.
Add | Функция добавляет новый вариант для выбора значения в свойствах типа переключатель (RADIO) и списки (SELECT, MULTISELECT).


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 "Ошибка добавления варианта значения";
?>


CSaleOrderPropsVariant::Delete

bool
CSaleOrderPropsVariant::Delete(
  int ID
);

Функция удаляет вариант с кодом ID значения свойства заказа.

Параметры функции

Параметр | Описание
ID | Код варианта значения свойства заказа.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в случае ошибки.

Пример использования

<?
CSaleOrderPropsVariant::Delete(12);
?>


CSaleOrderPropsVariant::DeleteAll

bool
CSaleOrderPropsVariant::DeleteAll(
  int ID
);

Функция удаляет все варианты значений для свойства с кодом ID заказа.

Параметры функции

Параметр | Описание
ID | Код свойства заказа.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


CSaleOrderPropsVariant::GetByID

array
CSaleOrderPropsVariant::GetByID(
  int ID
);

Функция возвращает параметры варианта с кодом ID значения свойства заказа.

Параметры функции

Параметр | Описание
ID | Код варианта значения свойства заказа.

Возвращаемые значения

Возвращается ассоциативный массив значений параметров заказа с ключами:

Код | Описание
ID | Код варианта значения свойства заказа.
ORDER_PROPS_ID | Код свойства заказа.
NAME | Название варианта.
VALUE | Значение варианта.
SORT | Индекс сортировки.
DESCRIPTION | Описание варианта значения свойства заказа.


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"];
?>


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());
}
?>


CSaleOrderPropsVariant::Update

int
CSaleOrderPropsVariant::Update(
  int ID,
  array arFields
);

Функция обновляет параметры варианта с кодом ID на значения из массива arFields

Параметры функции

Параметр | Описание
ID | Код варианта значения свойства заказа.
arFields Ассоциативный массив параметров нового варианта значения свойства заказа, ключами в котором являются названия параметров.

Допустимые ключи:
  • ORDER_PROPS_ID - код свойства заказа;
  • NAME - название варианта;
  • VALUE - значение варианта;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание варианта.

Возвращаемые значения

Возвращается код добавленного варианта значения или false в случае ошибки.


CSaleOrderTax

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleOrderTax

Методы класса

Метод | Описание
Update | Функция изменяет сумму налога с кодом ID на основании массива arFields
Delete | Функция удаляет сумму налога с кодом ID
DeleteEx | Функция удаляет все суммы налогов для заказа с кодом ORDER_ID
GetByID | Функция возвращает параметры суммы налогов с кодом ID
GetList | Функция возвращает результат выборки записей из налогов заказа в соответствии со своими параметрами.
CountTaxes | Функция вычисляет общую сумму налогов на товар стоимостью Price. Налоги задаются в массиве arTaxList.
Add | Функция добавляет новую сумму налога к заказу.


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);
?>


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>";
}
?>


CSaleOrderTax::Delete

bool
CSaleOrderTax::Delete(
  int ID
);

Функция удаляет сумму налога с кодом ID

Параметры функции

Параметр | Описание
ID | Код суммы налога.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


CSaleOrderTax::DeleteEx

bool
CSaleOrderTax::DeleteEx(
  int ORDER_ID
);

Функция удаляет все суммы налогов для заказа с кодом ORDER_ID

Параметры функции

Параметр | Описание
ORDER_ID | Код заказа.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


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


CSaleOrderTax::GetList

CDBResult
CSaleOrderTax::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" => 125)
Этот фильтр означает "выбрать все записи, в которых значение в поле ORDER_ID (код налога) равно 125".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи вариантов налогов заказа. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле налогов заказа. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то функция вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых функцией записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены функцией. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса 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++;
}
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleOrderUserProps

Методы класса

Метод | Описание
GetByID | Функция возвращает параметры профиля покупателя с кодом ID
Update | Функция обновляет параметры профиля покупателя с кодом ID на значения из массива arFields
Delete | Функция удаляет профиль покупателя с кодом ID. Вместе с профилем удаляются все его свойства.
Add | Функция сохраняет новый профиль покупателя с параметрами из массива arFields
ClearEmpty | Функция удаляет все пустые профили из базы (т.е. профили, в которых нет свойств).
GetList | Функция возвращает результат выборки записей из профилей покупателя в соответствии со своими параметрами.


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);
?>


CSaleOrderUserProps::ClearEmpty

CSaleOrderUserProps::ClearEmpty();

Функция удаляет все пустые профили из базы (т.е. профили, в которых нет свойств).


CSaleOrderUserProps::Delete

bool
CSaleOrderUserProps::Delete(
  int ID
);

Функция удаляет профиль покупателя с кодом ID. Вместе с профилем удаляются все его свойства.

Параметры функции

Параметр | Описание
ID | Код профиля покупателя.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSaleOrderUserProps::Delete(12);
?>


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>";
}
?>


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() - означает, что результат отфильтрован не будет.
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>";
}
?>


CSaleOrderUserProps::Update

int
CSaleOrderUserProps::Update(
  int ID,
  array arFields
);

Функция обновляет параметры профиля покупателя с кодом ID на значения из массива arFields

Параметры функции

Параметр | Описание
ID | Код профиля покупателя.
arFields Ассоциативный массив новых параметров профиля. Ключами являются названия параметров, а значениями - соответствующие значения.

Допустимые ключи:
  • NAME - название профиля покупателя;
  • USER_ID - код пользователя, которому принадлежит профиль;
  • PERSON_TYPE_ID - тип плательщика;
  • DATE_UPDATE - дата последнего изменения.

Возвращаемые значения

Возвращается код измененного профиля или false в случае ошибки.

Пример использования

<?
// Изменим название профиля покупателя
$arFields = array(
   "NAME" => "Профиль 24"
);
if (!CSaleOrderUserProps::Update(258, $arFields))
   echo "Ошибка изменения профиля покупателя";
?>


CSaleOrderUserPropsValue

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleOrderUserPropsValue

Методы класса

Метод | Описание
GetByID | Функция возвращает параметры свойства с кодом ID профиля покупателя.
Delete | Функция удаляет свойство с кодом ID профиля покупателя.
DeleteAll | Функция удаляет все свойства профиля покупателя для профиля с кодом ID
GetList | Функция возвращает результат выборки записей из значений свойств профилей покупателя в соответствии со своими параметрами.
Add | Функция добавляет новое свойство профиля покупателя в соответствии с массивом параметров arFields


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);
?>


CSaleOrderUserPropsValue::Delete

bool
CSaleOrderUserPropsValue::Delete(
  int ID
);

Функция удаляет свойство с кодом ID профиля покупателя.

Параметры функции

Параметр | Описание
ID | Код свойства профиля покупателя.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSaleOrderUserPropsValue::Delete(17);
?>


CSaleOrderUserPropsValue::DeleteAll

bool
CSaleOrderUserPropsValue::DeleteAll(
  int ID
);

Функция удаляет все свойства профиля покупателя для профиля с кодом ID

Параметры функции

Параметр | Описание
ID | Код профиля покупателя.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


CSaleOrderUserPropsValue::GetByID

array
CSaleOrderUserPropsValue::GetByID(
  int ID
);

Функция возвращает параметры свойства с кодом ID профиля покупателя.

Параметры функции

Параметр | Описание
ID | Код свойства профиля покупателя.

Возвращаемые значения

Возвращается ассоциативный массив параметров свойства с ключами:

Ключ | Описание
ID | Код свойства профиля покупателя.
USER_PROPS_ID | Код профиля покупателя.
ORDER_PROPS_ID | Код свойства заказа.
NAME | Название свойства заказа.
VALUE | Значение свойства заказа, сохраненное в профиле покупателя.


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() - означает, что результат отфильтрован не будет.
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(($b="SORT"), ($o="ASC"), Array("USER_PROPS_ID"=>$ID));
while ($arPropVals = $db_propVals->Fetch())
{
   echo $arPropVals["USER_VALUE_NAME"]."=".$arPropVals["VALUE"]."<br>";
}
?>


CSalePaySystem

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSalePaySystem

Методы класса

Метод | Описание
Update | Функция обновляет параметры платежной системы с кодом ID в соответствии со значениями из массива arFields
Delete | Функция удаляет платежную систему с кодом ID.
GetList | Функция возвращает результат выборки записей из платежных систем в соответствии со своими параметрами.
GetByID | Функция возвращает параметры платежной системы с кодом ID.
Add | Метод добавляет новую платежную систему на основании параметров из массива arFields.


CSalePaySystem::Add

int
CSalePaySystem::Add(
 array arFields
);

Метод добавляет новую платежную систему на основании параметров из массива arFields.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров новой платежной системы, в котором ключами являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • LID - сайт платежной системы;
  • CURRENCY - валюта платежной системы;
  • NAME - название платежной системы;
  • ACTIVE - флаг (Y/N) активности платежной системы;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание.

Возвращаемые значения

Возвращается код измененной записи или false в случае ошибки.


CSalePaySystem::Delete

bool
CSalePaySystem::Delete(
  int ID
);

Функция удаляет платежную систему с кодом ID. Если к платежной системе с кодом ID привязаны заказы, то эта платежная система удалена не будет.

Параметры функции

Параметр | Описание
ID | Код платежной системы.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSalePaySystem::Delete(25);
?>


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"];
}
?>


CSalePaySystem::GetList

CDBResult
CSalePaySystem::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")
Этот фильтр означает "выбрать все записи, в которых значение в поле USER_PROPS_ID (код профиля покупателя) равно 120".

Значение по умолчанию - пустой массив 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 | Сайт, на котором работает эта система.
CURRENCY | Валюта, с которой работает эта система.
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"=>"RUR", "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%"><?
}
?>


CSalePaySystem::Update

int
CSalePaySystem::Update(
  int ID,
  array arFields
);

Функция обновляет параметры платежной системы с кодом ID в соответствии со значениями из массива arFields

Параметры функции

Параметр | Описание
ID | Код платежной системы.
arFields Ассоциативный массив новых параметров платежной системы, в котором ключами являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • LID - сайт платежной системы;
  • CURRENCY - валюта платежной системы;
  • NAME - название платежной системы;
  • ACTIVE - флаг (Y/N) активности платежной системы;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание.

Возвращаемые значения

Возвращается код измененной записи или false в случае ошибки.


CSalePaySystemAction

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSalePaySystemAction

Методы класса

Метод | Описание
GetList | Функция возвращает результат выборки записей из обработчиков платежных систем в соответствии со своими параметрами.
GetByID | Функция возвращает параметры обработчика платежной системы с кодом ID
Update | Функция обновляет параметры обработчика с кодом ID платежной системы в соответствии с массивом arFields.
Delete | Функция удаляет обработчик платежной системы с кодом ID
Add | Метод добавляет новый обработчик платежной системы на основании параметров из массива arFields.


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 - в случае ошибки.


CSalePaySystemAction::Delete

bool
CSalePaySystemAction::Delete(
  int ID
);

Функция удаляет обработчик платежной системы с кодом ID

Параметры функции

Параметр | Описание
ID | Код обработчика платежной системы.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSalePaySystemAction::Delete(12);
?>


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) открывать ли скрипт платежной системы в новом окне.


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 передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.


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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSalePersonType

Методы класса

Метод | Описание
GetList | Функция возвращает результат выборки записей из типов плательщика в соответствии со своими параметрами.
GetByID | Функция возвращает параметры типа плательщика с кодом ID
Update | Функцияобновляет параметры типа плательщика с кодом ID
Delete | Функция удаляет тип плательщика с кодом ID.
Add | Функция добавляет новый тип плательщика с параметрами из массива arFields


CSalePersonType::Add

Int
CSalePersonType::Add(
  array arFields
);

Функция добавляет новый тип плательщика с параметрами из массива arFields

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров нового типа плательщиков, ключами в котором являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • LID - код сайта, к которому привязан тип плательщика;
  • NAME - название типа плательщика;
  • SORT - индекс сортировки.

Возвращаемые значения

Возвращается код добавленного типа плательщика или false - в случае ошибки.


CSalePersonType::Delete

bool
CSalePersonType::Delete(
  int ID
);

Функция удаляет тип плательщика с кодом ID. Так же удаляются все связанные данные. Если есть заказы, привязанные к этому типу плательщика, то тип плательщика не может быть удален.

Параметры функции

Параметр | Описание
ID | Код типа плательщика.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


CSalePersonType::GetByID

array
CSalePersonType::GetByID(
  int ID
);

Функция возвращает параметры типа плательщика с кодом ID

Параметры функции

Параметр | Описание
ID | Код типа плательщика.

Возвращаемые значения

Возвращается ассоциативный массив параметров типа плательщика с ключами:

Ключ | Описание
ID | Код типа плательщика.
LID | Код сайта.
NAME | Название типа плательщика.
SORT | Индекс сортировки.

Пример использования

<?
if ($arPersType = CSalePersonType::GetByID($PERSON_TYPE_ID))
{
   echo "<pre>";
   print_r($arPersType);
   echo "</pre>";
}
?>


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("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 | Код типа плательщика.
LID | Код сайта.
NAME | Название типа плательщика.
SORT | Индекс сортировки.

Если в качестве параметра arGroupBy передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выведем переключатели для выбора типа плательщика для текущего сайта
$db_ptype = CSalePersonType::GetList(($by="SORT"), ($order="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;
}
?>


CSalePersonType::Update

int
CSalePersonType::Update(
  int ID,
  array arFields
);

Функцияобновляет параметры типа плательщика с кодом ID

Параметры функции

Параметр | Описание
ID | Код типа плательщика.
arFields Ассоциативный массив новых параметров типа плательщиков, ключами в котором являются названия параметров, а значениями - соответствующие значения.

Допустимые ключи:
  • LID - код сайта, к которому привязан тип плательщика;
  • NAME - название типа плательщика;
  • SORT - индекс сортировки.

Возвращаемые значения

Возвращается код обновленного типа плательщика или false - в случае ошибки.


CSaleRecurring

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleRecurring

Методы класса

Метод | Описание
Update | Метод изменяет параметры записи на продление подписки в соответствии с параметрами из массива arFields.
Add | Метод добавляет новую запись на продление подписки в соответствии с параметрами из массива arFields.
Delete | Метод удаляет запись на продление подписки с кодом ID.
CheckRecurring | Метод удаляет ищет подписки, которые пора продлить, и пытается осуществить продление.
NextPayment | Метод осуществляет продление подписки с кодом ID.
CancelRecurring | Метод осуществляет отмену продления подписки с кодом ID.
GetList | Функция возвращает результат выборки записей информации и продлении подписки в соответствии со своими параметрами.
GetByID | Метод возвращает параметры информации о продлении с кодом ID.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleRecurring::CancelRecurring

bool
CSaleRecurring::CancelRecurring(
 int ID
 string val[,
 string description = ""]
);

Метод осуществляет отмену продления подписки с кодом ID.

Параметры функции

Параметр | Описание
ID | Код записи с информацией о продлении.
val | "Y", если подписка отменяется, и "N", если подписка восстанавливается.
description | Причина отмены подписки.

Возвращаемые значения

Метод возвращает код отменяемой записи или false в случае ошибки.


CheckRecurring

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleRecurring::CheckRecurring

void
CSaleRecurring::CheckRecurring();

Метод удаляет ищет подписки, которые пора продлить, и пытается осуществить продление. За раз осуществляется продление не более трех подписок. Этот метод можно вызывать из агентов или cron'а для автоматического продления подписки.

Параметры функции

Без параметров.

Возвращаемые значения

Метод не возвращает значений.


Delete

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleRecurring::Delete

bool
CSaleRecurring::Delete(
 int ID
);

Метод удаляет запись на продление подписки с кодом ID.

Параметры функции

Параметр | Описание
ID | Код удаляемой записи.

Возвращаемые значения

Метод возвращает true в случае успешного удаления или false в случае ошибки.


GetByID

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleRecurring::GetByID

bool
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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleRecurring::NextPayment

bool
CSaleRecurring::NextPayment(
 int ID
);

Метод осуществляет продление подписки с кодом ID.

Параметры функции

Параметр | Описание
ID | Код записи с информацией о продлении.

Возвращаемые значения

Метод возвращает true в случае успешного продления или false в случае ошибки.


Update

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleStatus

Методы класса

Метод | Описание
Add | Функция добавляет новый статус заказа с параметрами из массива arFields
Update | Функция изменяет параметры статуса заказа с кодом ID
Delete | Функция удаляет статус заказа с кодом ID. Если в базе есть заказы, находящиеся в этом статусе, то этот статус удалить нельзя.
GetList | Функция возвращает результат выборки записей из статусов в соответствии со своими параметрами.
GetByID | Функция возвращает параметры статуса с кодом ID, включая языкозависимые параметры для языка strLang


CSaleStatus::Add

string
CSaleStatus::Add(
  array arFields
);

Функция добавляет новый статус заказа с параметрами из массива arFields

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров нового статуса. Ключами в массиве являются названия параметров статуса, а значениями - соответствующие значения.
Допустимые ключи:
  • ID - код статуса (обязательный);
  • SORT - индекс сортировки;
  • LANG - массив ассоциативных массивов языкозависимых параметров статуса с ключами:
    • LID - язык;
    • NAME - название статуса на этом языке;
    • DESCRIPTION - описание статуса;
  • PERMS - массив ассоциативных массивов прав на доступ к изменению заказа в данном статусе с ключами:
    • GROUP_ID - группа пользователей;
    • PERM_TYPE - тип доступа (S - разрешен перевод заказа в данный статус, M - разрешено изменение заказа в данном статусе).

Возвращаемые значения

Возвращается код добавленного статуса или false в случае ошибки.


CSaleStatus::Delete

bool
CSaleStatus::Delete(
  string ID
);

Функция удаляет статус заказа с кодом ID. Если в базе есть заказы, находящиеся в этом статусе, то этот статус удалить нельзя.

Параметры функции

Параметр | Описание
ID | Код статуса заказа.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


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>";
}
?>


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 передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.


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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleTax

Методы класса

Метод | Описание
Update | Функция обновляет параметры налога с кодом ID
Delete | Функция удаляет налог с кодом ID.
GetByID | Функция возвращает параметры налога с кодом ID
GetList | Функция возвращает набор налогов, удовлетворяющих фильтру arFilter.
GetExemptList | Функция возвращает набор записей из таблицы освобождений от уплаты налогов, удовлетворяющих фильтру arFilter
AddExempt | Функция добавляет новую запись в таблицу освобождения от налогов.
DeleteExempt | Функция удаляет записи, удовлетворяющие фильтру arFilter, из таблицы освобождений от уплаты налогов.
Add | Функция добавляет новый налог с параметрами из массива arFields


CSaleTax::Add

int
CSaleTax::Add(
  array arFields
);

Функция добавляет новый налог с параметрами из массива arFields

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров нового налога, ключами в котором являются названия параметров, а значениями - соответствующие значения.

Допустимые параметры:
  • LID - сайт;
  • NAME - название налога;
  • DESCRIPTION - описание;
  • CODE - мнемонический код.

Возвращаемые значения

Возвращается код добавленного налога или false в случае ошибки.


CSaleTax::AddExempt

bool
CSaleTax::AddExempt(
  array arFields
);

Функция добавляет новую запись в таблицу освобождения от налогов.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров новой записи с ключами:
  • GROUP_ID - код группы пользователей, которая освобождается от уплаты налога;
  • TAX_ID - код налога, от уплаты которого освобождается группа пользователей.

Возвращаемые значения

Возвращается true в случае успешного добавления и false - в противном случае.


CSaleTax::Delete

bool
CSaleTax::Delete(
  int ID
);

Функция удаляет налог с кодом ID. Также удаляются ставки этого налога и освобождения от уплаты налога, относящиеся к этому налогу.

Параметры функции

Параметр | Описание
ID | Код налога.

Возвращаемые значения

Возвращается true в случае успешного добавления и false - в противном случае.


CSaleTax::DeleteExempt

bool
CSaleTax::DeleteExempt(
  array arFields
);

Функция удаляет записи, удовлетворяющие фильтру arFilter, из таблицы освобождений от уплаты налогов.

Параметры функции

Параметр Описание
arFields Ассоциативный массив условий для удаления записей. Ключами в массиве могут быть:
  • GROUP_ID - код группы пользователей, члены которой освобождены от уплаты налога;
  • TAX_ID - код налога, от уплаты которого освобождается группа пользователей.
В массиве должен присутствовать хотя бы один ключ.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


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>";
}
?>


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"]);
         }
      }
   }
}
?>


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 | Дата последнего изменения записи.


CSaleTax::Update

int
CSaleTax::Update(
  int ID,
  array arFields
);

Функция обновляет параметры налога с кодом ID

Параметры функции

Параметр | Описание
ID | Код налога.
arFields Ассоциативный массив новых параметров налога, ключами в котором являются названия параметров, а значениями - соответствующие значения.

Допустимые параметры:
  • LID - сайт;
  • NAME - название налога;
  • DESCRIPTION - описание;
  • CODE - мнемонический код.

Возвращаемые значения

Функция возвращает код измененного налога или false в случае ошибки.


CSaleTaxRate

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleTaxRate

Методы класса

Метод | Описание
Update | Функция изменяет параметры ставки налога с кодом ID
Delete | Функция удаляет ставку налога с кодом ID
GetByID | Функция возвращает параметры ставки налога с кодом ID
Add | Функция добавляет новую ставку налога с параметрами из массива arFields
GetList | Функция возвращает набор ставок налога, удовлетворяющих фильтру arFilter. Набор упорядочен в соответствии с массивом arOrder.


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 в случае ошибки.


CSaleTaxRate::Delete

bool
CSaleTaxRate::Delete(
  int ID
);

Функция удаляет ставку налога с кодом ID

Параметры функции

Параметр | Описание
ID | Код ставки налога.

Возвращаемые значения

Возвращается true в случае успешного удаления и false в противном случае.


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) активности ставки.


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;
}
?>


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 в случае ошибки.


CSaleUserAccount

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleUserAccount

Методы класса

Метод | Описание
Delete | Метод удаляет внутренний счет пользователя.
Pay | Метод снимает указанную сумму с внутреннего счета пользователя.
Withdraw | Метод снимает указанную сумму с внутреннего счета пользователя.
UpdateAccount | Метод изменяет сумму на счете пользователя с кодом userID.
GetByID | Метод возвращает ассоциативный массив параметров счета с кодом ID.
GetByUserID | Метод возвращает ассоциативный массив параметров счета с валютой currency для пользователя с кодом userID.
GetList | Функция возвращает результат выборки записей счетов в соответствии со своими параметрами.
Add | Метод добавляет новый счет пользователя в соответствии с параметрами из массива arFields.
Update | Метод изменяет параметры счета пользователя в соответствии с параметрами из массива arFields.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleUserAccount::Add

int
CSaleUserAccount::Add(
 array arFields
);

Метод добавляет новый счет пользователя в соответствии с параметрами из массива arFields.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров нового счета. Может содержать следующие ключи:
  • USER_ID - код пользователя-владельца
  • CURRENT_BUDGET - текущая сумма на счете
  • CURRENCY - валюта
  • NOTES - текстовое описание
  • LOCKED - флаг заблокированности счета
  • DATE_LOCKED - дата блокировки счета

Возвращаемые значения

Метод возвращает код добавленного счета или false в случае ошибки.


Delete

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleUserAccount::Delete

bool
CSaleUserAccount::Delete(
 int ID
);

Метод удаляет внутренний счет пользователя.

Параметры функции

Параметр | Описание
ID | Код удаляемого счета.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки.


GetByID

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleUserAccount::Update

int
CSaleUserAccount::Update(
 int ID,
 array arFields
);

Метод изменяет параметры счета пользователя в соответствии с параметрами из массива arFields.

Параметры функции

Параметр | Описание
ID | Код изменяемого счета.
arFields Ассоциативный массив новых параметров счета. Может содержать следующие ключи:
  • USER_ID - код пользователя-владельца;
  • CURRENT_BUDGET - текущая сумма на счете;
  • CURRENCY - валюта;
  • NOTES - текстовое описание;
  • LOCKED - флаг заблокированности счета;
  • DATE_LOCKED - дата блокировки счета.

Возвращаемые значения

Метод возвращает код измененного счета или false в случае ошибки.


UpdateAccount

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleUserCards

Методы класса

Метод | Описание
Delete | Метод удаляет информацию о пластиковой карте пользователя.
GetByID | Метод возвращает параметры пластиковой карты с кодом ID
Add | Метод сохраняет информацию о новой пластиковой карте пользователя.
Update | Метод изменяет информацию о новой пластиковой карте пользователя.
GetList | Функция возвращает результат выборки записей пластиковых карт в соответствии со своими параметрами.
CryptData | Метод изменяет шифрует и расшифровывает номер пластиковой карты.
CheckPassword | Метод проверяет, установлен ли пароль для шифрации номеров карт.
IdentifyCardType | Метод определяет тип пластиковой карты по ее номеру.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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" => 2008,
            "DESCRIPTION" => false,
            "CARD_CODE" => "123",
            "SUM_MIN" => False,
            "SUM_MAX" => False,
            "SUM_CURRENCY" => False
        );

    $UserCardID = CSaleUserCards::Add($arFields);
}
?>


CheckPassword

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleUserCards::CheckPassword

bool
CSaleUserCards::CheckPassword();

Метод проверяет, установлен ли пароль для шифрации номеров карт.

Параметры функции

Без параметров.

Возвращаемые значения

Метод возвращает true, если пароль установлен, и false в противном случае.


CryptData

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleUserCards::CryptData

string
CSaleUserCards::CryptData(
 string data,
 string type
);

Метод изменяет шифрует и расшифровывает номер пластиковой карты.

Параметры функции

Параметр | Описание
data | Шифруемые (расшифровываемые) данные.
type | Для шифрования данных значение "E", для расшифровки - "D"

Замечание

Перед сохранением номера карты в базу его необходимо шифровать, а при выборке из базы - расшифровывать.

Возвращаемые значения

Метод возвращает результат шифрования (расшифровывания).


Delete

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleUserCards::Delete

bool
CSaleUserCards::Delete(
 int ID
);

Метод удаляет информацию о пластиковой карте пользователя.

Параметры функции

Параметр | Описание
ID | Код удаляемой информации о карте.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки.


GetByID

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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" => 2008,
            "DESCRIPTION" => False,
            "CARD_CODE" => "123",
            "SUM_MIN" => False,
            "SUM_MAX" => False,
            "SUM_CURRENCY" => False
        );

    $UserCardID = CSaleUserCards::Add($arFields);
}
?>


Update

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSaleUserTransact

Методы класса

Метод | Описание
Delete | Метод удаляет транзакцию с кодом ID.
GetByID | Метод возвращает параметры транзакции с кодом ID.
Add | Метод добавляет новую транзакцию с параметрами из массива arFields.
Update | Метод изменяет параметры транзакции в соответствии с параметрами из массива arFields.
GetList | Функция возвращает результат выборки записей транзакций в соответствии со своими параметрами.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleUserTransact::Add

int
CSaleUserTransact::Add(
 array arFields
);

Метод добавляет новую транзакцию с параметрами из массива arFields.

Параметры функции

Параметр Описание
arFields Ассоциативный массив параметров новой транзакции с ключами:
  • USER_ID - код пользователя;
  • AMOUNT - сумма;
  • CURRENCY - валюта суммы;
  • DEBIT - "Y", если занесение денег на счет, и "N", если списание денег со счета;
  • DESCRIPTION - описание;
  • ORDER_ID - код заказа, если транзакция относится к заказу;
  • EMPLOYEE_ID - код пользователя, осуществивщего транзакцию;
  • TRANSACT_DATE - дата транзакции.

Возвращаемые значения

Метод возвращает код вставленной транзакции или false в случае ошибки.


Delete

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSaleUserTransact::Delete

bool
CSaleUserTransact::Delete(
 int ID
);

Метод удаляет транзакцию с кодом ID.

Параметры функции

-
Параметр | Описание
ID | Номер транзакции.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false - в противном случае.


GetByID

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 передается пустой массив, то функция вернет число записей, удовлетворяющих фильтру.


Update

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 в случае ошибки.


SaleFormatCurrency

string
SaleFormatCurrency(
 float fSum,
 string strCurrency
);

Функция форматирует сумму fSum в соответствии с правилами форматирования для валюты strCurrency на текущем языке.

Параметры функции

Параметр | Описание
fSum | Денежная сумма, которую нужно сформатировать.
strCurrency | Валюта, по правилам которой нужно производить форматирование.

Возвращаемые значения

Возвращает отформатированную строку.

Пример использования

<?
echo SaleFormatCurrency(11800.95, "USD");
?>


События интернет-магазина

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Список событий

Следующие события применяются в интернет-магазине.

  • OnBeforeOrderDelete - событие вызывается в методе CSaleOrder::Delete и может быть использовано для отмены удаления:
    ID - идентификатор заказа.

  • OnOrderDelete - событие вызывается в момент удаления заказа:
    ID - идентификатор заказа.

  • OnSaleBeforePayOrder - событие вызывается в методе CSaleOrder::PayOrder и может быть использовано для отмены оплаты заказа и отмены снятия оплаты:
    ID - идентификатор заказа;
    val - флаг оплаты (Y - выставление оплаты, N - снятие оплаты);
    bWithdraw - значение true отражает изменение флага на внутреннем счете пользователя; значение false изменяет только флаг, не затрагивая счет;
    bPay - если параметр bWithdraw установлен в true, то установка параметра bPay в true приведет к тому, что необходимая сумма денег будет внесена на счет покупателя перед оплатой, а установка в false приведет к тому, что оплата будет происходить целиком с внутреннего счета; если параметр bWithdraw установлен в false, то операции со счетом не производятся и значение параметра bPay не играет роли;
    recurringID - должен быть равен 0;
    arAdditionalFields - массив дополнительно обновляемых параметров (обычно это номер и дата платежного поручения).

  • OnSalePayOrder - событие вызывается в момент оплаты заказа:
    ID - идентификатор заказа;
    val - флаг оплаты (Y - выставление оплаты, N - снятие оплаты).

  • OnSaleBeforeDeliveryOrder - событие вызывается в методе CSaleOrder::DeliverOrder и может быть использовано для отмены разрешения/запрещения доставки:
    ID - идентификатор заказа;
    val - флаг разрешения доставки (Y - разрешено, N - запрещено).

  • OnSaleDeliveryOrder - событие вызывается в момент разрешения доставки заказа:
    ID - идентификатор заказа;
    val - флаг разрешения доставки (Y - разрешено, N - запрещено).

  • OnSaleBeforeCancelOrder - событие вызывается в методе CSaleOrder::CancelOrder и может быть использовано для отмены "Отмены заказа":
    ID - идентификатор заказа;
    val - флаг отмены (Y - отменен, N - неотменен).

  • OnSaleCancelOrder - событие вызывается в момент отмены заказа:
    ID - идентификатор заказа;
    val - флаг отмены (Y - отменен, N - неотменен).

  • OnSaleBeforeStatusOrder - событие вызывается в методе CSaleOrder::StatusOrder и может быть использовано для изменения статуса заказа:
    ID - идентификатор заказа;
    val - идентификатор статуса.

  • OnSaleStatusOrder - событие вызывается в момент смены статуса заказа:
    ID - идентификатор заказа;
    val - идентификатор статуса.

  • OnSaleStatusEMail - событие вызывается в момент формирования письма клиенту о смене статуса заказа. Может быть использовано для переопределения текста письма или его дополнения (для этого обработчик события должен возвращать необходимый текст):
    ID - идентификатор заказа;
    val - идентификатор статуса.

  • OnBeforeOrderAdd - событие вызывается в методе CSaleOrder::Add и может быть использовано для отмены добавления заказа:
    arFields - массив полей заказа.

  • OnOrderAdd - событие вызывается в момент добавления заказа:
    ID - идентификатор заказа;
    arFields - массив полей заказа.

  • OnBeforeOrderUpdate - событие вызывается в методе CSaleOrder::Update и может быть использовано для отмены изменения заказа:
    ID - идентификатор заказа;
    arFields - массив полей заказа.

  • OnOrderUpdate - событие вызывается после изменения заказа:
    ID - идентификатор заказа;
    arFields - массив полей заказа.

  • OnBeforePersonTypeUpdate - событие вызывается в методе CSalePersonType::Update и может быть использовано для отмены изменения типа плательщика:
    ID - идентификатор типа плательщика;
    arFields - массив полей типа плательщика.

  • OnPersonTypeUpdate - событие вызывается после изменения типа плательщика:
    ID - идентификатор типа плательщика;
    arFields - массив полей типа плательщика.

  • OnBeforePersonTypeDelete - событие вызывается в методе CSalePersonType::Delete и может быть использовано для отмены удаления типа плательщика:
    ID - идентификатор типа плательщика.

  • OnPersonTypeDelete - событие вызывается после удаления типа плательщика:
    ID - идентификатор типа плательщика.
  • OnBeforePersonTypeAdd - событие вызывается в методе CSalePersonType::Add и может быть использовано для отмены добавления типа плательщика:
    arFields - массив полей типа плательщика.

  • OnPersonTypeAdd - событие вызывается после добавления типа плательщика:
    ID - идентификатор типа плательщика;
    arFields - массив полей типа плательщика.

  • OnBeforeStatusAdd - событие вызывается в методе CSaleStatus::Add и может быть использовано для отмены добавления статуса заказа:
    ID - идентификатор статуса;
    arFields - массив полей статуса.

  • OnStatusAdd - событие вызывается после добавления статуса заказа:
    ID - идентификатор статуса;
    arFields - массив полей статуса.

  • OnBeforeStatusUpdate - событие вызывается в методе CSaleStatus::Update и может быть использовано для отмены изменения статуса заказа:
    ID - идентификатор статуса;
    arFields - массив полей статуса.

  • OnStatusUpdate - событие вызывается после изменения статуса заказа:
    ID - идентификатор статуса;
    arFields - массив полей статуса.

  • OnBeforeStatusDelete - событие вызывается в методе CSaleStatus::Delete и может быть использовано для отмены удаления статуса заказа:
    ID - идентификатор статуса.

  • OnStatusDelete - событие вызывается после удаления статуса заказа:
    ID - идентификатор статуса.

  • OnSaleUserDelete - событие вызывается при удалении пользователя Интернет-магазина:
    ID - идентификатор пользователя Интернет-магазина.

  • OnAffiliateGetSections - событие вызывается в методе CSaleAffiliate::CalculateAffiliate, если модуль товара не catalog. Позволяет задать секции для товара, расположенного не в модуле каталог, используемые для планов аффилиатов:
    BASKET_MODULE - идентификатор модуля товара корзины;
    BASKET_PRODUCT_ID - идентификатор товара.

  • OnOrderListFilter - событие вызывается при формировании фильтра для списка заказов в административной части. Позволяет модифицировать значения фильтра. Для этого обработчик события должен вернуть модифицированный массив фильтра:
    arFilter - массив фильтра.

  • OnBasketItiSave - событие вызывается при запуске скрипта редактирования заказа в административной части. Возвращаемое значение - путь к PHP скрипту. Указаный скрипт дергается на сервере при каждом нажатии на кнопку "Cохранить" товара в заказе. Позволяет подменять параметры товара в заказе:
    ID - идентификатор заказа.

  • OnProductSearchFormIBlock - событие вызывается при формировании фильтра для выбора товаров для заказа. Позволяет модифицировать значения фильтра. Для этого обработчик события должен вернуть модифицированный массив фильтра:
    arFilter - массив фильтра.

  • OnProductSearchForm - событие вызывается для каждого товара в форме поиска товара. Возвращаемое значение - массив (в формате JScript) новых параметров товара. Может использоваться, если товары в заказе должны иметь не те параметры, которые они имеют в каталоге:
    ID - код товара;
    arParams - текущее значение, передающееся в качестве параметров товара (массив в формате JScript).

  • OnBeforeCountryUpdate - событие вызывается в методе CSaleLocation::UpdateCountry и может быть использовано для отмены изменения страны доставки:
    ID - идентификатор страны;
    arFields - массив полей страны.

  • OnCountryUpdate - событие вызывается после изменения страны доставки:
    ID - идентификатор страны;
    arFields - массив полей страны.

  • OnBeforeCountryDelete - событие вызывается в методе CSaleLocation::DeleteCountry и может быть использовано для отмены удаления страны доставки:
    ID - идентификатор страны.

  • OnCountryDelete - событие вызывается после удаления страны доставки:
    ID - идентификатор страны.

  • OnBeforeCityUpdate - событие вызывается в методе CSaleLocation::UpdateCity и может быть использовано для отмены изменения города доставки:
    ID - идентификатор города;
    arFields - массив полей города.

  • OnCityUpdate - событие вызывается после изменения города доставки:
    ID - идентификатор города;
    arFields - массив полей города.

  • OnBeforeCityDelete - событие вызывается в методе CSaleLocation::DeleteCity и может быть использовано для отмены удаления города доставки:
    ID - идентификатор города.

  • OnCityDelete - событие вызывается после удаления города доставки:
    ID - идентификатор города.

  • OnBeforeLocationUpdate - событие вызывается в методе CSaleLocation::Update и может быть использовано для отмены изменения местоположения доставки:
    ID - идентификатор местоположения;
    arFields - массив полей местоположения.

  • OnLocationUpdate - событие вызывается после изменения местоположения доставки:
    ID - идентификатор местоположения;
    arFields - массив полей местоположения.

  • OnBeforeLocationDelete - событие вызывается в методе CSaleLocation::Delete и может быть использовано для отмены удаления местоположения доставки:
    ID - идентификатор местоположения.

  • OnLocationDelete - событие вызывается после удаления местоположения доставки:
    ID - идентификатор местоположения.

  • OnBeforeCountryAdd - событие вызывается в методе CSaleLocation::AddCountry и может быть использовано для отмены добавления страны доставки:
    arFields - массив полей страны.

  • OnCountryAdd - событие вызывается после добавления страны доставки:
    ID - идентификатор страны;
    arFields - массив полей страны.

  • OnBeforeCityAdd - событие вызывается в методе CSaleLocation::AddCity и может быть использовано для отмены добавления города доставки:
    arFields - массив полей города.

  • OnCityAdd - событие вызывается после добавления города доставки:
    ID - идентификатор города;
    arFields - массив полей города.

  • OnBeforeLocationAdd - событие вызывается в методе CSaleLocation::Add и может быть использовано для отмены добавления местоположения доставки:
    arFields - массив полей местоположения.

  • OnLocationAdd - событие вызывается после добавления местоположения доставки:
    ID - идентификатор местоположения;
    arFields - массив полей местоположения.

  • OnBeforeLocationGroupUpdate - событие вызывается в методе CSaleLocationGroup::Update и может быть использовано для отмены изменения группы местоположений доставки:
    ID - идентификатор группы местоположений;
    arFields - массив полей группы местоположений.

  • OnLocationGroupUpdate - событие вызывается после изменения группы местоположений доставки:
    ID - идентификатор группы местоположений;
    arFields - массив полей группы местоположений.

  • OnBeforeLocationGroupDelete - событие вызывается в методе CSaleLocationGroup::Delete и может быть использовано для отмены удаления группы местоположений доставки:
    ID - идентификатор группы местоположений.

  • OnLocationGroupDelete - событие вызывается после удаления группы местоположений доставки:
    ID - идентификатор группы местоположений.

  • OnBeforeLocationGroupAdd - событие вызывается в методе CSaleLocationGroup::Add и может быть использовано для отмены добавления группы местоположений доставки:
    arFields - массив полей группы местоположений.

  • OnLocationGroupAdd - событие вызывается после добавления группы местоположений доставки:
    ID - идентификатор группы местоположений;
    arFields - массив полей группы местоположений.

  • onSaleDeliveryHandlersBuildList - событие вызывается при формировании списка обработчиков автоматизированных служб доставки.

  • onSaleDeliveryHandlerCalculate
    onSaleDeluveryHandlerCalculate_$SID
    Эти два события вызываются после совершения рассчета стоимости доставки (первый - для любого обработчика, второй для обработчика службы доставки со строковым идентификатором $SID). Входные параметры:
    string $SID - строковой идентификатор службы доставки;
    string $profile - строковой идентификатор профиля доставки;
    array $arOrder - ассоциативный массив, описывающий заказ. Ключи: WEIGHT - суммарный вес заказа; PRICE - суммарная стоимость заказа; LOCATION_FROM - идентификатор местоположения точки отправления; LOCATION_TO - идентификатор местоположения точки доставки;
    array $arReturn - ассоциативный массив результата, возвращенный обработчиком заказа.
    В качестве результата обработчика события ожидается массив, аналогичный по структуре параметру $arReturn;

    • Дополнительно смотрите также документацию по службам доставки.


Поиск: для разработчиков

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?
if(CModule::IncludeModule("search"))
{
    //здесь можно использовать функции модуля
}
?>

Работа модуля поиска сводится к предварительному индексированию и последующей выдаче информации сайте по запросу пользователя. Индексирование заключается в сохранении времени изменения, модуля-владельца, кода элемента, языка, web-адреса, заголовка, текста и двух произвольных параметров индексируемого элемента, а так же списка кодов групп пользователей, которые имеют доступ на чтение (как минимум) к данному элементу. Поиск заключается в выдаче списка результатов, удовлетворяющих введенной строке запроса (обрабатывается с учётом языка запросов), а так же набору установленных ограничений (модуль-владелец, код элемента, сайт, два произвольных параметра).

Алгоритм работы модуля поиска таков, что он не имеет никакой информации по характеру и структуре данных других модулей. При индексации модули по запросу сами отдают модулю поиска ту информацию, которую необходимо проиндексировать. Передача осуществляется в виде массива заданной структуры. Связь между модулем поиска и другими модулями системы осуществляется через систему сообщений.

Специальные константы.

Публичные функции и возвращаемые значения

Функция | Описание
stemming | Возвращает массив неизменных основ слов.
stemming_default | Функция морфологического анализа текста применяемая по умолчанию.
stemming_stop_default | Функция определения стоп слова применяемая по умолчанию.
stemming_letter_default | Функция возвращает алфавит по умолчанию.
tags_prepare | Возвращает массив тегов.
InputTags | Возвращает код html для ввода тегов с поддержкой автодополнения.

Классы модуля поиска

Класс | Описание
CSearch | Класс для индексирования сайта и осуществления поиска по индексу.
CSearchCustomRank | Класс поддержки правил сортировки.
CSiteMap | Класс поддержки Google Sitemap.
CSearchTags | Класс поддержки тегов.

События модуля поиска

Событие | Описание
BeforeIndex | Вызывается перед индексацией элемента.
OnSearch | Вызывается перед выполнением поисковых запросов.
OnReindex | Вызывается при построении поискового индекса.
OnSearchGetFileContent | Вызывается по время переиндексации данных главного модуля.
OnSearchGetURL | Вызывается при форматировании элемента в результатах поиска.


Поиск: Константы

  • 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 | Класс для индексирования сайта и осуществления поиска по индексу.
CSearchCustomRank | Класс поддержки правил сортировки.
CSearchTags | Класс поддержки тегов.
CSiteMap | Класс поддержки Google Sitemap.


CSearch

Класс для индексирования сайта и осуществления поиска по индексу

Методы класса

Метод | Описание
CSearch | Конструктор класса CSearch.
Search | Возвращает записи индекса, которые удовлетворяют заданной строке запроса и указанным параметрам, а так же доступны на просмотр для текущего посетителя (в соответствии с его уровнем доступа)
ChangeIndex | Функция изменяет проиндексированную информацию данного модуля.
ChangePermission | Функция изменяет права на доступ к проиндексированной информации данного модуля.
DeleteIndex | Функция удаляет из индекса поиска указанную информацию.
Index | Функция переиндексирует какую-то одиночную позицию (сообщение на форуме, новость и т.п.), причем комбинация (MODULE_ID, ITEM_ID) используется для определения переиндексируемого документа.
ReindexModule | Функция инициирует переиндексацию указанного модуля.
ReIndexAll | Пошаговая функция переиндексации.
ReindexFile | Переиндексация статического файла.
Fetch | Возвращает следующий найденный элемент.


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;
?>


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" => массив кодов групп, члены которых имеют право на чтение индексируемого элемента,
Атрибуты, значения которых не изменились, можно опустить.
ITEM_ID | Код элемента, индекс которого необходимо изменить. Если этот параметр равен false, то ограничение по коду элемента не устанавливается (изменяются индексы элементов с любыми кодами). Не обязательный параметр, по умолчанию равен false.
PARAM1 | Первый параметр элемента, ограничивающий набор проиндексированных элементов, индексы которых необходимо поменять. Если этот параметр равен false, то ограничение по первому параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
PARAM2 | Второй параметр элемента, ограничивающий набор проиндексированных элементов, индексы которых необходимо поменять. Если этот параметр равен false, то ограничение по второму параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
SITE_ID | Сайт проиндексированого элемента, ограничивающий набор элементов, индекс которых необходимо поменять. Если этот параметр равен false, то ограничение по сайту элемента не устанавливается. Необязательный параметр, по умолчанию равен false.

Примеры использования

При изменении заголовка темы форума необходимо соответствующим образом изменить индекс

<?
$new_title = "Новый заголовок темы";
$fid = 5;    // Код форума
$tid = 128;    // Код темы
CSearch::ChangeIndex("forum",
    array(
        "TITLE" => $new_title
    ),
    false, $fid, $tid);
?>


CSearch::ChangePermission

void
CSearch::ChangePermission(
 string MODULE_ID,
 array  arGroups,
 string ITEM_ID = false,
 string PARAM1 = false,
 string PARAM2 = false,
 string SITE_ID = false
);

Функция изменяет права на доступ к проиндексированной информации данного модуля.

Параметры функции

Параметр | Описание
MODULE_ID | Код модуля, права на доступ к информации которого необходимо поменять.
arGroups | Массив кодов групп, которые имеют право на чтение проиндексированной информации.
ITEM_ID | Код элемента, права на доступ к которому необходимо поменять. Если этот параметр равен false, то ограничение по коду элемента не устанавливается (изменяются права на доступ к элементу с любыми кодами). Не обязательный параметр, по умолчанию равен false.
PARAM1 | Первый параметр элемента, ограничивающий набор проиндексированных элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по первому параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
PARAM2 | Второй параметр элемента, ограничивающий набор проиндексированных элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по второму параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
SITE_ID | Сайт проиндексированного элемента, ограничивающий набор элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по сайту элемента не устанавливается. Необязательный параметр, по умолчанию равен false.

Примеры использования

Изменяем права на доступ к проиндексированным сообщениям данного форума при изменении прав на доступ к этому форуму

<?
$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);
?>


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.

Примеры использования

При удалении файла с диска необходимо удалить так же его индекс поиска, если он есть

<?
$path = "/ru/my_files/file.php";
if (unlink($_SERVER["DOCUMENT_ROOT"].$path))
{
    if (CModule::IncludeModule("search"))
        CSearch::DeleteIndex("main", $path);
}
?>


CSearch::Fetch

array
CSearch::Fetch(
);

Возвращает следующий найденный элемент.

Если поле результата URL начинается с символа "=", то вызываются обработчики события OnSearchGetURL.

Параметры функции

Отсутствуют.

Возвращаемое значение

Смотри описание возвращаемого значения метода CSearch::Search. Если достигнут конец выборки, возвращается false.


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 | Служебный параметр, используется при пошаговой переиндексации.

Примеры использования

<?
CSearch::Index(
    "iblock",
    $ID,
    Array(
        "DATE_CHANGE"=>$arIBlockElement["DATE_CHANGE"],
        "TITLE"=>$arIBlockElement["NAME"],
        "SITE_ID"=>$arSites,
        "PERMISSION"=>$arGroups,
        "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
);
?>


CSearch::ReIndexAll

mixed
CSearch::ReIndexAll(
 bool bFull = false,
 int  max_execution_time = 0,
 array NS = Array()
);

Функция пошаговой переиндексации. Для того, чтобы модуль был переиндексирован, он должен предоставить соответствующий метод, который должен быть зарегистрирован в системе событий как обработчик события OnReindex модуля "search".

Параметры функции

Параметр | Описание
bFull | Если равен true, то на первом шаге поисковый индекс будет полностью очищен. По умолчанию равен false, что приводит к перестройке индекса только тех элементов, содержимое которых изменилось.
max_execution_time | Если задан и больше нуля, то как только время выполнения функции превысит значение этого параметра выполнение функции завершится. Данные для начала следующего шага будут возвращены как результат работы функции.
NS | Хранит состояние процесса индексации (прогресс) на начало шага.

Возвращаемое значение

Функция возвращает массив, если требуется вызвать функцию еще раз. Или число проиндексированных элементов, если переиндексация завершена.

См. также

  • OnReindex

Примеры использования

<?
//Этот пример не является примером пошаговой индексации.
//Для этого надо вызывать функцию ReIndexAll только один раз за запуск скрипта.
//А промежуточное состояние (NS) можно сохранять например в файле.

$NS = false;
$NS = CSearch::ReIndexAll(false, 60, $NS);
while(is_array($NS))
    $NS = CSearch::ReIndexAll(false, 60, $NS);
echo $NS;

?>


CSearch::ReindexFile

int
CSearch::ReindexFile(
 string path
);

Функция переиндексирует указанный файл.

Сначала определяется удовлетворяет файл и его размер настройкам модуля поиска. Если одна из проверок не проходит, то возвращается 0. Затем вызываются обработчики события OnSearchGetFileContent модуля "search". После того как один из обработчиков вернет не false, вызов остальных произведен не будет. И наконец вызывается метод CSearch::Index

Параметры функции

Параметр | Описание
path | Путь относительно корня сайта к переиндексируемому файлу.

Возвращаемое значение

Функция возвращает уникальный идентификатор в поисковом индексе в случае успеха и 0 в противном случае.

См. также

  • OnSearchGetFileContent
  • CSearch::Index


CSearch::ReindexModule

void
CSearch::ReindexModule(
 string MODULE_ID,
 bool   bFull = false
);

Функция инициирует переиндексацию указанного модуля. Для того, чтобы модуль был переиндексирован, он должен предоставить соответствующий метод, который должен быть зарегистрирован в системе событий как обработчик события OnReindex модуля "search".

С помощью этого метода невозможно переиндексировать данные модуля "main". Т.к. индексация файлов выполняется не через обработчики событий, а непосредственно модулем поиска. Но можно воспользоваться функцией CSearch::ReIndexAll, передав на первом шаге $NS = array("MODULE_ID"=>"main").

Параметры функции

Параметр | Описание
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");

?>


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.
  • MODULE_ID - идентификатор модуля или массив идентификаторов;
  • ITEM_ID - идентификатор элемента или массив;
  • URL - маска адреса относительно корня сайта, по которому доступен данный элемент или массив масок адресов;
  • DATE_CHANGE - время изменения элемента в формате сайта (включает время);
  • CHECK_DATES - если задан и равен Y, то найдены будут только активные элементы;
aSort Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение:
  • ID - идентификатор в поисковом индексе;
  • MODULE_ID - идентификатор модуля;
  • ITEM_ID - идентификатор элемента поискового индекса (например для форума это идентификатор сообщения);
  • TITLE - заголовок;
  • PARAM1 - первый параметр элемента;
  • PARAM2 - второй параметр элемента;
  • DATE_FROM - дата начала активности элемента;
  • DATE_TO - дата окончания активности элемента;
  • RANK - вычисленное значение релевантности;
  • CUSTOM_RANK - заданное значение релевантности;
  • DATE_CHANGE - время изменения элемента;
Направление сортировки может принимать значение:
  • ASC - по возрастанию;
  • DESC - по убыванию.
Пример (именно это значение считается по умолчанию):
array("CUSTOM_RANK"=>"DESC", "RANK"=>"DESC", "DATE_CHANGE"=>"DESC")
В случае когда параметр bTagsCloud равен true, допустимыми полями являются:
  • DATE_CHANGE - время изменения элемента;
  • NAME - значение тег;
  • CNT - частота тега;
aParamsEx Массив массивов, содержащий дополнительные условия поиска в виде наборов "название поля"=>"значение". Эти условия будут объединены по условию ИЛИ. Смотри описание параметра arParams.

Так же может содержать элемент:
  • STEMMING - Если равно true, то при поиске будет учитываться морфология. Если false, то не будет. Если не задано, то будет использоваться настройка модуля;
Пример сложного условия:
        array(
            array(
                "MODULE_ID" => "forum",
                "PARAM1" => array(1, 2),
            ),
            array(
                "MODULE_ID" => "iblock",
                "PARAM2" => 3,
            ),
        )
В данном случае поиск будет осуществляться в форумах с идентификаторами 1 и 2, а также в инфоблоке с идентификатором 3.
bTagsCloud | Признак построения облака тегов. Если задан и равен true, то будет построено облако тегов.

Возвращаемое значение

Набор записей, каждая из которых представляет собой массив следующей структуры:

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] => Дата изменения элемента включая время.
)

Примеры использования

Поиск в форумах текущего сайта указанной строки

<?
$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;
?>


CSearchCustomRank

Класс поддержки правил сортировки.

Методы класса

Метод | Описание
GetList | Получение списка правил сортировки.
GetByID | Получение правила сортировки по ID.
Add | Функция добавляет новое правило.
Update | Изменение правила сортировки.
Delete | Удаление правила сортировки.
StartUpdate | Подготовка к применению изменений в правилах.
NextUpdate | Шаг применения изменений правил сортировки.
Поля объекта CSearchCustomRank | Описание полей доступных в методах класса.


CSearchCustomRank::Add

int
CSearchCustomRank::Add(
 array arFields
);

Функция добавляет новое правило.

После удаления всех требуемых правил необходимо пересчитать поисковый индекс методами CSearchCustomRank::StartUpdate и CSearchCustomRank::NextUpdate.

Параметры функции

Параметр | Описание
arFields | Массив со значениями полей объекта правила сортировки.

Возвращаемые значения

В случае успешного добавления возвращается ID нового правила. В противном случае возвращается false.

См. также

  • Поля объекта правила сортировки.
  • CSearchCustomRank::StartUpdate
  • CSearchCustomRank::NextUpdate


CSearchCustomRank::Delete

CDBResult
CSearchCustomRank::Delete(
 int ID
);

Удаление правила сортировки по идентификатору.

После удаления всех требуемых правил необходимо пересчитать поисковый индекс методами CSearchCustomRank::StartUpdate и CSearchCustomRank::NextUpdate.

Параметры функции

Параметр | Описание
ID | Идентификатор правила сортировки.

Возвращаемые значения

Если правило успешно удалено, то возвращается результат запроса типа CDBResult в противном случае функция вернет false.

См. также

  • CSearchCustomRank::StartUpdate
  • CSearchCustomRank::NextUpdate


CSearchCustomRank::GetByID

CDBResult
CSearchCustomRank::GetByID(
 int ID
);

Получение правила сортировки по идентификатору.

Параметры функции

Параметр | Описание
ID | Идентификатор правила сортировки.

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта правила сортировки.

См. также

  • Поля объекта правила сортировки.


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 становятся доступны поля объекта правила сортировки.

См. также

  • Поля объекта правила сортировки.


CSearchCustomRank::NextUpdate

array
CSearchCustomRank::NextUpdate(
);

Шаг применения изменений правил сортировки.

Данная функция применяет следующее непримененное правило сортировки к поисковому индексу. Применение правил требуется всякий раз когда происходят их изменения (CSearchCustomRank::Add, CSearchCustomRank::Update и CSearchCustomRank::Delete). При индексации данных или после переиндексации данная процедура не требуется, т.к. правила сортировки учитываются в процессе построения поискового индекса.

Перед началом применения правил необходимо инициировать процесс вызвав CSearchCustomRank::StartUpdate.

Параметры функции

Отсутствуют.

Возвращаемые значения

В случае успешного выполнения возвращается массив следующей структуры:

  • DONE - количество уже примененных правил;
  • TODO - сколько правил еще надо применить.

В противном случае возвращается false и через LAST_ERROR экземпляра класса можно получить текст сообщения об ошибке.

См. также

  • CSearchCustomRank::StartUpdate
  • CSearchCustomRank::Add
  • CSearchCustomRank::Update
  • CSearchCustomRank::Delete


CSearchCustomRank::StartUpdate

CDBResult
CSearchCustomRank::StartUpdate(
);

Подготовка к применению изменений в правилах.

Данная функция начинает процедуру применения правил сортировки к поисковому индексу. Применение правил требуется всякий раз когда происходят их изменения (CSearchCustomRank::Add, CSearchCustomRank::Update и CSearchCustomRank::Delete). При индексации данных или после переиндексации данная процедура не требуется, т.к. правила сортировки учитываются в процессе построения поискового индекса.

Фактически данный метод сбрасывает все весовые коэффициенты. А для собственно применения правил необходимо воспользоваться пошаговой CSearchCustomRank::NextUpdate.

Параметры функции

Отсутствуют.

Возвращаемые значения

В случае успешного выполнения возвращается объект CDBResult. В противном случае возвращается false.

См. также

  • CSearchCustomRank::NextUpdate
  • CSearchCustomRank::Add
  • CSearchCustomRank::Update
  • CSearchCustomRank::Delete


CSearchCustomRank::Update

bool
CSearchCustomRank::Update(
 int   ID,
 array arFields
);

Изменение правила сортировки.

После удаления всех требуемых правил необходимо пересчитать поисковый индекс методами CSearchCustomRank::StartUpdate и CSearchCustomRank::NextUpdate.

Параметры функции

Параметр | Описание
ID | Идентификатор правила.
arFields | Массив со значениями полей объекта правила сортировки.

Возвращаемые значения

В случае успешного добавления возвращается true. В противном случает возвращается false.

См. также

  • Поля объекта правила сортировки.
  • CSearchCustomRank::StartUpdate
  • CSearchCustomRank::NextUpdate


Поля 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) | Да.


CSearchTags

Класс поддержки тегов.

Методы класса

Метод | Описание
GetList | Получение списка тегов элементов поискового индекса.


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.


CSiteMap::Create

mixed
CSiteMap::Create(
 string site_id,
 array max_execution_time,
 array NS
);

Создание карты сайта в формате Google Sitemap.

Создание всегда происходит в пошаговом режиме.

Параметры функции

Параметр | Описание
site_id | Идентификатор сайта для которого будет создаваться карта.
max_execution_time | Элемент этого массива с индексом 0 задает максимальное время одно шага в секундах. А с индексом 1 - максимальное количество записей поискового индекса (рекомендовано задавать не более 5000).
NS | Начало шага. Передается результат, возвращенный предыдущим вызовом этой функции.

Возвращаемое значение

  • 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 | Вызывается перед индексацией элемента.
OnSearch | Вызывается перед выполнением поисковых запросов.
OnReindex | Вызывается при построении поискового индекса.
OnSearchGetFileContent | Вызывается при индексации статических файлов.
OnSearchGetURL | Вызывается при форматировании элемента в результатах поиска.


BeforeIndex

функция-обработчик(
 array &arFields
);

Событие "BeforeIndex" вызывается перед индексацией элемента функцией CSearch::Index.

Параметры

Параметр Описание
arFields Массив следующего содержания:
  • MODULE_ID - идентификатор модуля (не изменится);
  • ITEM_ID - идентификатор элемента (не изменится);
  • PARAM1 - первый параметр элемента;
  • PARAM2 - второй параметр элемента;
  • DATE_FROM - дата начала активности элемента;
  • DATE_TO - дата окончания активности элемента;
  • TITLE - заголовок;
  • BODY - содержание;
  • TAGS - теги элемента;
  • SITE_ID - массив сайтов;
  • PERMISSIONS - массив идентификаторов групп пользователей которым разрешено чтение;
  • URL - адрес относительно корня сайта, по которому доступен данный элемент;

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

См. также

  • 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"] .= " самые свежие новости";
        }
    }
    }
}
?>


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 "";
    }
}
?>


OnSearchGetFileContent

mixed
функция-обработчик(
 string absolute_path
);

Событие "OnSearchGetFileContent" вызывается во время переиндексации данных главного модуля CSearch::ReIndexFile.

Параметры

Параметр | Описание
absolute_path | Абсолютный путь к индексируемому файлу.

Возвращаемое значение

Функция обработчик может вернуть массив описывающий содержимое файла. Массив должен иметь следующую структуру:

  • 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;
    }
}

?>


OnSearchGetURL

string
функция-обработчик(
 array arFields
);

Событие "OnSearchGetURL" вызывается при форматировании элемента в результатах поиска из функции CSearch::Fetch и при построении Google Sitemap CSiteMap::Create.

Параметры

Параметр | Описание
arFields | Массив описывающий элемент поискового индекса.

Возвращаемое значение

Функция обработчик может применить форматирование к элементу URL. И должна его вернуть даже если форматирование не было применено.

См. также

  • CSearch::Fetch
  • CSiteMap::Create
  • Обработка событий

Пример функции-обработчика:

<?
//init.php

// регистрируем обработчик события "OnSearchGetURL" модуля "search"
AddEventHandler("search", "OnSearchGetFileContent", array("CMyClass", "OnSearchGetURL"));

class CMyClass
{
    function OnSearchGetURL($arFields)
    {
        $url = str_replace("#MY_SID#", md5(rand()), $arFields["URL"]);
        return $url;
    }
}

?>


Поиск: функции

Функция | Описание
stemming | Возвращает массив неизменных основ слов.
stemming_default | Функция морфологического анализа текста применяемая по умолчанию.
stemming_stop_default | Функция определения стоп слова применяемая по умолчанию.
stemming_letter_default | Функция возвращает алфавит по умолчанию.
tags_prepare | Возвращает массив тегов.
InputTags | Возвращает код html для ввода тегов с поддержкой автодополнения.


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"].BX_PERSONAL_ROOT."/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
);

Функция разбивает текст на отдельные теги и возвращает массив.

Сначала по site_id определяется язык. Далее текст разбивается на отдельные слова. Разбивка происходит путем удаления всех символов не входящих в алфавит языка (см. описание функции stemming) за исключением символов подчеркивания, пробельных, точки и тире.

Параметры функции

Параметр | Описание
sText | Содержит текст для разбивки на теги.
site_id | Идентификатор сайта.

Возвращаемое значение

Функция возвращает массив тегов.

См. также

  • stemming

Примеры использования

<?
$ar = tags_prepare("apache, Web 2.0, AJAX", "s1");
print_r($ar);

//Будет напечатано:
/*
array(
    "apache" => "apache"
    "Web 2.0" => "Web 2.0"
    "AJAX" => "AJAX"
)
*/
?>


Инсталляция

Для инсталляции модуля требуется выполнить следующие действия.

  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. Все события, инициированные посетителями данной рекламной кампании.
Внимательность посетителей рекламной кампании
Среднее количество хитов за одну сессию. Данные параметр отдельно считается для сессии на прямом заходе и на возврате.
Затраты на рекламную кампанию
Денежная сумма потраченная на ту или иную рекламную кампанию. Значение данного параметра может задано в настройках рекламной кампании.
Доходы рекламной кампании
Денежная сумма полученная от посетителей той или иной рекламной кампании.
Прибыль рекламной кампании
Разница между доходами и затратами на рекламную кампанию.
Рентабельность рекламной кампании
Событие
Под событием можно понимать любое действие, происходящее на сайте, либо вне его пределов. В модуле статистики можно собирать информацию только для тех событий, обработка которых были изначально запланирована и запрограммирована разработчиком сайта (о способах фиксации событий см. методы класса CStatEvent). Примерами событий могут служить: скачивание файла, уход на внешнюю платежную систему, оплата заказа, отмена заказа, клик по баннеру, уход на любой другой сайт по ссылке с вашего сайта, переход на тут или иную страницу вашего сайта.
Тип события
Каждое событие, фиксируемое на сайте имеет свой тип. Тип события представляет из себя совокупность:
  • идентификаторов (event1, event2) типа события
  • названия
  • описания
  • индекса сортировки
  • времени хранения событий данного типа
  • времени хранения динамики количества событий данного типа в разрезе по дням
  • дополнительных настроек
Идентификаторы типа события (event1, event2)
Идентификаторы типа события - два произвольных строковых значения, которые, в первую очередь, позволяют идентифицировать тип события в более читабельном виде, чем просто цифровой ID, а во вторых, позволяют группировать различные типы событий в соответствующем отчете. Данные идентификаторы могут быть заданы:
  • "Вручную" в форме редактирования/создания типа события.
  • Автоматически. При создании событий такими функциями как CStatEvent::AddByEvents, CStatEvent::AddCurrent. Если тип события, идентификатор которого был указан в параметрах этих функций, не существует, то он автоматически будет создан.
Дополнительный параметр события (event3)
Задать данные параметр можно при создании события соответствующими функциями. Значения этих дополнительных параметров можно посмотреть в отчете "События", выводящем каждое событие по отдельности. Цель данного параметра - персонализация каждого отдельного события.
Специальный параметр события
Используется для идентификации посетителя, при уходе его на внешний сайт (например на внешнюю платежную систему для оплаты товара), впоследствии специальный параметр может быть использован для фиксации событий, произошедших вне пределов сайта (например оплата того или иного товара) (подробнее см. метод CStatEvent::Add и "Загрузка событий"). Значение данного параметра представляет из себя строку состоящую из:
  • краткий идентификатор портала (из настроек модуля "Статистика")
  • 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".
Сессия
Под термином сессия в системе Битрикс: Управление сайтом понимается сессия PHP. Сессия может открываться в момент захода на сайт и закрывается при закрытии окна браузера. Также новая сессия открывается при авторизации посетителя и закрывается, если закончить сеанс авторизации (разлогиниться). Синонимом термина сессия можно считать термин заход. Другими словами, сессия - один визит на сайт.
Хост
Термин хост означает IP-адрес посетителя сайта. В системе Битрикс: Управление сайтом все хосты представленные в статистических отчетах имеют свою степень уникальности.

В меню Статистика вы можете видеть количество уникальных хостов (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 ошибки на той или иной странице в модуле "Статистика", необходимо в любом месте страницы, но до эпилога, инициализировать константу "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 атак, но его нельзя считать при этом эффективным средством, т.к. контроль лимита активности осуществляется все таки за счет ресурсов сайта.

Добавление в "Избранное"

Большинство браузеров предоставляют возможность запомнить адрес сайта в так называемых "закладках" или в папке "Избранное" ("Favorites"). В момент такого запоминания, браузер как правило запрашивает иконку сайта хранящуюся в файле /favicon.ico. Это дает возможность фиксировать подобные события в модуле "Статистика".

В тоже время, есть определённая погрешность в подобной технологии и связана с тем, что ряд браузеров (Firefox, NetCaptor, MyIE) запрашивают данную иконку вне зависимости от того добавил ли посетитель сайт в "Избранное" или нет, но это не касается Internet Explorer. Учитывая то, что подавляющее большинство пользователей сети Интернет пользуются Internet Explorer, вышеописанная погрешность невелика.


Переменные окружения

Модуль статистики реализует следующие сессионные переменные:
$_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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CAdv

CAdv - класс для работы с рекламными кампаниями.

Методы класса

Метод | Описание
Delete | Удаляет рекламную кампанию.
GetByID | Возвращает настройки рекламной кампании.
GetDropdownList | Возвращает список рекламных кампаний для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM.
GetDynamicList | Возвращает данные по трафику рекламной кампании в разрезе по дням.
GetEventList | Возвращает список типов событий инициализированным посетителями зашедшими по определённой рекламной кампании.
GetList | Возвращает список рекламных кампаний с рассчитанными статистическими показателями и со всеми данными по трафику.
GetSimpleList | Возвращает список рекламных кампаний.
Reset | Обнуляет статистические данные рекламной кампании.

См. также

  • Термин "Рекламная кампания"
  • Отчет "Рекламные кампании"


CAdv::Delete

bool
CAdv::Delete(
 int adv_id
)

Удаляет рекламную кампанию.

Параметры функции

Параметр | Описание
adv_id | ID рекламной кампании.

См. также

  • Термин "Рекламная кампания"
  • CAdv::Reset

Примеры использования

<?
$adv_id = 1;
if (CAdv::Delete($adv_id))
    echo "Рекламная кампания #".$adv_id." успешно удалена.";
?>


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>";
}
?>


CAdv::GetDropdownList

CDBResult
CAdv::GetDropdownList(
 string order = "ORDER BY REFERER1, REFERER2"
)

Возвращает список рекламных кампаний (РК) для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM.

Параметры функции

Параметр | Описание
order | SQL код, позволяющий задать произвольную сортировку списка рекламных кампаний.

Структура возвращаемой записи

Array
(
    [REFERENCE_ID] => ID РК
    [REFERENCE] => [ID РК] referer1 / referer2
)

См. также

  • Термин "Рекламная кампания"
  • CAdv::GetList
  • CAdv::GetSimpleList
  • SelectBox
  • SelectBoxM

Примеры использования

<?
// выпадающий список с одиночным выбором
echo SelectBox("ADV_ID", CAdv::GetDropdownList(), "", intval($ADV_ID));

// список из 20 видимых элементов с возможностью множественного выбора
echo SelectBoxM("arADV_ID[]", CAdv::GetDropdownList(), $arADV_ID, "", false, 20);
?>


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>";
}
?>


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>";
}
?>


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 запрос по которому будет выбран список РК.

Структура возвращаемой записи

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] => хитов на возврате за период
)

См. также

  • Термин "Рекламная кампания"
  • CAdv::GetSimpleList
  • CAdv::GetDropdownList

Примеры использования

<?
// отфильтруем по рекламным кампаниям в 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>";
}
?>


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", то список был отфильтрован.

Структура возвращаемой записи

Array
(
    [ID] => ID
    [REFERER1] => идентификатор referer1
    [REFERER2] => идентификатор referer2
    [DESCRIPTION] => описание
)

См. также

  • Термин "Рекламная кампания"
  • CAdv::GetList
  • CAdv::GetDropdownList

Примеры использования

<?
// выберем только те рекламные кампании у которых в 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>";
}
?>


CAdv::Reset

bool
CAdv::Reset(
 int adv_id
)

Обнуляет статистические данные рекламной кампании.

Параметры функции

Параметр | Описание
adv_id | ID рекламной кампании.

См. также

  • Термин "Рекламная кампания"
  • CAdv::Delete

Примеры использования

<?
$adv_id = 1;
if (CAdv::Reset($adv_id))
    echo "Данные по рекламной кампании #".$adv_id." успешно удалены.";
?>


CAutoDetect

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CAutoDetect

CAutoDetect - класс для поиска неизвестных UserAgent'ов.

Методы класса

Метод | Описание
GetList | Возвращает список незнакомых UserAgent'ов.

См. также

  • Отчет "Автодетект"


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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CCountry

CCountry - класс для получения данных по трафику в разрезе по странами.

Методы класса

Метод | Описание
GetGraphArray | Возвращает данные необходимые для построения графика и круговой диаграммы посещаемости в разрезе по странам.
GetList | Возвращает список стран, определённых в модуле "Статистика".

См. также

  • Отчет "География по странам"


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] => кол-во событий по стране за дату
                )
            ...

        )
    ...
)

См. также

  • Отчет "География по странам"

Примеры использования

<?
// отфильтруем данные только по России на декабрь 2008 года
$arFilter = Array(
    "COUNTRY_ID" => "ru",
    "DATE1"      => "01.12.2008",
    "DATE2"      => "31.12.2008"
    );

// получим массив данных в разрезе по дням
$arDays = CCountry::GetGraphArray($arFilter, $arLegend);

// выведем полученные данные по России за декабрь 2008 года
while (list($date, $arr) = each($arrDays))
{
    echo "Дата: ".$date."<br>";
    echo "Данные на эту дату: <pre>"; print_r($arr); echo "</pre>";
}
?>


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", то список был отфильтрован.

Структура возвращаемой записи

Array
(
    [ID] => двухсимвольный идентификатор страны
    [SHORT_NAME] => трехсимвольный идентификатор страны
    [NAME] => название страны
    [SESSIONS] => суммарное кол-во сессий
    [NEW_GUESTS] => суммарное кол-во новых посетителей
    [HITS] => суммарное кол-во хитов
    [C_EVENTS] => суммарное кол-во событий
    [REFERENCE_ID] => параметр REFERENCE_ID для использования в
        функции SelectBox или SelectBoxM
    [REFERENCE] => параметр REFERENCE для использования в
        функции SelectBox или SelectBoxM
)

См. также

  • Настройки модуля "Статистика"
  • 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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CGuest

CGuest - класс для получения данных по посетителями сайта.

Методы класса

Метод | Описание
GetByID | Возвращает данные по указанному посетителю.
GetList | Возвращает список посетителей.

См. также

  • Термин "Посетитель"
  • Отчет "Посетители"


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>";
}
?>


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_ID будет искаться точное совпадение;
  • USER_ID* - ID пользователя, под которым посетитель последний раз был авторизован;
  • USER_ID_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER будет искаться точное совпадение.

* - допускается сложная логика
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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CHit

CHit - класс для получения данных по хитами посетителей.

Методы класса

Метод | Описание
GetByID | Возвращает данные по указанному хиту.
GetList | Возвращает список хитов.

См. также

  • Термин "Хит"
  • Отчет "Хиты посетителей"


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>";
}
?>


CHit::GetList

CDBResult
CHit::GetList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список хитов посетителей.

Параметры функции

Параметр | Описание
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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CPage

CPage - класс для получения данных о посещенных страницах сайта.

Методы класса

Метод | Описание
GetDynamicList | Возвращает данные по посещаемости указанной страницы в разрезе по дням.
GetList | Возвращает список посещенных на сайте страниц.

См. также

  • Отчет "Разделы и страницы"


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 - показывать данные по посетителям только на прямом заходе по РК.

    Если не указать ни одно из вышеперечисленных значений, то данные будут показываться в сумме как по прямому заходу так и по возврату.

* - допускается сложная логика

Структура возвращаемой записи

Array
(
    [DATE_STAT] => дата
    [DAY] => номер дня (1-31)
    [MONTH] => номер месяца (1-12)
    [YEAR] => год
    [COUNTER] => кол-во хитов на странице url
    [ENTER_COUNTER] => сколько раз данная страница была точкой входа
    [EXIT_COUNTER] => сколько раз данная страница была точкой выхода
)

См. также

  • Термин "Точка входа"
  • Термин "Точка выхода"

Примеры использования

<?
$url = "http://www.bitrixsoft.ru/about/index.php";

// установим фильтр на декабрь 2008 года
// по прямым заходам с рекламной кампании 1 либо 2
$arFilter = array(
    "DATE1" => "01.12.2008",
    "DATE2" => "31.12.2008",
    "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>";
}
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CPath

CPath - класс для получения данных о путях по сайту.

Методы класса

Метод | Описание
GetByID | По указанному ID записи, функция возвращает данные из таблицы, хранящей статистическую информацию как по полным путям, так и по отрезкам путей в разрезе по дням.
GetList | Возвращает данные из таблицы, хранящей статистическую информацию как по полным путям, так и по отрезкам путей в разрезе по дням.

См. также

  • Отчет "Пути по сайту"
  • Термин "Полный путь"
  • Термин "Отрезок пути"


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>";
}
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CPhrase

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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CReferer

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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CSearcher

CSearcher - класс для работы с поисковыми системами.

Методы класса

Метод | Описание
GetByID | Возвращает данные по указанной поисковой системе.
GetDomainList | Возвращает список доменов поисковых систем.
GetDropdownList | Возвращает список поисковых систем для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM.
GetDynamicList | Возвращает количество хитов, для указанной поисковой системы в разрезе по дням.
GetList | Возвращает список поисковых систем и количество хитов каждой из них за все время ведения статистики, за последние 3 дня, либо за указанный интервал времени.

См. также

  • Отчет "Поисковые системы"


CSearcher::GetByID

CDBResult
CSearcher::GetByID(
 int searcher_id
)

Возвращает данные по указанной поисковой системе.

Параметры функции

Параметр | Описание
searcher_id | ID поисковой системы.

Структура возвращаемой записи

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] флаг "проверять ли лимит активности для
                                    данной поисковой системы в моменты
                                    индексации сайта"
)

См. также

  • CSearcher::GetDomainList
  • Термин "Поисковая система"

Примеры использования

<?
$searcher_id = 1;
if ($rs = CSearcher::GetByID($searcher_id))
{
    $ar = $rs->Fetch();
    // выведем параметры поисковой системы
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


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", то список был отфильтрован.

Структура возвращаемой записи

Array
(
    [ID] => ID домена
    [DOMAIN] => домен
    [VARIABLE] => имя переменной (или группа имен переменных,
                  разделенных запятой) в которых хранится поисковая фраза
)

См. также

  • CSearcher::GetByID
  • Термин "Домен поисковой системы"

Примеры использования

<?
// выберем домены поисковой системы #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>";
}
?>


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
    );
?>


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>";
}
?>


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, то кол-во РК будет ограничено в соответствии со значением параметра "Максимальное кол-во показываемых записей в таблицах" из настроек модуля "Статистика".

Структура возвращаемой записи

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"])
)

См. также

  • CSearcher::GetDropdownList
  • Термин "Поисковая система"

Примеры использования

<?
// отфильтруем данные только для поисковой системы #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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CSearcherHit

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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CSession

CSession - класс для получения данных о сессиях посетителей.

Методы класса

Метод | Описание
GetByID | Возвращает данные по указанной сессии.
GetList | Возвращает список сессий.

См. также

  • Отчет "Сессии посетителей"


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>";
}
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CStatEvent

CStatEvent - класс для работы с событиями.

Методы класса

Метод | Описание
Add | Добавляет событие по заданному ID типа события и специальному параметру.
AddByEvents | Добавляет событие по заданным идентификаторам типа события и специальному параметру.
AddCurrent | Добавляет событие используя текущие параметры посетителя.
DecodeGid | Декодирует специальный параметр используемый при создании события.
Delete | Удаляет указанное событие.
GetGID | Возвращает специальный параметр для текущего посетителя.
GetHandlerList | Возвращает список доступных обработчиков CSV файлов для вывода его в выпадающем списке с помощью функции SelectBoxFromArray, либо в списке множественного выбора с помощью функции SelectBoxMFromArray.
GetList | Возвращает список событий.
GetListByGuest | Возвращает список событий по указанному ID посетителя сайта.

См. также

  • Отчет "Список событий"


CStatEvent::Add

int
CStatEvent::Add(
 int type_id,
 string event3,
 string date,
 string gid,
 mixed money = "",
 string currency = "",
 string chargeback = "N"
)

Добавляет событие по заданному типу и специальному параметру.

Параметры функции

Параметр | Описание
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");
?>


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");
?>


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");
    }
}
?>


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>";
?>


CStatEvent::Delete

bool
CStatEvent::Delete(
 int event_id
)

Удаляет указанное событие.

Параметры функции

Параметр | Описание
event_id | ID удаляемого события.

Возвращаемое значение

Функция возвращает "true" в случае успешного удаления и "false" в случае неудачи.

См. также

  • Термин "Сообытие"

Примеры использования

<?
$event_id = 1;
if (CStatEvent::Delete($event_id))
    echo "Событие #".$event_id." успешно удалено.";
?>


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);
?>


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
)

Возвращаемое значение

Пример массива, возвращаемого функцией:

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
        )

)

См. также

  • CStatEvent::Add
  • CStatEvent::AddByEvents
  • Загрузка событий
  • Термин "Событие"

Примеры использования

<?
// получим список доступных обработчиков
$arrHandlers = CStatEvent::GetHandlerList($arUSER_HANDLERS);

// выведем этот список в виде выпадающего списка
echo SelectBoxFromArray("handler", $arrHandlers, $handler, " ");
?>


CStatEvent::GetList

CDBResult
CStatEvent::GetList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список событий.

Параметры функции

Параметр | Описание
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", то список был отфильтрован.

Структура возвращаемой записи

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] => трехсимвольный идентификатор валюты для денежной суммы
)

См. также

  • CStatEvent::GetListByGuest
  • Термин "Событие"

Примеры использования

<?
// выберем все неудаленные события посетителя #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>";
}
?>


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", то фильтрации по времени не будет.

Структура возвращаемой записи

Array
(
    [ID] => ID события
)

См. также

  • CStatEvent::GetList
  • Термин "Событие"
  • Термин "Дополнительный параметр события (event3)"

Примеры использования

<?
// зафиксируем событие типа
// "Скачивание файла 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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CStatEventType

CStatEventType - класс для работы с типами событий.

Методы класса

Метод | Описание
ConditionSet | Находит тип события по указанным идентификаторам, либо создает новый тип события если такого ещё не существует.
Delete | Удаляет указанный тип события.
GetByEvents | Возвращает тип события по указанным идентификаторам.
GetByID | Возвращает данные по указанному типу события.
GetDropdownList | Возвращает список типов событий для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM.
GetDynamicList | Возвращает количество событий указанного типа в разрезе по дням.
GetList | Возвращает список типов событий.
GetSimpleList | Возвращает список типов событий в упрощённом виде.

См. также

  • Отчет "Типы событий"


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);
?>


CStatEventType::Delete

bool
CStatEventType::Delete(
 int type_id
)

Удаляет указанный тип события, вместе со всеми событиями данного типа.

Параметры функции

Параметр | Описание
type_id | ID типа события.

Возвращаемое значение

Функция возвращает "true" в случае успешного удаления типа события, либо "false" в противном случае.

См. также

  • Термин "Тип события"

Примеры использования

<?
$type_id = 1;
if (CStatEventType::Delete($type_id))
    echo "Тип события #".$type_id." успешно удалено.";
?>


CStatEventType::GetByEvents

CDBResult
CStatEventType::GetByEvents(
 string event1,
 string event2
)

Возвращает тип события по указанным идентификаторам.

Параметры функции

Параметр | Описание
event1 | Идентификатор event1 типа события.
event2 | Идентификатор event2 типа события.

Структура возвращаемой записи

Array
(
    [TYPE_ID] => ID типа события
    [DYNAMIC_KEEP_DAYS] => количество дней, отведенное для
                           хранения статистики по данному типу
                           события в разрезе по дням
    [KEEP_DAYS] => количество дней, отведенное для хранения
                   событий данного типа
    [DATE_ENTER_STR] => дата создания события
)

См. также

  • CStatEventType::ConditionSet
  • Термин "Тип события"

Примеры использования

<?
// зафиксируем событие типа "Скачивание файла 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::GetByID

CDBResult
CStatEventType::GetByID(
 int type_id
)

Возвращает данные по указанному типу события.

Параметры функции

Параметр | Описание
type_id | ID типа события.

Структура возвращаемой записи

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] флаг: включать ли данный тип события
                         в круговую диаграмму и график по умолчанию
)

См. также

  • CStatEventType::GetByEvents
  • CStatEventType::ConditionSet
  • Термин "Тип события"

Примеры использования

<?
$type_id = 1;
if ($rs = CStatEventType::GetByID($type_id))
{
    $ar = $rs->Fetch();
    // выведем параметры типа события
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


CStatEventType::GetDropdownList

CDBResult
CStatEventType::GetDropdownList(
 string order = "ORDER BY EVENT1, EVENT2"
)

Возвращает список типов событий для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM.

Параметры функции

Параметр | Описание
order | SQL код, позволяющий задать произвольную сортировку списка типов событий.

Структура возвращаемой записи

Array
(
    [REFERENCE_ID] => ID типа событий
    [REFERENCE] => "[ID] (event1 / event2) название типа события"
)

См. также

  • CStatEventType::GetList
  • CStatEventType::GetSimpleList
  • Термин "Тип события"

Примеры использования

<?
// выпадающий список с одиночным выбором
echo SelectBox(
    "SEARCHER_ID",
    CStatEventType::GetDropdownList(),
    "",
    intval($SEARCHER_ID)
    );

// список из 20 видимых элементов с возможностью множественного выбора
echo SelectBoxM(
    "arSEARCHER_ID[]",
    CStatEventType::GetDropdownList(),
    $arSEARCHER_ID,
    "",
    false,
    20
    );
?>


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 - конечное значение интервала для поля "дата".

Структура возвращаемой записи

Array
(
    [DATE_STAT] => дата
    [DAY] => день (1-31)
    [MONTH] => месяц (1-12)
    [YEAR] => год
    [COUNTER] => количество событий указанного типа для данной даты
)

См. также

  • CStatEventType::GetList
  • CStatEventType::GetSimpleList

Примеры использования

<?
$type_id = 1;

// установим фильтр на декабрь 2008 года
$arFilter = array(
    "DATE1" => "01.12.2008",
    "DATE2" => "31.12.2008"
    );

// получим набор записей
$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>";
}
?>


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", то кол-во РК будет ограничено в соответствии со значением параметра Максимальное кол-во показываемых записей в таблицах из настроек модуля "Статистика".

Структура возвращаемой записи

В зависимости от установленной группировки, структура возвращаемой записи различная.

  • при группировке по 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] => трехсимвольный идентификатор валюты
)

См. также

  • CStatEventType::GetDynamicList
  • CStatEventType::GetSimpleList
  • Термин "Тип события"

Примеры использования

<?
// получим данные только по тем типам событий
// у которых event1 = "download"
// а также получим дополнительные данные на декабрь 2008 года
$arFilter = array(
    "DATE1_PERIOD" => "01.12.2008",
    "DATE2_PERIOD" => "31.12.2008",
    "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>";
}
?>


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", то список был отфильтрован.

Структура возвращаемой записи

Array
(
    [ID] => ID типа события
    [EVENT1] => идентификатор event1 типа события
    [EVENT2] => идентификатор event2 типа события
    [NAME] => название типа события
    [EVENT] => event1 / event2, либо название типа события если оно указано
    [DESCRIPTION] => описание типа события
)

См. также

  • CStatEventType::GetDynamicList
  • CStatEventType::GetList
  • Термин "Тип события"

Примеры использования

<?
// выберем только те типы событий у которых в 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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CStatistics

CStatistics - класс содержащий общие методы работы с модулем "Статистика".

Методы класса

Метод | Описание
CleanUp | Очищает собранные статистические данные.
Keep | Собирает статистические данные.

См. также

  • Введение в модуль "Статистика"


CStatistics::CleanUp

bool
CStatistics::CleanUp(
 string date = "",
 array &errors
)

Очищает собранные статистические данные.

Параметры функции

Параметр | Описание
date | Дата в формате текущего сайта (или языка) до которой (включительно) необходимо очистить статистику. Если в данном параметре не указать дату, то будут очищены все накопленные данные статистики.
errors | Если параметр date не содержит даты, то в данном параметре будут возвращены возможные ошибки которые могут возникнуть в процессе полной очистки данных статистики.

Возвращаемое значение

Функция возвращает "true", в случае успешного выполнения и "false" - в противном случае.

См. также

  • Настройки модуля "Статистика"

Примеры использования

<?
// дата в формате текущего сайта или языка
// до которой включительно будет очищена вся собранная статистика
$date = "31.12.2008";

// очищаем
CStatistics::CleanUp($date);
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CStopList

CStopList - класс для работы со стоп-листом.

Методы класса

Метод | Описание
Check | Выполняет проверку на попадание текущего посетителя в стоп-лист.
GetByID | Возвращает данные по записи стоп-листа.
GetList | Возвращает список записей стоп-листа.

См. также

  • Работа со стоп-листом


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);
?>


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>";
}
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CTraffic

CTraffic - класс для получения общих данных по посещаемости сайта.

Методы класса

Метод | Описание
GetCommonValues | Возвращает основные статистические данные (количество хитов, хостов, сессий, посетителей, событий) за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени.
GetDailyList | Возвращает основные статистические данные, а также данные по внимательности посетителей в разрезе по дням.
GetPhraseList | Возвращает количество поисковых фраз за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени.
GetRefererList | Возвращает количество ссылающихся сайтов за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени.
GetSumList | Возвращает основные статистические данные в разрезе по часам, дням недели и месяцам.

См. также

  • Отчет "Сводная статистика"
  • Отчет "Посещаемость"


CTraffic::GetCommonValues

array
CTraffic::GetCommonValues(
 array filter = array()
)

Возвращает количество хитов, хостов, сессий, посетителей, событий за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени.

При фильтрации по сайту (filter[SITE_ID]), будут доступны только данные по хитам, хостам, сессиям, событиям. Данные по посетителям будут отсутствовать, т.к. текущая версия модуля предполагает, что посетитель один на весь портал.

Параметры функции

Параметр Описание
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • SITE_ID - ID сайта для которого необходимо получить статистику;
  • DATE1 - начальная дата;
  • DATE2 - конечная дата.

Возвращаемое значение

В случае если не установлена фильтрация по сайту, то структура возвращаемого массива будет следующей:

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
)

См. также

  • CUserOnline::GetGuestCount
  • Отчет "Сводная статистика"

Примеры использования

<?
// получим данные по посещаемости сайта
$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"];
?>


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 будет возвращен соответствующий массив содержащий максимальную и минимальную даты из выбранного результирующего списка.

Структура возвращаемой записи

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 хитов
)

См. также

  • CTraffic::GetCommonValues
  • Отчет "Посещаемость"

Примеры использования

<?
// ограничимся данными только за декабрь 2008 года
$arFilter = array(
    "DATE1" => "01.12.2008",
    "DATE2" => "31.12.2008"
    );

// получим данные по посещаемости
$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>";
}
?>


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, то число записей будет ограничено, иначе ограничений не будет.

Структура возвращаемой записи

Array
(
    [PHRASE] => поисковая фраза
    [TOTAL_PHRASES] => суммарное количество заходов
                       с данной поисковой фразой
    [TODAY_PHRASES] => сколько раз сегодня заходили
                       с данной поисковой фразой
    [YESTERDAY_PHRASES] => сколько раз вчера заходили
                           с данной поисковой фразой
    [B_YESTERDAY_PHRASES] => сколько раз позавчера заходили
                             с данной поисковой фразой
    [PERIOD_PHRASES] => сколько раз заходили с данной
                        поисковой фразой за установленный период времени
                        (filter[DATE1],  filter[DATE2])
)

См. также

  • Класс "CPhrase"
  • Отчет "Сводная статистика"

Примеры использования

<?
// получим дополнительные данные за декабрь 2008 года
$arFilter = array(
    "DATE1" => "01.12.2008",
    "DATE2" => "31.12.2008"
    );

// получим список поисковых фраз и статистику по ним
$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>";
}
?>


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, то число записей будет ограничено, иначе ограничений не будет.

Структура возвращаемой записи

Array
(
    [SITE_NAME] => ссылающийся сайт
    [TOTAL_REFERERS] => суммарное количество заходов
                        с данного ссылающегося сайта
    [TODAY_REFERERS] => количество заходов
                        с ссылающегося сайта за сегодня
    [YESTERDAY_REFERERS] => количество заходов
                            с ссылающегося сайта за вчера
    [B_YESTERDAY_REFERERS] => количество заходов
                              с ссылающегося сайта за позавчера
    [PERIOD_REFERERS] => количество заходов с ссылающегося сайта
                         за установленный период времени
                         (filter[DATE1],  filter[DATE2])
)

См. также

  • Класс "CReferer"
  • Отчет "Сводная статистика"

Примеры использования

<?
// получим дополнительные данные за декабрь 2008 года
$arFilter = array(
    "DATE1" => "01.12.2008",
    "DATE2" => "31.12.2008"
    );

// получим список поисковых фраз и статистику по ним
$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>";
}
?>


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

1С-Битрикс: Управление сайтом Отправить отзыв

Класс CUserOnline

CUserOnline - класс для получения данных о недавних посетителях сайта и их сессиях.

Методы класса

Метод | Описание
GetGuestCount | Возвращает количество посетителей, проявивших активность на сайте (совершивших хит) за определённый интервал времени.
GetList | Возвращает список сессий посетителей, проявивших активность на сайте за определённый интервал времени.

См. также

  • Отчет "Кто на сайте"


CUserOnline::GetGuestCount

int
CUserOnline::GetGuestCount()

Возвращает количество посетителей, проявивших активность на сайте (совершивших хит) за определённый интервал времени. Данный интервал времени задается в настройках модуля "Статистика" в параметре "Интервал посетителей в online (сек.)".

Параметры функции

Без параметров.

См. также

  • CTraffic::GetCommonValues

Примеры использования

<?
echo "Сейчас на сайте посетителей: ".CUserOnline::GetGuestCount();
?>


CUserOnline::GetList

CDBResult
CUserOnline::GetList(
 int &guest_counter,
 int &session_counter
)

Возвращает список сессий посетителей, проявивших активность (совершивших хит) на сайте за определённый интервал времени.

Параметры функции

Параметр | Описание
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>";
}
?>


Информация для разработчиков

Перед использованием модуля необходимо проверить, установлен ли он, и подключить его при помощи конструкции:

<?
if (CModule::IncludeModule("learning"))
{
   //здесь можно использовать функции модуля
}
?>


Структура таблиц модуля обучения

Поля таблиц

Учебные курсы

Поле | Описание | Тип | Обяз. | Умолч.
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 - разрешить переход к следующему вопросу без ответа на текущий вопрос, пользователь не может изменять свои ответы;
  • 3 - разрешить переход к следующему вопросу без ответа на текущий вопрос, пользователь может изменять свои ответы.
 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 |  |


Классы модуля обучения

Следующие PHP классы используются в модуле обучения.

Классы

Класс | Описание
CCourse | Класс для работы с курсами.
CChapter | Класс для работы с главами.
CLesson | Класс для работы с уроками.
CLQuestion | Класс для работы с вопросами.
CLAnswer | Класс для работы с ответами.
CTest | Класс для работы с тестами.
CTestAttempt | Класс для работы с попытками прохождения теста.
CTestResult | Класс для работы с планом тестирования.
CGradeBook | Класс для работы с журналом.
CCertification | Класс для работы с сертификатами.
CStudent | Класс для работы c профилем студента.
CCoursePackage | Класс для экспорта курса.
CCourseImport | Класс для импорта курса.


CCertification

CCertification - класс для работы с сертификатами студентов.
Метод | Описание
GetList | Возвращает список сертификатов по фильтру.
GetByID | Возвращает сертификат по идентификатору.
Add | Добавляет новый сертификат.
Update | Изменят параметры сертификата.
Delete | Удаляет сертификат.
IsCourseCompleted | Проверяет, пройден ли курс.
Certificate | Добавляет или изменяет сертификат, если курс был пройден.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Возвращает список глав по фильтру.
GetByID | Возвращает главу по ее идентификатору.
Add | Добавляет новую главу.
Update | Изменяет параметры главы.
Delete | Удаляет главу.
GetCount | Возвращает количество подразделов.
GetTreeList | Возвращает разделы отсортированные в порядке "полностью развернутого дерева".
GetNavChain | Возвращает путь от заданного раздела до корневого.


Add

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CChapter::GetNavChain

CDBResult
CChapter::GetNavChain(
 int COURSE_ID,
 int CHAPTER_ID
);

Функция возвращает путь по дереву от корня до главы CHAPTER_ID.

Параметры функции

Параметр | Описание
COURSE_ID | Идентификатор курса.
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CChapter::GetTreeList

CDBResult
CChapter::GetTreeList(
 int COURSE_ID
);

Метод возвращает список глав, отсортированный в порядке "полного развернутого дерева".

Параметры функции

Параметр | Описание
COURSE_ID | Идентификатор курса.

Возвращаемое значение

Возвращается объект 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Возвращает список курсов по фильтру.
GetByID | Возвращает курс по идентификатору.
Add | Добавляет новый курс.
Update | Изменяет параметры курса.
Delete | Удаляет курс.
SetPermission | Устанавливает права доступа на курс.
GetPermission | Определяет право доступа для текущего пользователя.
GetGroupPermissions | Возвращает все права доступа для курса.
IsHaveCourse | Определяет, имеет ли текущий пользователь право доступа хотя бы к одному курсу.
GetSite | Возвращает список сайтов для курса.
GetCourseContent | Возвращает список глав и уроков ("дерево" курса).
TimeToStr | Переводит количество секунд в текст.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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");

Возвращаемое значение

Возвращается объект 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCourse::GetList

CDBResult
CCourse::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 - мнемоническое имя курса (можно искать по шаблону [%_]);
  • 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.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
bIncCnt | Возвращать ли количество уроков курса в поле ELEMENT_CNT. Не обязательный параметр, по умолчанию равен false.

Возвращаемое значение

Возвращается объект 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCourse::GetPermission

string
CCourse::GetPermission(
 int COURSE_ID
);

Возвращает право доступа к учебному курсу с идентификатором COURSE_ID для текущего пользователя.

Параметры функции

Параметр | Описание
COURSE_ID | Идентификатор курса.

Возвращаемое значение

Символ права доступа: "D" - запрещён, "R" - чтение, "W" - изменение, "X" - полный доступ (изменение + право изменять права доступа).

См. также

  • CCourse::SetPermission
  • CCourse::GetGroupPermissions

Примеры использования

<?
$permission = CIBlock::GetPermission($id);
if ($permission<"X")
    return false;
?>


GetSite

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | (конструктор) инициализирует импортируемый курс.
ImportPackage | Импортирует курс.


CCourseImport

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | (конструктор) инициализирует экспортируемый курс.
CreateManifest | Возвращает манифест (в xml-формате) архива.
CreatePackage | Создает архив с учебным курсом.


CCoursePackage

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CCoursePackage::CreatePackage

bool
CCoursePackage::CreatePackage(
 int PACKAGE_DIR
);

Создает архив с учебным курсом.

Параметры функции

Параметр | Описание
PACKAGE_DIR | Путь (относительно корня сайта) к директории, куда будет скопирован архив курса.

Возвращаемое значение

Метод возвращает 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 | Возвращает список записей журнала по фильтру.
GetByID | Возвращает запись по идентификатору.
Add | Добавляет новую запись в журнал.
Update | Изменяет параметры записи в журнале.
Delete | Удаляет запись из журнала.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Возвращает список ответов по фильтру.
GetByID | Возвращает ответ по идентификатору.
Add | Добавляет новый ответ.
Update | Изменяет параметры ответа.
Delete | Удаляет ответ.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Возвращает список уроков по фильтру.
GetByID | Возвращает урок по идентификатору.
Add | Добавляет новый урок.
Update | Изменяет параметры урока.
Delete | Удаляет урок.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CLesson::Add

int
CLesson::Add(
 array arFields
);

Метод добавляет новый урок.

Параметры функции

Параметр | Описание
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CLesson::Delete

bool
CLesson::Delete(
 int ID
);

Метод удаляет урок с идентификатором ID.

Параметры функции

Параметр | Описание
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CLesson::GetByID

CDBResult
CLesson::GetByID(
 int ID
);

Возвращает урок по его коду ID. Учитываются права доступа текущего пользователя.

Параметры функции

Параметр | Описание
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CLesson::GetList

CDBResult
CLesson::GetList(
 array arOrder = Array("TIMESTAMP_X"=>"DESC"),
 array arFilter = Array()
);

Возвращает список уроков по фильтру arFilter, отсортированный в порядке arOrder. Учитываются права доступа текущего пользователя.

Параметры функции

Параметр Описание
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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CLesson::Update

bool
CLesson::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры урока с идентификатором ID.

Параметры функции

Параметр | Описание
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 | Возвращает список вопросов по фильтру.
GetByID | Возвращает вопрос по идентификатору.
Add | Добавляет новый вопрос.
Update | Изменяет параметры вопроса.
Delete | Удаляет вопрос.
GetCount | Возвращает количество вопросов.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CLQuestion::Add

int
CLQuestion::Add(
 array arFields
);

Метод добавляет новый вопрос.

Параметры функции

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей вопроса. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленного вопроса, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

См. также

  • CLQuestion::Update
  • Поля вопроса

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $LESSON_ID = 431;

    $arFields = Array(
        "ACTIVE" => "Y",
        "LESSON_ID" => $LESSON_ID,
        "NAME" => "Lesson 1",
        "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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Возвращает список учетных записей студентов.
GetByID | Возвращает учетную запись по идентификатору.
Add | Добавляет новую учетную запись.
Update | Изменяет параметры учетной записи.
Delete | Удаляет учетную запись.
GenerateTranscipt | Возвращает случайный числовой идентификатор.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CStudent::GenerateTranscipt

int
CStudent::GenerateTranscipt(
 int TranscriptLength = 8
);

Возвращает случайный числовой идентификатор.

Параметры функции

Параметр | Описание
TranscriptLength | Длина числового идентификатора. По умолчанию равна 8.

Возвращаемое значение

Случайное число.

См. также

  • CStudent::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    echo CStudent::GenerateTranscipt();
}
?>


GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Возвращает список тестов по фильтру.
GetByID | Возвращает тест по идентификатору.
Add | Добавляет новый тест.
Update | Изменяет параметры теста.
Delete | Удаляет тест.
GetCount | Возвращает количество тестов по фильтру.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 - с каждого урока);
  • 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Возвращает список попыток по фильтру.
GetByID | Возвращает попытку по идентификатору.
Add | Добавляет новую попытку.
Update | Изменяет параметры попытки.
Delete | Удаляет попытку.
GetCount | Возвращает количество попыток.
AttemptFinished | Переводит попытку в статус "Закончена" и пересчитывает набранные баллы.
IsTestCompleted | Проверяет, пройден ли тест.
CreateAttemptQuestions | Создает план вопросов для указанной попытки.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CTestAttempt::GetList

CDBResult
CTestAttempt::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = 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" - права доступа не проверяются.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект 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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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 | Возвращает список вопросов плана тестирования.
GetByID | Возвращает вопрос плана тестирования по идентификатору.
Add | Добавляет новый вопрос плана тестирования.
Update | Изменяет параметры вопроса плана тестирования.
AddResponse | Сохраняет ответ учащегося и устанавливает, отвечен ли вопрос правильно.
Delete | Удаляет вопрос плана тестирования.
GetCount | Возвращает количество вопросов плана тестирования для указанной попытки.
GetProgress | Возвращает количество отвеченных и неотвеченных вопросов плана тестирования.


Add

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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();
    }

}
?>


Классы модуля подписки и рассылки

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Классы

Следующие PHP классы используются в модуле подписки и рассылки.

Классы

Класс | Описание
CPosting | Класс для работы с выпусками новостей подписки.
CRubric | Класс для работы с рубриками подписки.
CSubscription | Класс для работы с подписками на рассылки.
CPostingTemplate | Класс для работы с шаблонами.


CPosting

CPosting - класс для работы с выпусками новостей подписки.

Методы класса

Метод | Описание
Add | Функция добавляет выпуск.
Delete | Функция удаляет выпуск по его идентификатору.
GetByID | Функция возвращает выпуск по его идентификатору.
GetEmails | Функция возвращает массив адресов, по которым выпуск будет отправлен.
GetGroupList | Функция возвращает выборку групп пользователей, на которые будет отправлен выпуск.
UpdateGroups | Функция изменяет информацию о привязке выпуска к группам пользователей.
GetList | Функция возвращает список выпусков по фильтру.
GetRubricList | Функция возвращает выборку рассылок, на которые будет отправлен выпуск.
UpdateRubrics | Функция изменяет информацию о привязке выпуска к рубрикам подписки.
SendMessage | Функция возвращает true при успешной отправке, false при неуспешной, "CONTINUE" при частичной отправке. При неуспешной отправке переменная LAST_ERROR класса содержит сообщение об ошибке.
Update | Функция изменяет информацию о выпуске по его идентификатору.
Lock | Функция возвращает true при успешной блокировке выпуска и false при неуспешной.
UnLock | Функция возвращает true при успешном снятии блокировки выпуска и false при неуспешном.
SaveFile | Функция добавляет вложение к выпуску сохраняя и регистрируя его в таблице файлов (b_file).
DeleteFile | Функция удаляет одно или все вложения выпуска.
GetFileList | Функция возвращает выборку вложений выпуска.
AutoSend | Функция для отправки выпуска с помощью cron'а или агента.
ChangeStatus | Функция изменяет статус выпуска.


CPosting::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).

Пример использования

$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::AutoSend

CPosting::AutoSend(
 int ID = false,
 bool limit = false
);

Функция для отправки выпуска с помощью cron'а или агента.

Параметры функции

Параметр | Описание
ID | Идентификатор выпуска. Если параметр не указан или равен false, то будут отсылаться все выпуски в статусе "В процессе" время отправки которых меньше или равно текущему. В порядке возрастания времени отправки.
limit | Флажок ограничения количества отправляемых писем за один вызов. Если этот параметр указан и равен true количество писем отправляемых за один вызов данной функции ограничивается параметром "Количество писем для автоматической рассылки агентом за один запуск" в настройках модуля. При отправке выпуска с помощью агента (задан параметр ID) дополнительно ограничивается продолжительность отправки, которая определяется параметром в настройках модуля.

Возвращаемые значения

Нет.

Пример использования в сценарии 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"))
{
    $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>


CPosting::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");
}


CPosting::Delete

mixed
CPosting::Delete(
 int ID
);

Функция удаляет выпуск по его идентификатору.

Параметры функции

Параметр | Описание
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.";


CPosting::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);


CPosting::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";


CPosting::GetEmails

array
CPosting::GetEmails(
 array post_arr
);

Функция возвращает массив адресов, по которым выпуск будет отправлен.

Параметры функции

Параметр | Описание
post_arr | Массив всех полей объекта "Выпуск" в виде наборов "название поля" => "значение".

Возвращаемые значения

Функция возвращает массив уникальных e-mail адресов. В который входят

  • Адреса подписчиков из рубрик выпуска, подписка которых активна и подтверждена с учетом формата подписки и фильтра адресов.
  • Адреса зарегистрированных и активных пользователей принадлежащих тем группам к которым привязан выпуск.
  • Адреса перечисленные в поле BCC_FIELD.

Пример использования

$post = CPosting::GetByID($ID);
if(($post_arr = $post->Fetch()))
    $aEmail = CPosting::GetEmails($post_arr);


CPosting::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"];


CPosting::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;
?>


CPosting::GetList

CDBResult
CPosting::GetList(
 array aSort = Array(),
 array aFilter = Array()
);

Функция возвращает список выпусков по фильтру.

Параметры функции

Параметр Описание
aSort Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение:
  • ID - идентификатор выпуска;
  • TIMESTAMP - дата изменения;
  • SUBJECT - тема письма;
  • BODY_TYPE - тип текста;
  • STATUS - статус выпуска;
  • DATE_SENT - дата отправки выпуска;
  • AUTO_SEND_TIME - время автоматической отправки выпуска;
Направление сортировки может принимать значение:
  • ASC - по возрастанию;
  • DESC - по убыванию.
Пример:
array("STATUS"=>"ASC",
      "DATE_SENT"=>"DESC")
aFilter Массив, содержащий фильтр в виде наборов "название поля"=>"значение фильтра".

Название поля может принимать значение:
  • 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 - текст письма (возможны сложные условия).
Пример:
array("SUBJECT"=>"test | тест",
      "TO"=>"@bitrixsoft.ru")

Возвращаемые значения

Возвращается результат запроса типа 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_"))
{
    //...
}


CPosting::GetRubricList

CDBResult
CPosting::GetRubricList(
 int ID
);

Функция возвращает выборку рассылок, на которые будет отправлен выпуск.

Параметры функции

Параметр | Описание
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"];


CPosting::Lock

bool
CPosting::Lock(
 int ID
);

Функция возвращает true при успешной блокировке выпуска и false при неуспешной. Используется при автоматичаской отправке выпусков.

Параметры функции

Параметр | Описание
ID | Идентификатор выпуска.

Возвращаемые значения

В случае успешной блокировки возвращается true. В противном случае возвращается false.

Пример использования

if(CPosting::Lock($ID)===false)
    return "CONTINUE";


CPosting::SaveFile

bool
CPosting::SaveFile(
 int ID,
 array file
);

Функция добавляет вложение к выпуску сохраняя и регистрируя его в таблице файлов (b_file).

Параметры функции

Параметр | Описание
ID | Идентификатор выпуска.
file Массив с данными файла формата:
Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла");
Массив такого вида может быть взят прямо из $_FILES[имя поля]

Возвращаемые значения

В случае успешного сохранения вложения возвращается ID зарегистрированного файла. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке.

Пример использования

if (strlen($save)>0 && $REQUEST_METHOD=="POST")
{
    $file_id = CPosting::SaveFile($ID, $_FILES["FILE_TO_ATTACH"]);
    if($file_id===false)
    strError .= "Ошибка при сохранении вложения."."<br>";
}


CPosting::SendMessage

mixed
CPosting::SendMessage(
 int ID,
 int timeout = 0,
 int maxcount = 0
);

Функция отправляет выпуск в почтовую рассылку по адресам.

Выпуски со статусом "Успешно отправлен" повторно не отправляются. Если у выпуска установлен статус "Частично отправлен", то выпуск отправляется по оставшимся адресам.

Сначала выполняется попытка получения блокировки выпуска (см. CPosting::Lock). Если блокировку получить не удалось, то отправка считается частичной и функция возвращает "CONTINUE". Затем формируется тело письма для отправки и в цикле по адресам подписчиков осуществляется отправка выпуска с использованием php функции mail.

В режиме отправки "Персонально каждому получателю" перед вызовом mail вызываются обработчики события BeforePostingSendMail.

Затем из очереди на отправку удаляются адреса на которые выпуск был отправлен, а в список ошибочных добавляются те адреса для которых отправка была выполнена с ошибкой.

С выпуска снимается блокировка(см. CPosting::UnLock).

Параметры функции

Параметр | Описание
ID | Идентификатор выпуска.
timeout | Максимальное время отправки в секундах. При превышении этого времени функция прерывает работу и устанавливает статус выпуска "Частично отправлен". Параметр имеет значение только при методе отправки "Персонально каждому получателю". Если timeout=0, то отправка производится за один шаг.
maxcount | Максимальное количество писем для отправки. При превышении этого количества функция прерывает работу и устанавливает статус выпуска "Частично отправлен". Параметр имеет значение только при методе отправки "Персонально каждому получателю". Если maxcount=0, то отправка производится за один шаг.

Возвращаемые значения

Функция возвращает true при успешной отправке, false при неуспешной, "CONTINUE" при частичной отправке. При неуспешной отправке переменная LAST_ERROR класса содержит сообщение об ошибке.

Пример использования

<?
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"


CPosting::UnLock

bool
CPosting::UnLock(
 int ID
);

Функция возвращает true при успешном снятии блокировки выпуска и false при неуспешном. Используется при отправке выпусков.

Параметры функции

Параметр | Описание
ID | Идентификатор выпуска.

Возвращаемые значения

В случае успешного снятия блокировки возвращается true. В противном случае возвращается false.

Пример использования

CPosting::UnLock($ID);


CPosting::Update

bool
CPosting::Update(
 int ID,
 array arFields
);

Функция изменяет информацию о выпуске по его идентификатору.

Параметры функции

Параметр | Описание
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;


CPosting::UpdateGroups

void
CPosting::UpdateGroups(
 int ID,
 array aGroup
);

Функция изменяет информацию о привязке выпуска к группам пользователей.

Параметры функции

Параметр | Описание
ID | Идентификатор выпуска.
aRubric | Массив идентификаторов групп пользователей.

Пример использования

$posting = new CPosting;
$posting->UpdateGroups($ID, array(1));


CPosting::UpdateRubrics

void
CPosting::UpdateRubrics(
 int ID,
 array aRubric
);

Функция изменяет информацию о привязке выпуска к рубрикам подписки.

Параметры функции

Параметр | Описание
ID | Идентификатор выпуска.
aRubric | Массив идентификаторов рассылок.

Пример использования

$posting = new CPosting;
$posting->UpdateRubrics($ID, array(1, 2, 3));


Поля CPosting

Класс CPosting использует следующие поля при работе с объектом "Выпуск".

Название поля | Описание | Тип | Обяз.
ID | Идентификатор выпуска. | int | Да.
TIMESTAMP_X | Дата модификации записи. | datetime |
STATUS | Статус выпуска. Может принимать значение: "S" (отправлен успешно), "E" (отправлен с ошибками), "P" (в процессе), "W" (остановлен), "D" (черновик). | char(1) |
DATE_SENT | Дата отправки выпуска. | datetime |
SENT_BCC | Список адресов, на которые отправлен выпуск. Адреса разделены запятыми. | text |
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) |
CHARSET | Кодировка, указываемая в заголовке письма. | string(50) |
EMAIL_FILTER | Фильтр на выборку адресов. | string(255) |
SUBSCR_FORMAT | Фильтр на формат текста. Формат указан в подписках. | string(4) |
ERROR_EMAIL | Список адресов, на которые не удалось отправить выпуск. Адреса в списке разделены запятыми. | text |
AUTO_SEND_TIME | Время для начала отправки выпуска с помощью агента или по cron'у. | datetime |
BCC_TO_SEND | Список адресов, по которым происходит отправка выпуска. Адреса в списке разделены запятыми. | text |


CRubric

CRubric - класс для работы с рубриками подписки.

Методы класса

Метод | Описание
Add | Функция добавляет рассылку.
Delete | Функция удаляет рассылку.
GetByID | Функция выбирает одну рассылку по ее идентификатору.
GetList | Функция возвращает список рассылок по фильтру.
GetSubscriptionCount | Функция возвращает количество подписчиков на указанную рассылку. Учитываются как подтвержденные, так и неподтвержденные подписчики.
Update | Функция модифицирует рассылку.


CRubric::Add

int
CRubric::Add(
    array arFields
);

Функция добавляет рассылку. При этом если рассылка активна и является автоматической, то в случае соответствующей настроки модуля (метод генерации не cron) добляется агент для генерации выпусков.

Параметры функции

Параметр | Описание
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;


CRubric::Delete

mixed
CRubric::Delete(
    int ID
);

Функция удаляет рассылку.

Параметры функции

Параметр | Описание
ID | Идентификатор рассылки.

Возвращаемые значения

В случае успешного удаления возвращается результат типа CDBResult. В противном случает возвращается false.

Пример использования

if (($res = CRubric::Delete($ID)) &&
     $res->AffectedRowsCount() < 1 ||
     $res == false)
    echo "Error";


CRubric::GetByID

CDBResult
CRubric::GetByID(
    int ID
);

Функция выбирает одну рассылку по ее идентификатору.

Параметры функции

Параметр | Описание
ID | Идентификатор рассылки.

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Рассылка".

Пример использования

if($ID>0)
{
    $rubric = CRubric::GetByID($ID);
    if($rubric->ExtractFields("str_"))
        echo $str_NAME;
}


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;
?>


CRubric::GetSubscriptionCount

int
CRubric::GetSubscriptionCount(
    int ID
);

Функция возвращает количество подписчиков на указанную рассылку. Учитываются как подтвержденные, так и неподтвержденные подписчики.

Параметры функции

Параметр | Описание
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;
?>


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 использует следующие поля при работе с объектом "Рассылка":

Название поля | Описание | Тип | Обяз.
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) |


Инсталляция

© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


CSubscription

CSubscription - класс для работы с подписками на рассылки.

Методы класса

Метод | Описание
Add | Функция добавляет подписку на рассылки и отправляет подписчику письмо с кодом подтверждения подписки (если не указано не отправлять).
Authorize | Авторизует посетителя для доступа к редактированию подписки. Признак успешной авторизации сохраняется в PHP-сессии.
ConfirmEvent | Функция добавляет событие SUBSCRIBE_CONFIRM для отправки подписчику письма с кодом подтверждения подписки. Письмо формируется по шаблону типа "SUBSCRIBE_CONFIRM - Подтверждение подписки".
Delete | Функция удаляет подписку.
GetByEmail | Функция выбирает подписку по уникальному Email.
GetByID | Функция выбирает подписку по ее идентификатору.
GetList | Функция выбирает список подписок по фильтру.
GetRubricArray | Функция возвращает массив идентификаторов рассылок, на которые подписан данный адрес.
GetRubricList | Функция возвращает выборку рассылок, на которые подписан данный адрес.
GetUserSubscription | Функция возвращает массив полей подписки текущего пользователя. Подписка определяется по Email, сохраненному в куках посетителя, либо по Email авторизованного пользователя.
IsAuthorized | Функция проверяет, авторизован ли текущий посетитель для доступа к информации о подписке.
Update | Функция изменяет данные подписки. Если изменяется адрес подписки, то функция снимает подтверждение с подписки и генерирует событие для отправки письма с кодом подтверждения подписки (если это явно не запрещено). Если подписка не подтверждена, а массив полей включает в себя правильный CONFIRM_CODE, то подписка подтверждается.


CSubscription::Add

int
CSubscription::Add(
    array arFields,
    string SITE_ID = SITE_ID
);

Функция добавляет подписку на рассылки и отправляет подписчику письмо с кодом подтверждения подписки (если не указано не отправлять).

Параметры функции

Параметр | Описание
arFields Массив со значениями полей объекта "Подписка". Дополнительно могут быть указаны поля:
  • RUB_ID - массив идентификаторов рассылок, на которые подписывается адрес;
  • SEND_CONFIRM - отправлять ли письмо с кодом подтверждения подписчику (Y/N).
  • ALL_SITES - отписать подписчика от рассылок всех сайтов или от только от заданного SITE_ID (Y/N).
SITE_ID | Идентификатор сайта, по которому определяется шаблон письма о подтверждении подписки. По умолчанию параметр принимает значение текущего сайта.

Требования к полям передаваемым в arFields

  • EMAIL - должно содержать правильный адрес e-mail (см. функцию check_email). Также выполняется проверка уникальности EMAIL.
  • TO_FIELD - в случае когда поле DIRECT_SEND равно Y не должно быть пустым.
  • USER_ID - если задано, то должно содержать идентификатор зарегистрированного пользователя.

Возвращаемые значения

В случае успешного добавления возвращается 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>";
}


CSubscription::Authorize

bool
CSubscription::Authorize(
    int ID,
    string CONFIRM_CODE = false
);

Авторизует посетителя для доступа к редактированию подписки. Признак успешной авторизации сохраняется в PHP-сессии ($_SESSION["SESS_SUBSCR_AUTH"][$ID]).

Если подписка анонимная, то авторизация проверяется по коду подтверждения подписки. Если подписка принадлежит зарегистрированному пользователю, то доступ предоставляется только авторизованному пользователю-владельцу подписки.

Параметры функции

Параметр | Описание
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));
}


CSubscription::ConfirmEvent

bool
CSubscription::ConfirmEvent(
    int ID,
    string SITE_ID = SITE_ID
);

Функция добавляет событие SUBSCRIBE_CONFIRM для отправки подписчику письма с кодом подтверждения подписки. Письмо формируется по шаблону типа "SUBSCRIBE_CONFIRM - Подтверждение подписки".

Параметры функции

Параметр | Описание
ID | Идентификатор подписки.
SITE_ID | Идентификатор сайта, по которому определяется шаблон письма о подтверждении подписки. По умолчанию параметр принимает значение текущего сайта.

Возвращаемые значения

При успешном добавлении события функция возвращает true, иначе false.

Пример использования

if($ID > 0)
{
    //confirmation code request
    if($action == "sendcode")
    {
        if(CSubscription::ConfirmEvent($ID))
            echo "Subscription confirmation was sent successfully";
    }
}


CSubscription::Delete

mixed
CSubscription::Delete(
    int ID
);

Функция удаляет подписку.

Параметры функции

Параметр | Описание
ID | Идентификатор подписки.

Возвращаемые значения

В случае успешного удаления возвращается результат типа CDBResult. В противном случае возвращается false.

Пример использования

if (($res = CSubscription::Delete($ID)) &&
     $res->AffectedRowsCount() < 1 ||
     $res == false)
    echo "Error deleting subscription.";
else
    echo "Subscription deleted.";


CSubscription::GetByEmail

CDBResult
CSubscription::GetByEmail(
    string email
);

Функция выбирает подписку по уникальному Email.

Параметры функции

Параметр | Описание
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;


CSubscription::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;


CSubscription::GetList

CDBResult
CSubscription::GetList(
    array aSort = Array(),
    array aFilter = Array()
);

Функция выбирает список подписок по фильтру.

Если параметр aFilter не задан, то сортировки будет выполнена в порядке убывания поля ID.

Параметры функции

Параметр Описание
aSort Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение:
  • ID - идентификатор подписки;
  • DATE_INSERT - дата добавления;
  • DATE_UPDATE - дата изменения;
  • DATE_CONFIRM - дата подтверждения;
  • ACT - флаг активности;
  • CONF - флаг подтверждения;
  • EMAIL - адрес подписки;
  • FMT - формат подписки;
  • USER - идентификатор пользователя.
  • CONFIRM_CODE - код подтверждения подписки.
  • Направление сортировки может принимать значение:
  • ASC - по возрастанию;
  • DESC - по убыванию.
Например: array("EMAIL"=>"ASC", "ACT"=>"DESC")
aFilter Массив, содержащий фильтр в виде наборов "название поля"=>"значение фильтра".

Название поля может принимать значение:
  • ID - идентификатор подписки (возможны сложные условия);
  • EMAIL - адрес (возможны сложные условия);
  • UPDATE_1 - дата модификации (начало периода);
  • UPDATE_2 - дата модификации (конец периода);
  • INSERT_1 - дата добавления (начало периода);
  • INSERT_2 - дата добавления (конец периода);
  • USER - пользователь (возможны сложные условия по полям пользователя ID, LOGIN, NAME, LAST_NAME);
  • USER_ID - идентификатор пользователя (возможны сложные условия);
  • ANONYMOUS - флаг анонимности подписки;
  • CONFIRMED - флаг подтверждения подписки;
  • ACTIVE - флаг активности подписки;
  • FORMAT - формат подписки;
  • RUBRIC - рубрики подписки в виде массива идентификаторов или строки, сформированной по правилам логики фильтра.
Например: array("CONFIRMED"=>"Y", "ACTIVE"=>"Y")

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Подписка".

Пример использования

//в какие рубрики отправлять
$aPostRub = array();
$post_rub = CPostingGeneral::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"];


CSubscription::GetRubricArray

array
CSubscription::GetRubricArray(
    int ID
);

Функция возвращает массив идентификаторов рассылок, на которые подписан данный адрес.

Параметры функции

Параметр | Описание
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;
?>


CSubscription::GetRubricList

CDBResult
CSubscription::GetRubricList(
    int ID
);

Функция возвращает выборку рассылок, на которые подписан данный адрес.

Параметры функции

Параметр | Описание
ID | Идентификатор подписки.

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны некоторые поля объекта "Рассылка". А именно:

  • ID - Идентификатор рассылки;
  • NAME - Название рассылки;
  • SORT - Сортировка в списке;
  • LID - Идентификатор сайта;
  • ACTIVE - Признак активности рассылки (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;
}


CSubscription::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
//.....


CSubscription::IsAuthorized

bool
CSubscription::IsAuthorized(
    int ID
);

Функция проверяет, авторизован ли текущий посетитель для доступа к информации о подписке.

Параметры функции

Параметр | Описание
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;
}


CSubscription::Update

mixed
CSubscription::Update(
    int ID,
    array arFields,
    string SITE_ID = SITE_ID
);

Функция изменяет данные подписки. Если изменяется адрес подписки, то функция снимает подтверждение с подписки и генерирует событие для отправки письма с кодом подтверждения подписки (если это явно не запрещено). Если подписка не подтверждена, а массив полей включает в себя правильный CONFIRM_CODE, то подписка подтверждается.

Параметры функции

Параметр | Описание
ID | Идентификатор подписки.
arFields | Массив со значениями полей объекта "Подписка". Дополнительно могут быть указаны поля: RUB_ID - массив идентификаторов рассылок, на которые подписывается адрес; SEND_CONFIRM - отправлять ли письмо с кодом подтверждения подписчику при изменениии адреса (Y/N).
SITE_ID | Идентификатор сайта, по которому определяется шаблон письма о подтверждении подписки. По умолчанию параметр принимает значение текущего сайта.

Возвращаемые значения

В случае успешного изменения возвращается true. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке (так же возбуждается исключение CMain::ThrowException).

При успешном результате переменная класса LAST_MESSAGE содержит строку-код информационного сообщения. Возможные значения:
"CONF" - подписка подтверждена;
"SENT" - сгенерировано событие для отправки письма с кодом подтверждения.

Пример использования

//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";
        }
    }
}


Поля CSubscription

Класс CSubscription использует следующие поля при работе с объектом "Подписка":

Название поля | Описание | Тип | Обяз.
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 |


CPostingTemplate

CPostingTemplate - класс для работы с шаблонами генерации выпусков подписки.

Методы класса

Метод | Описание
GetList | Функция возвращает список шаблонов.
GetByID | Функция возвращает шаблон по его идентификатору (относительному пути).
IsExists | Функция проверяет существование каталога шаблона.
Execute | Функция выбирает шаблон для генерации выпуска рассылки в соответствии с расписанием.
AddPosting | Функция генерации выпуска на основании шаблона.


CPostingTemplate::AddPosting

void
CPostingTemplate::AddPosting(
    array arRubric
);

Функция генерации выпуска на основании шаблона.

Сначала ищется и подключается языковой файл шаблона. Поиск осуществляется по пути <шаблон>>/lang/<идентификатор языка сайта к которому привязана рассылка>/template.php. Затем исполняется (подключается файл <шаблон>>/lang/template.php) шаблон. Весь вывод шаблона становится телом письма, а массив возвращаемый из него становится полями выпуска.

Если в этом массиве есть элемент FILES, к выпуску добавляются вложения. Элементами этого массива должны быть массивы формата:

Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла");
Массив такого вида может быть сформирован с помощью функии CFile::MakeFileArray.

А если в этом массиве есть элемент DO_NOT_SEND и его значение равно "Y", то выпуск не будет отправлен. Может быть использовано для отладки генерации или премодерации автоматических выпусков.

Параметры функции

Параметр | Описание
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);
}


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");
?>


CPostingTemplate::GetByID

array
CPostingTemplate::GetByID(
    string path = ""
);

Функция возвращает шаблон по его идентификатору (относительному пути).

Параметры функции

Параметр | Описание
path | Относительный путь к каталогу шаблона.

Возвращаемые значения

Возвращается массив формируемый в файле description.php дополненный элементом "path" равным относительному пути к каталогу шаблона.

Пример файла description.php

<?
$arTemplate =
    Array(
    "NAME"=>"Дайджест новостей",
    "DESCRIPTION"=>"Шаблон генерации дайджеста новостей."
    );
?>


CPostingTemplate::GetList

array
CPostingTemplate::GetList();

Функция возвращает список шаблонов.

Параметры функции

Функция не имеет параметров.

Возвращаемые значения

Возвращается массив относительных путей к подкаталогам каталога substr(BX_PERSONAL_ROOT, 1)."/php_interface/subscribe/templates".

Пример использования

<?
//get template directories
$arTemplates = CPostingTemplate::GetList();
foreach($arTemplates as $template_dir):
?>
    <p><?echo $template_dir?></p>
<?
endforeach;
?>


CPostingTemplate::IsExists

bool
CPostingTemplate::IsExists(
    string path = ""
);

Функция проверяет существование каталога шаблона.

Параметры функции

Параметр | Описание
path | Относительный путь к каталогу шаблона.

Возвращаемые значения

Функция возвращает true если каталог шаблона существует и false в противном случае.

Пример использования

<?
if(!CPostingTemplate::IsExists("bitrix/php_interface/subscribe/templates/news"))
    echo "Указанный шаблон не существует.";
?>


События, инфоблоки

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

События

Событие | Описание
BeforePostingSendMail | Вызывается перед отправкой выпуска каждому конкретному адресату.


BeforePostingSendMail

функция-обработчик(
 array &arFields
);
Событие "BeforePostingSendMail" вызывается перед отправкой выпуска из функции CPosting::SendMessage.

Параметры

Параметр Описание
arFields Массив следующего содержания:
  • POSTING_ID - идентификатор выпуска.
  • EMAIL - адрес на который будет отправлен выпуск.
  • SUBJECT - заголовок письма (в кодированном виде, если установлена соответсветствующая настройка модуля).
  • BODY - тело письма уже отформатированное в соответствии со стандартом MIME.
  • HEADER - служебные заголовки.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

См. также

  • 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"]);
    }
}
?>


Для разработчиков, техподдержка

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для разработчиков

Информация представленная в данном разделе содержит сведения о классах и методах классов модуля техподдержки, а также об этапах инсталляции модуля.


Инсталляция

Для инсталляции модуля вам необходимо выполнить следующее:

  1. Убедитесь что версия ядра не менее чем 3.0.5 (версию ядра можно узнать в левом нижнем углу административных страниц). Инсталлятор не даст вам установить модуль, если версия ядра не соответствует требуемой.
  2. Создайте группу ответственных за обращения и группу администраторов обращений.
  3. На странице управления модулями нажмите на кнопку Установить напротив модуля техподдержки.
  4. Установите необходимые значения следующих параметров модуля:
    Наименование параметра | Описание
    Каталог техподдержки | Путь к скриптам техподдержки в публичной части. Если вы задали этот параметр в момент инсталляции, для каждого сайта будет создана указанная папка и туда будут скопированы все необходимые скрипты.
  5. Нажмите кнопку Установить.
  6. Создайте меню в публичной части сайта к скрипту “ticket_list.php”.
  7. Заполните справочник техподдержки.

Инсталляция подразумевает создание следующих таблиц в базе:

  • b_ticket – таблица обращений
  • b_ticket_message – таблица сообщений (в каждом обращении может быть от одного и более сообщений)
  • b_ticket_dictionary – таблица справочника техподдержки
  • b_ticket_online – таблица содержащая сведения о том кто и когда просматривал обращения

После создания необходимых таблиц происходит загрузка справочных данных по умолчанию.

Когда таблицы подготовлены, происходит копирование всех необходимых скриптов для администрирования техподдержки из каталога “\bitrix\modules\support\install\public\bitrix\admin\” в каталог ”\bitrix\admin\”.

Если необходимо, то в каждом сайте происходит создание каталога, имя которого указанно в параметре “Каталог техподдержки”. После этого в эти каталоги копируются файлы:

  • ticket_list.php – список обращений
  • ticket_edit.php – редактирование одного обращения
  • ticket_message_edit.php – редактирование сообщения

Вышеописанные файлы будут скопированы из каталога “\bitrix\modules\support\install\public\”.


Классы

CTicket

Kласс для работы с обращениями.

Методы класса

Метод | Описание
Set | Создает новое обращение, либо обновляет существующее.
GetList | Возвращает список обращений с использованием фильтра.
GetByID | Возвращает одно обращение по его ID.
GetMessageList | Возвращает сообщений в одном обращении.
GetMessageByID | Возвращает одно сообщение по его ID.

CTicketDictionary

Kласс для работы со справочником техподдержки.

Методы класса

Метод | Описание
GetList | Возвращает список записей справочника с использованием фильтра.
GetByID | Возвращает одну запись справочника по ее ID.


CTicket

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CTicket

CTicket - класс для работы с обращениями.

Методы класса

Метод | Описание
Set | Создает новое обращение, либо обновляет существующее.
GetList | Возвращает список обращений с использованием фильтра.
GetByID | Возвращает одно обращение по его ID.
GetMessageList | Возвращает сообщений в одном обращении.
GetMessageByID | Возвращает одно сообщение по его ID.


CTicket::Delete

record set
CTicket::Delete(
 int TICKET_ID,
 char(1) CHECK_RIGHTS="Y"

);

Функция удаляет обращение.

Параметры функции

Параметр | Описание
TICKET_ID | ID обращения.
CHECK_RIGHTS | "Y" - необходимо проверить право на удаление у текущего пользователя; "N" - прав проверять не надо.


CTicket::DeleteMessage

record set
CTicket::DeleteMessage(
 int MESSAGE_ID,
 char(1) CHECK_RIGHTS="Y"
);

Функция удаляет сообщение.

Параметры функции

Параметр | Описание
MESSAGE_ID | ID сообщения.
CHECK_RIGHTS | "Y" - необходимо проверить право на удаление у текущего пользователя; "N" - прав проверять не надо.


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" - выбирать все обращения независимо от прав текущего пользователя.
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" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу функции.
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" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу функции.

Пример массива одной строки выборки возвращаемой функцией 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
)


CTicket::GetList

record set
CTicket::GetList(
 varchar &by,
 varchar &order,
 array arFilter=array(),
 boolean &is_filtered,
 char(1) CHECK_RIGHTS="Y",
 char(1) get_user_name="Y",
 char(1) get_dictionary_name="Y",
 char(2) lang=LANG

);

Функция предназначена для получения списка обращений в техподдержку.

Параметры функции

Параметр | Описание
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_1 - правая часть интервала для количества дней прошедших с даты создания до даты закрытия обращения
  • TITLE - заголовок обращения (допускается сложная логика)
  • TITLE_EXACT_MATCH - "Y" - при фильтрации по заголовку обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MESSAGES1 - левая часть интервала для количества сообщений в обращении
  • MESSAGES1 - правая часть интервала для количества сообщений в обращении
  • 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" - в противном случае будет искаться вхождение
  • STATUS_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" - в противном случае будет искаться вхождение
is_filtered | Переменная возвращающая true в том случае если список результатов отфильтрован по какому либо критерию; либо false в противном случае.
CHECK_RIGHTS | "Y" - будут выбраны только те обращения которые текущий пользователь может просматривать (по умолчанию); "N" - выбирать все обращения независимо от прав текущего пользователя.
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" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу функции.
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" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу функции.
lang | Двухсимвольный код языка в формате которого необходимо выбрать временные параметры обращения (время создания, изменения, закрытия); по умолчанию - код текущего сайта.

Примеры использования

<?
$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);
?>


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" - сообщение будет выбрано независимо от прав текущего пользователя.
get_user_name | "Y" - при выборке сообщения будут также выбраны такие поля как OWNER_EMAIL, OWNER_LOGIN, OWNER_NAME, CREATED_EMAIL, CREATED_LOGIN, CREATED_NAME, MODIFIED_EMAIL, MODIFIED_LOGIN, MODIFIED_NAME, описывающие параметры пользователей имевших отношение к данному сообщению; "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу функции.

Пример массива одной строки выборки возвращаемой функцией 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
)


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"

);

Функция предназначена для получения списка сообщений в одном обращении.

Параметры функции

Параметр | Описание
by Идентификатор позволяющий задать имя поля для сортировки. Допустимы следующие значения:
  • s_id - по ID
  • s_number - по порядковому номеру
order Порядок сортировки. Допустимы следующие значения:
  • desc - по убыванию (значение по умолчанию)
  • asc - по возрастанию
arFilter Массив для фильтрации значений. В массиве допустимы следующие индексы:
  • ID - ID сообщения (допускается сложная логика)
  • ID_EXACT_MATCH - "Y" - при фильтрации по ID сообщения будет искаться точное совпадение (по умолчанию); "N" - при фильтрации по ID сообщения будет искаться вхождение
  • TICKET_ID - ID обращения (допускается сложная логика)
  • TICKET_ID_EXACT_MATCH - "Y" - при фильтрации по ID обращения будет искаться точное совпадение (по умолчанию); "N" - при фильтрации по ID обращения будет искаться вхождение
  • IS_HIDDEN - "Y" - будут выбраны только скрытые обращения; "N" - будут выбраны все не скрытые сообщения;
  • IS_LOG - "Y" - будут выбраны только лог-записи (записи изменений); "N" - будут выбраны не лог-записи;
is_filtered | Переменная возвращающая true в том случае если список результатов отфильтрован по какому либо критерию; либо false в противном случае.
CHECK_RIGHTS Флаг необходимости проверки прав текущего пользователя:
  • Y - будут выбраны только те сообщения которые данные пользователь может просматривать (по умолчанию)
  • N - выбирать все сообщения независимо от прав текущего пользователя
get_user_name | "Y" - при выборке сообщения будут также выбраны такие поля как OWNER_EMAIL, OWNER_LOGIN, OWNER_NAME, CREATED_EMAIL, CREATED_LOGIN, CREATED_NAME, MODIFIED_EMAIL, MODIFIED_LOGIN, MODIFIED_NAME, описывающие параметры пользователей имевших отношение к данному сообщению; "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу функции.

Примеры использования

<?
$mess = CTicket::GetMessageList($a, $b, array("TICKET_ID" => $ID, "TICKET_ID_EXACT_MATCH" => "Y"), $c, $CHECK_RIGHTS);
$mess->NavStart(50);
$messages = $mess->SelectedRowsCount();
?>


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 - символьный код категории
  • CRITICALITY_SID - символьный код критичности
  • STATUS_SID - символьный код статуса
  • MARK_SID - символьный код оценки ответов
  • RESPONSIBLE_USER_ID - ID пользователя ответственного за обращение
  • SUPPORT_COMMENTS - комментарий видимый только пользователям входящим в группу техподдержки
  • CLOSE - "Y" - обращение закрыть; "N" - обращение открыть
  • AUTO_CLOSE_DAYS - количество дней по истечении которых автоматически закрыть обращение если за это время от автора не поступило сообщения
* - данное поле может быть использовано для создания новых обращений
** - данное поле используется только при модификации существующих обращений.
MESSAGE_ID | ID добавленного сообщения.
TICKET_ID | ID модифицируемого обращения.
CHECK_RIGHTS | Флаг необходимости проверки прав текущего пользователя: "Y" - необходимо проверить права текущего пользователя под которым создаётся обращение либо модифицируется; "N" - обращения создавать и модифицировать независимо от прав текущего пользователя.

Примеры использования

Пример кода добавляющего новое обращение в техподдержку приходящего по 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;
?>


CTicketDictionary

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CTicketDictionary

CTicketDictionary - класс для работы со справочником обращений.

Методы класса

Метод | Описание
GetList | Возвращает список записей справочника с использованием фильтра.
GetByID | Возвращает одну запись справочника по ее ID.


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] =>
)


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 в противном случае.

Примеры использования

<?
$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);
?>


Для разработчиков, перевод

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для разработчиков

Информация представленная в данном разделе необходима для инсталляции и настройки модуля.


Инсталляция

Для инсталляции модуля вам необходимо:

  1. Скопировать файлы модуля в папку /bitrix/modules/translate/.
  2. На странице управления модулями /bitrix/admin/module_admin.php нажать на кнопку Установить.
  3. После успешной инсталляции вы можете указать в настройках модуля папки для сканирования на предмет наличия языковых файлов.


Для разработчиков, голосования

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для разработчиков

Информация представленная в данном разделе содержит сведения о функциях модуля опросов, необходимых для настройки показа опросов в публичной части сайта, а также об этапах инсталляции модуля.


Инсталляция

Для инсталляции модуля вам необходимо выполнить следующее:

  1. Убедитесь что версия ядра не менее чем 3.0.11 (версию ядра можно узнать в левом нижнем углу административных страниц). Инсталлятор не даст вам установить модуль, если версия ядра не соответствует требуемой.
  2. Выберете каталог сайта в котором будут располагаться файлы отображения списка опросов, формы опросов и диаграмм опросов.
  3. Введите каталог сайта в предложенное поле ввода “Каталог для опросов”. Например, каталоги, в которых будут располагаться опросы: “/vote/”.
  4. Нажмите кнопку Установить.
  5. После окончания установки зайдите в меню Группы опросов. Здесь вам необходимо создать группы опросов и придумать им символические имена.
  6. Зайдите в меню Список опросов и создайте какой – либо опрос.
  7. В публичной части сайта настройте меню "Архив опросов" к скрипту “vote_list.php” и меню "Текущий опрос" к скрипту "vote_now.php". В меню "Архив опросов" добавьте дополнительные ссылки на файлы "vote.php", "vote_result.php".

Инсталляция подразумевает создание следующих таблиц в базе:

  • b_vote_channel – таблица групп опросов
  • b_vote_channel_group – таблица связи групп опросов к группам пользователей
  • b_vote – таблица опросов
  • b_vote_question – таблица вопросов
  • b_vote_answer – таблица ответов
  • b_vote_user – таблица посетителей, участвовавших в опросах
  • b_vote_event – таблица голосований
  • b_vote_event_question – таблица вопросов на которые давались ответы в момент голосований
  • b_vote_event_answer – таблица ответов посетителей в момент голосований

Когда таблицы подготовлены, происходит копирование всех необходимых скриптов для администрирования техподдержки из каталога “\bitrix\modules\vote\install\public\ admin\” в каталог ”\bitrix\admin\”:

  • vote_channel_list.php – список групп опросов
  • vote_channel_edit.php – редактирование группы опросов
  • vote_list.php – список опросов
  • vote_edit.php – редактирование опроса
  • vote_preview.php – форма опросов
  • vote_results.php – результирующая диаграмма опроса
  • vote_question_list.php – список вопросов
  • vote_question_edit.php – редактирование вопроса
  • vote_user_list.php – список посетителей участвовавших в опросах
  • vote_user_votes.php – список голосований
  • vote_user_results.php – результат голосования

Если необходимо, то в каждом сайте происходит создание каталога, имя которого указанно в параметре “Каталог для опросов”. После этого в эти каталоги копируются файлы:

  • vote_list.php – отображает список опросов (архив)
  • vote.php – отображает форму опроса по заданному ID
  • vote_result.php – отображает результат опроса по заданному ID
  • vote_prev.php – отображает результаты предыдущего опроса заданной группы
  • vote_current.php – отображает форму текущего опроса заданной группы,
    после голосования перенаправляет на файл отображающий результат опроса
  • vote_now.php – отображает форму текущего опроса группы, если пользователь ещё не голосовал, иначе отображает результаты текущего опроса группы
  • vote_any.php – отображает форму первого попавшегося опроса по которому пользователь ещё не голосовал, если пользователь проголосовал, то перенаправляет его на файл отображающий результат данного опроса

Вышеописанные файлы будут скопированы из каталога “\bitrix\modules\vote\install\public\”. Вы можете их использовать в качестве примеров кодов для настройки модуля опросов.


Функции, голосования

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Функции

В данном разделе представлены функции необходимые для вывода форм опросов и их результатов в публичной части сайта.


GetAnyAccessibleVote

GetAnyAccessibleVote([lid])

Функция возвращает ID первого попавшегося опроса по которому пользователь ещё не голосовал, с учётом прав пользователя, у которого должно быть право "на участие в опросе" (>=2)

Параметры функции

Параметр | Описание
lid | Сайт группы опросов.

Примеры использования

Файл в публичной части сайта - "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 | Символическое имя группы.
lid | ID сайта. По умолчанию - текущий - константа "LANG".
access | Минимальный уровень доступа к опросу для текущего пользователя: 0 - доступ закрыт 1 - право на просмотр результатов опроса 2 - право на участие в опросе По умолчанию access = 1, т.е. для того чтобы функция GetCurrentVote возвратила ID текущего опроса группы у пользователя на данную группу должно быть, как минимум, право на просмотр результатов.

Примеры использования

<?
// возвращает форму текущего опроса для заданной группы
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 | Символическое имя группы.
level | Уровень предыдущего опроса (1 - предыдущий, 2 - пред- предыдущий и т.д.). По умолчанию - 1.
lid | ID сайта. По умолчанию - текущий.

Примеры использования

<?
// возвращает диаграмму результатов предыдущего опроса
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 не нужно.

    Примеры использования

<?
// возвращает форму заданного опроса с учётом прав пользователя
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, [
 strSqlOrder]]
);

Функция возвращает выборку из базы по опросам.

Параметры функции

Параметр | Описание
GROUP_SYMBOLIC_NAME | Символическое имя группы опросов (по умолчанию функция вернет выборку опросов из всех групп).
strSqlOrder | SQL код содержащий параметры сортировки для выборки. По умолчанию: "ORDER BY C.C_SORT, C.ID, V.DATE_START desc"

Примеры использования

Файл в публичной части сайта - "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");
?>


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 | Символическое имя группы.
lid | ID сайта. По умолчанию - текущий.

Примеры использования

Файл в публичной части сайта - "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 | Символическое имя группы.
lid | ID сайта. По умолчанию - текущий.


ShowPrevVoteResults

ShowPrevVoteResults (
 GROUP_SYMBOLIC_NAME, [
 level, [
 lid]]
);

Функция выводит HTML-код диаграммы результатов предыдущего опроса группы.

Параметры функции

Параметр | Описание
GROUP_SYMBOLIC_NAME | Символическое имя группы.
level | Уровень предыдущего опроса (1 - предыдущий, 2 - предпредыдущий и т.д.). По умолчанию - 1.
lid | ID сайта. По умолчанию - текущий.

Примеры использования

Файл в публичной части сайта - "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");
?>


Система обновлений

Правила формирования обновлений

  • Обновление складывается в каталог /bitrix/updates в папку с именем модуля (то есть модуль search складывается в папку /bitrix/updates/search).
  • В папке с обновлениями модуля могут распологаться подпапки с именами вида X.X.X, а также подпапка с именем .last_version.
  • В папке .last_version должна содержаться последняя версия модуля. Она будет использоваться для установки модуля у клиента. Если в папке с обновлениями модуля нет подпапки .last_version, а клиенту необходим полный дистрибутив модуля, то он будет браться из папки /bitrix/modules.
  • В папках с именами вида X.X.X распологаются обновления модуля до версии X.X.X. Обновления должны состоять из обновившихся файлов, находящихся в подпапках с той же структурой, что и сам модуль.
  • В папке обновления может лежать файл updater.php. Этот файл выполняется при обновлении системы до обновления файлов (тип 1).
    В папке обновления может лежать файл updater/index.php. Этот файл выполняется при обновлении системы до обновления файлов (тип 1).
    В папке обновления может лежать файл updater_post.php. Этот файл выполняется при обновлении системы после обновления файлов (тип 2).
    В папке обновления может лежать файл updater_post/index.php. Этот файл выполняется при обновлении системы после обновления файлов (тип 2).
    Сначала будут выполнены все файлы типа 1 в хронологическом порядке, потом будут скопированы обновленные файлы модуля, затем будут выполнены все файлы типа 2 в хронологическом порядке.
    В модуле не должно быть других файлов и папок, содержащих в имени слово updater. Файлы updater.php, updater_post.php, updater/*.* и updater_post/*.* не будут скопированы в папку модуля.
  • В папке обновления могут лежать файлы вида description.. Содержимое этих файлов будет показано клиенту при обновлении.
  • Обновления применяются по порядку начиная с версии, следующей за версией клиента, и до последней версии.
  • В каждой папке с обновлением должен находится файл install/version.php, содержащий обновленную информацию (версия,...).
    Для модуля main в каждой папке с обновлением должен находится файл classes/general/version.php, содержащий обновленную информацию о версии ядра.
  • В файле install/index.php каждого модуля путь до файла с переводом сообщений на данный язык должен формироваться относительно текущего расположения файла. Например:

$strPath2Lang = str_replace("\\", "/", __FILE__);
$strPath2Lang = substr($strPath2Lang, 0, strlen($strPath2Lang)-18)."/lang/";
include(GetLangFileName($strPath2Lang, "/install/index.php"));
  • В папке обновления может лежать файл version_control.txt. Этот файл осуществляет контроль зависимостей между версиями модулей. Файл может содержать строки вида:

modul,version,note
    Это означает, что данное обновление требует, чтобы модуль modul версии не ниже version был установлен или устанавливался вместе с данным обновлением. Примечание note выводится на первом шаге для информации.

    Например, если в обновление 3.0.19 модуля форума поместить файл version_control.txt, содержащий строки

search,3.0.5,используется новая функция main,3.0.15,
    то обновление форума до версии 3.0.19 не должно установиться без поиска версии 3.0.5 и ядра версии 3.0.15

Для корректной работы системы обновлений необходимо соответствующим образом настроить клиентов, модули и лицензии на сайте http://www.bitrix.ru

Зарезервированые слова (слова, которые не должны использоваться в именах файлов / папок):

  • .last_version
  • updater
  • updater_post
  • description
  • version_control

Используемые особым образом файлы / папки

Файловый объект | Назначение
/.last_version | Последняя версия модуля.
/updater.php | Updater
/updater/index.php | Updater
/updater/*.* | Файлы, необходимые updater'у.
/description. | Описание обновления.
/install/version.php | Версия модуля.
/classes/general/version.php | Версия ядра.
/version_control.txt | Контроль версий.

Пример структуры папки обновлений

forum
    |-.last_version          - последняя версия модуля (как в /modules/forum/)
    |
    |-3.0.1                  - обновление с 3.0.0 до 3.0.1
    |    |-install
    |    |    |-index.php    - изменена версия на 3.0.1
    |    |-read_forum.php    - обновленный файл
    |    |-mysql
    |    |    |-forum.php    - обновленный файл
    |    |-updater.php       - файл, который обновляет базу
    |
    |-3.0.2                  - обновление с 3.0.1 до 3.0.2
    |    |-install
    |    |    |-index.php    - изменена версия на 3.0.2
    |    |-mysql
    |    |    |-forum.php    - обновленный файл
    |    |-oracle
    |    |    |-forum.php    - обновленный файл
    |    |-updater
    |    |    |-index.php    - файл, который обновляет базу и копирует новые картинки
    |    |    |-file.gif     - картинка, необходимая для обновления (для updater'a)


Классы модуля Web Service

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Классы

Следующие PHP классы используются для реализации веб-сервисов в компонентах.

Классы

Класс | Описание
CWebServiceDesc | Структура описывающая методы и типы веб-сервиса.
IWebService | Интерфейс веб-сервиса для регистрации в CWebService.
CWebService | Менеджер веб-сервисов.

Следующие PHP классы реализуют SOAP протокол, WSDL, генерацию XML в модуле webservice.

Реализованные классы

Класс | Описание
CXMLCreator | Класс для генерации XML
CSOAPFault | Класс для обработки ошибок SOAP сервера и клиента.
CSOAPRequest | Класс формирует SOAP запрос/конверт.
CSOAPServerResponser | Интерфейс для реализации пользовательского обработчика SOAP запросов.
CSOAPServer | Класс SOAP сервер.
CSOAPClient | Класс SOAP клиент.
CWSDLCreator | Класс для автоматической генерации WSDL для веб-сервиса. Document/literal binding only.
CSOAPCodec | Класс трансформирует данные в XML согласно описанию веб-сервиса.
CSOAPResponse | Класс формирует/обрабатывает SOAP ответы.
CWSSOAPResponser | Класс реализующий обработку запросов к веб-сервисам через SOAP. Наследует CSOAPServerResponser.

Абстрактные классы

Класс | Описание
CSOAPHeader | Абстрактный класс для обработки SOAP пакета.
CSOAPBody | Абстрактный класс для обработки SOAP пакета.
CSOAPEnvelope | Абстрактный класс для обработки SOAP пакета.


CSOAPClient

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSOAPClient

Методы класса

Метод | Описание
CSOAPClient | Конструктор класса. Настраивает SOAP клиент на конкретный сервер ($server), точку доступа soap сервера ($path='/'), порт web сервера ($port).
send | Функция отсылает SOAP запрос сформированный CSOAPRequest.
setTimeout | Функция устанавливает время ожидания ответа SOAP сервера.
getRawRequest | Функция возвращает строку - запрос ушедший SOAP серверу.
getRawResponse | Функция возвращает строку - ответ SOAP сервера.
setLogin | Функция устанавливает логин для авторизации через HTTP Basic для SOAP запроса.
setPassword | Функция устанавливает пароль для авторизации через HTTP Basic для SOAP запроса.
login | Функция возвращает установленный логин.
password | Функция возвращает установленный пароль.

Пример использования номер 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());
}


CSOAPFault

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSOAPFault

Члены класса

Параметр | Описание
$FaultCode | Параметр, содержащий код ошибки SOAP.
$FaultString | Параметр, содержащий строку, описывающую суть ошибки SOAP в доступном пользователю виде.

Конструктор класса 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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSOAPRequest

Методы класса

Метод | Описание
CSOAPRequest | Конструктор класса.
addSOAPHeader | Функция добавляет в SOAP запрос часть заголовка.
addBodyAttribute | Функция добавляет атрибут к тегу body SOAP запроса.
addParameter | Функция добавляет данные для передачи в SOAP запросе. Для веб-сервиса - параметры вызываемого метода.
payload | Функция возвращает сформированный SOAP запрос в виде строки.

Пример использования

// Формируем запрос к веб-сервису 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");


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/");


addParameter

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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" ))
    );


addBodyAttribute

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CSOAPRequest::addBodyAttribute

void
CSOAPRequest::addBodyAttribute(
    string name,
    string value
)

Метод добавляет атрибут к тегу body SOAP запроса.

Параметры метода

Параметр | Описание
name | Название атрибута.
value | Значение атрибута.


CSOAPServer

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CSOAPServer

Методы класса

Метод | Описание
GetRequestData | Функция возвращает принятый запрос SOAP пакета.
GetResponseData | Функция возвращает ушедший в ответ SOAP пакет. GetResponseData можно вызвать только после ProcessRequest.
boolean AddServerResponser( CSOAPServerResponser &respobject ) | Функция регистрирует обработчик SOAP запроса. Обработчики, наследующие, интерфейс CSOAPServerResponser, должны быть зарегистрированы заранее, до вызова метода ProcessRequest.
ShowRawResponse | Функция формирует и отсылает SOAP Response пакет вместе с данными в виде CXMLCreator.
ShowResponse | Функция формирует и отсылает SOAP Response пакет, после преобразования данных.
ShowSOAPFault | Функция формирует и отсылает SOAP Response пакет с ошибкой.
ProcessRequest | Функция запускает обработку SOAP запроса. К этому моменту обработчики CSOAPServerResponser должны быть зарегистрированы методом AddServerResponser. Возвращает true если обработка успешна, иначе false.
stripHTTPHeader | Функция отрезает HTTP заголовок в том месте, где начинается XML-документ.

Пример использования

В этом примере в $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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Интерфейс CSOAPServerResponser

Методы интерфейса

Метод | Описание
void OnBeforeRequest( CSOAPServer &cserver ) | Метод вызывается для всех обработчиков CSOAPServerResponser зарегистрированных в обрабатывающем SOAP сервере при наступлении события, когда получен запрос к серверу, но ещё не началось его раскодирование.
void OnAfterResponse( CSOAPServer &cserver ) | Метод вызывается для всех обработчиков CSOAPServerResponser зарегистрированных в обрабатывающем SOAP сервере при наступлении события, когда завершилась обработка запроса и ответ уже отослан (ProcessRequestBody вернула true).
boolean ProcessRequestBody( CSOAPServer &cserver, CDataXMLNode body ) | Метод обработчик запроса SOAP сервера. Если метод обработал запрос и ответил вызовом ShowResponse, то возвращается true. Иначе возвращается false и вызовы ProcessRequestBody обработчиков продолжаются по цепочке пока не будет найден обработчик запроса, либо пока список обработчиков не иссякнет.

Параметры метода

Параметр | Описание
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 = CSOAPRequest::encodeValueLight("Providers", $providers);
            $prup->addChild($providersEncoded);

            $cserver->ShowRawResponse($root, true);

            AddMessage2Log($cserver->GetResponseData());

            return true;
        }

        return false;
    }
}


CWebService

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CWebService

Методы класса

Метод | Описание
SetComponentContext | Функция запоминает контекст конфигурации компонента ($arParams) для передачи его в контекст вызова метода веб-сервиса.
GetComponentContext | Функция возвращает контекст конфигурации компонента ($arParams), который предоставляет веб-сервис. Может вызываться из методов веб-сервиса: CWebService::GetComponentContext.
SOAPServerProcessRequest | Функция вызывает обработчик SOAP сервера для обработки входящего запроса по методу POST. Обработчик вызывается для экземпляра веб-сервиса указанного в параметрах функции.
RegisterWebService | Функция регистрирует веб-сервис.
GetSOAPServerRequest | Функция возвращает SOAP запрос (string), который принял SOAP Сервер.
GetSOAPServerResponse | Функция возвращает ответ (string) SOAP Сервера.
MethodRequireHTTPAuth | Функция проверяет, пройдена ли HTTP Basic авторизация. Используется для методов веб-сервисов, которые требует авторизацию.
TestComponent | Функция вызывает IWebService::TestComponent запрашиваемого зарегистрированного веб-сервиса.
GetWSDL | Функция возвращает автоматически сгенирированный WSDL код (если CWebServiceDesc->wsdlauto равно true).
GetDefaultEndpoint | Функция возвращает точку доступа (например, http://site.ru/ws.php) для веб-сервиса по умолчанию.
GetDefaultTargetNS | Функция возвращает пространство имён для веб-сервиса по умолчанию.
GetWebServiceDeclaration | Функция возвращает экземпляр класса CWebServiceDesc через интерфейс IWebService веб-сервиса.
GetInterface | Функция возвращает экземпляр класса веб-сервиса, реализующий IWebService.


RegisterWebService

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CWebServiceDesc

Веб-сервис

Члены класса CWebServiceDesc

Параметр | Тип | Описание
wsname | string | Название веб-сервиса - например, bitrix.ws.users
wsclassname | string | Класс, реализующий веб-сервис и интерфейс 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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Класс CXMLCreator

Класс представляет собой тег XML-документа, состоящий из атрибутов, дочерних элементов, текстового содержимого и CDATA контента.

Методы класса

Метод | Описание
CXMLCreator( string tag, boolean cdata ) | Конструктор класса. Принимает в качестве параметра название тега.
static CXMLCreator createTagAttributed( string heavyTag ) | Функция создаёт тег CXMLCreator из названия тега heavyTag, записанного в особенном формате.
static CXMLCreator encodeValueLight( string name, AnyType Value ) | Функция создаёт дерево XML документа с именем Name и строением Value. Name - название тега в формате heavyTag метода createTagAttributed. Value может быть любым типом данных, например, последовательностью вложенных ассоциативных массивов. Смотрите пример использования ниже.
setCDATA | Функция устанавливает CDATA-контент тега.
setAttribute | Функция устанавливает атрибут тега.
setData | Функция устанавливает текстовое содержимое тега.
setName | Функция устанавливает название тега.
addChild | Функция добавляет элемент XML документа в список своих детей.
getChildrenCount | Функция возвращает количество подчинённых элементов XML документа.
getXML | Функция возвращает XML документ в виде строки.
getXMLHeader | Функция возвращает заголовок XML документа.

Пример применения в обработчике 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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Интерфейс IWebService

Методы интерфейса IWebService

Метод | Описание
GetWebServiceDesc | Возвращает класс, полностью описывающий веб-сервис (методы, типы данных, ...).
TestComponent | Метод внутреннего авто-тестирования веб-сервиса.

IWebService - интерфейс через который регистрируется веб-сервис в CWebService. Класс, реализующий веб-сервис, должен наследовать этот интерфейс.


GetWebServiceDesc

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

IWebService::GetWebServiceDesc

CWebServiceDesc
IWebService::GetWebServiceDesc();

Метод возвращает экземпляр класса CWebServiceDesc - описателя веб-сервиса.


TestComponent

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

IWebService::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)."
";

    }

    ...
}


Описание функций

Документация по данному модулю будет представлена позже.


Для разработчиков

Документация по данному модулю будет представлена позже.


Инсталляция

Документация по данному модулю будет представлена позже.


SetInputDefaultValue

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

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()


CIBlock::GetByID

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

CIBlock::GetSite

CDBResult
CIBlock::GetSite(
 int iblock_id
);

Возвращает список сайтов, к которым привязан информационный блок с кодом iblock_id.

Параметры функции

Параметр | Описание
iblock_id | Код информационного блока.

Возвращаемое значение

Возвращается объект CDBResult с полями сайта.

См. также

  • CDBResult
  • Поля CSite

Примеры использования

<?
$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>";
   }
}
?>


Обновление

Система обновлений предназначена для обновления модулей сайта до последней версии, а также для загрузки новых модулей. Обновления доступны только зарегистрированным пользователям. Обновления затрагивают только ядро сайта (каталог /bitrix/), публичная часть системой обновлений не изменяется.

Важно!
Если вы самостоятельно изменили хотя бы один файл ядра сайта (каталог /bitrix/, за исключением папки /bitrix/php_interface/) или структуру базы данных, то автоматическая установка обновления может иметь непредсказуемый результат.

Обновление модулей происходит в три шага:

  1. На первом шаге вам предлагается список модулей, для которых доступны обновления. Отметьте флажком те модули, обновления которых вы хотите загрузить. Если обновления не доступны, у вас установлена последняя версия модулей.

    Выбранные модули будут загружены во временную подпапку папки /bitrix/updates/.

  2. На втором шаге вам предлагается список загруженых обновлений модулей. Отметьте флажком те модули, которые вы хотите обновить. Если в колонке Результат содержится значение отличное от Загружен, попробуйте провести загрузку ещё раз.

    Выбранные модули будут обновлены. Новые модули будут скопированы в ядро сайта.

  3. На третьем этапе вам показывается список обновленных модулей. Для новых модулей даются ссылки на систему установки модулей.


История обновлений

3.3.18
  • В функцию TxtToHTML добавлен параметр позволяющий задать CSS класс которым будет выводится цитата
  • Функция TxtToHTML усовершенствована для работы с спец. тэгами <code>, <b>, <i>, <u>.
  • Исправлено кеширование дерева разделов встроенной системы помощи.
  • Усовершенствована функция возвращающая право пользователя на модуль (добавлено кеширование результата).
  • Добавлена функция для работы с правами модуля как с иерархически ненаследуемыми ролями.
  • Добавлено сохранение оригинального имени файла при его загрузке в таблице b_file.


CMain::AddHeadString

CMain::AddHeadString(
string str,
boolean bUnique = false
)

Функиця производит добавление любого кода, который будет выполнен при вызове отложенной функции CMain::ShowHeadStrings().

Параметры функции

Параметр | Описание
str | Текст кода, который будет выведен как результат работы отложенной функции CMain::ShowHeadStrings().
bUnique | Параметр, определяющий уникальность выполнения кода, т.е. если при определении кода указать данный параметр со значением true, то добавление кода будет выполнено только один раз.

См. также

  • Отложенные функции
  • CMain::ShowHeadStrings()

Примеры использования

Рассмотрим пример использования 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" />');
}
...


Начало работы

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Начало работы. Настройка

После того, как вы установили модуль интернет-магазина, прежде чем начать работу с ним, необходимо правильно этот модуль настроить.

В этом разделе

  • Глобальные настройки модуля
  • Настройка валют
  • Настройка типов плательщиков
  • Настройка групп свойств
  • Настройка свойств
  • Настройка местоположений
  • Настройка групп местоположений
  • Настройка служб доставки
  • Настройка платежных систем
  • Настройка статусов заказа
  • Настройка курсов валют
  • Настройка скидок
  • Настройка налогов
  • Настройка ставок налогов
  • Настройки в публичном разделе

Глобальные настройки модуля

Где ?
Настройки -> Настройки продукта -> Настройки модулей -> Интернет-магазин.

После установки модуля продаж зайдите на страницу глобальных настроек модуля: Настройки -> Настройки продукта -> Настройки модулей, затем в выпадающем списке выберите Интернет-магазин и занесите правильные значения в следующие поля и нажмите кнопку Сохранить:

E-Mail отдела заказов
E-Mail, на который будут направляться информационные сообщения модуля продаж.
E-Mail по умолчанию для регистрации
В интернет-магазине могут совершать покупки зарегистрированные пользователи сайта. Если покупатель не был прежде зарегистрирован в системе, то данное поле содержит e-mail адрес по умолчанию, который будет использоваться для регистрации пользователей при оформлении заказа. Если в заказе задано свойство, которое является адресом e-mail, то вместо данного адреса "по умолчанию" будет использовано значение свойства заказа (см. раздел Свойства заказа).
Реквизиты платежных систем
Используемые ранее параметры Адрес для почтового перевода, Реквизиты для перевода через сбербанк, Реквизиты для банковского перевода, ShopID, wbp_ShopKeyID, wbp_ShopEncryptionKey, Shop_IDP, Login, Password устарели и не рекомендуются к использованию. Для настройки платежных систем следует скопировать шаблон платежной системы из ядра в любую папку и изменить в нем настраиваемые параметры.

Настройка валют

Где ?
Настройки -> Валюты -> Список валют.

Настройте список валют сайта на странице настроек валют (см. раздел Валюты). Магазин не сможет функционировать, если в системе не задана хотя бы одна валюта.

Настройка типов плательщиков

Где ?
Магазин -> Настройки магазина -> Типы плательщиков.

Зайдите на страницу настроек типов плательщиков и настройте список типов плательщиков. Например, можно создать следующие типы плательщиков:

  • физическое лицо;
  • частный предприниматель;
  • юридическое лицо.

К каждому типу плательщика привязаны собственные свойства для заполнения при заказе и собственные обработчики платежных систем (см. раздел Тип плательщика). Клиент магазина при оформлении заказа выбирает тип плательщика, к которому он относится. На основании этого выбора ему предоставляется соответствующий набор полей для заполнения свойств заказа и соответствующий набор интерфейсов платежных систем для оплаты заказа. Тип плательщика зависит от сайта. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор типов плательщиков.

Настройка групп свойств

Где ?
Магазин -> Настройки магазина -> Свойства заказа -> Группы свойств.

Зайдите на страницу настроек групп свойств и для каждого типа плательщика настройте список групп свойств заказа (например, Адрес доставки, Комплектация и т.п.). Группы свойств применяются для группировки свойств заказа, облегчения их зрительного восприятия и заполнения (см. раздел Группы свойств). Группа свойств зависит от типа плательщика, т.е. у разных типов плательщиков могут быть разные группы свойств.

Настройка свойств

Где ?
Магазин -> Настройки магазина -> Свойства заказа -> Список свойств.

Зайдите на страницу настроек свойств и для каждого типа плательщика настройте список свойств заказа (например, E-Mail, Город, Контактное лицо и т.п.). Свойства заказа нужны для оформления заказа и получения информации о доставке заказа (см. раздел Свойства заказа). Свойства заказа зависят от типа плательщика, т.е. у разных типов плательщиков разные свойства заказа.
С помощью функции Предпросмотр вы можете посмотреть, как будет выглядеть страница заполнения свойств заказа для данного типа плательщика.

Настройка местоположений

Где ?
Магазин -> Настройки магазина -> Местоположения -> Список местоположений.

Местоположение - географическая единица, имеющая единые условия доставки заказа и определяющая часть полного адреса доставки.

Зайдите на страницу настроек местоположений и настройте список местоположений. Обычно местоположением является пара Страна - Город.

Кроме того, необходимо предусмотреть для каждой страны местоположение без указания города, которое будет использоваться в тех случаях, когда подходящей пары Страна - Город для данного клиента нет (см. раздел Местоположения).

Настройка групп местоположений

Где ?
Магазин -> Настройки магазина -> Местоположения -> Группы местоположений.

Зайдите на страницу настроек групп местоположений и настройте список групп местоположений. Объединение местоположений в группы облегчает связывание местоположений со службами доставки. Достаточно один раз добавить местоположение в группу местоположений с одинаковыми тарифами доставки и в дальнейшем привязывать к службам доставки одну группу, а не совокупность местоположений. Также облегчается удаление / добавление нового местоположения (см. раздел Группы местоположений).

Настройка служб доставки

Где ?
Магазин -> Настройки магазина -> Доставка.

Зайдите на страницу настроек служб доставки и настройте список служб доставки. Служба доставки может зависеть от общего веса и стоимости заказа и всегда зависит от списка местоположений.

Удостоверьтесь, что список служб доставки покрывает все возможные варианты. Например, если вы указали, что данная служба доставки действует для заказов стоимостью более $500, то удостоверьтесь, что для тех же местоположений есть службы доставки, которые действуют для заказов стоимостью менее $500.

Удостоверьтесь, что в списке есть службы доставки для всех возможных местоположений (см. раздел Доставка).

Службы доставки зависят от сайта. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор служб доставок.

Настройка платежных систем

Где ?
Магазин -> Настройки магазина -> Платежные системы.

Зайдите на страницу настроек платежных систем и настройте список платежных систем.

Платежные системы могут быть привязаны ко всем или к какой-либо части типов плательщиков. Для каждого из привязанных к платежной системе типов плательщиков необходимо задать файл-обработчик платежной системы и, возможно, обработчик результатов платежной системы. Файл-обработчик платежной системы обычно занимается распечаткой необходимых платежных документов или инициализацией процедуры оплаты электронными средствами платежа. Обработчик результатов платежной системы применяется для тех электронных средств платежа, которые могут по запросу вернуть статус оплаты заказа (см. раздел Платежные системы).

Платежные системы зависят от сайта. В зависимости от сайта клиентам магазина предоставляется на выбор разный набор интерфейсов платежных систем.

Настройка статусов заказа

Где ?
Магазин -> Настройки магазина -> Статусы.

Зайдите на страницу настроек статусов заказа и настройте список статусов заказа (например: Принят, В обработке, Ожидается поставка, Отгружен, Доставлен и т.п.).

Статусы заказа служат для информирования клиентов и сотрудников электронного магазина о текущем состоянии заказа (см. раздел Статусы).

Настройка курсов валют

Где ?
Настройки -> Валюты -> Курсы валют.

Настройка курсов валют производится в модуле валют. Зайдите на страницу настроек курсов валют и введите необходимые курсы валют (см. раздел Курсы валют).

Настройка скидок

Где ?
Магазин -> Настройки магазина -> Скидки на заказ.

Зайдите на страницу настроек скидок от суммы заказа и введите необходимые скидки, если это необходимо (см. раздел Скидки).

Скидки зависят от сайта. В зависимости от сайта клиенты получают разные скидки.

Настройка налогов

Где ?
Магазин -> Настройки магазина -> Налоги -> Список налогов.

Зайдите на страницу настроек налогов и введите налоги, которые могут быть задействованы в стоимости заказа.

Настройка ставок налогов

Где ?
Магазин -> Настройки магазина -> Налоги -> Ставки налогов.

Зайдите на страницу настроек ставок налогов (пункт меню Интернет-магазин ->Ставки налогов) и введите ставки налогов в зависимости от типа плательщика и его местоположения (см. раздел Налоги).

Если какие-либо покупатели могут быть освобождены от некоторых налогов, то укажите эти налоги для групп пользователей, которым принадлежат эти покупатели и только они, на странице настроек освобождения от налогов (Магазин -> Настройки магазина -> Налоги -> Освобождение от налогов).

Настройки в публичном разделе

Где ?
Настраивается разработчиками путём изменения кода интернет-магазина.

Удостоверьтесь, что у вас правильно настроен публичный раздел: добавление товара в корзину, процедура оформления заказа, персональный раздел клиента (см. раздел Информация для разработчиков).


Для разработчиков, статистика

1С-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для разработчиков

Информация представленная в данном разделе необходима для разработчиков сайта.


Описание функций

© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом


Для разработчиков, подписка

1C-Битрикс: Управление сайтом Отправить отзыв по этому разделу

Для разработчиков

© «Битрикс», 2001-2008, «1C-Битрикс», 2008 1С-Битрикс: Управление сайтом