backend_prod_category_dialog
Позволяет добавлять дополнительное содержимое в диалог редактирования категории товаров в новом интерфейсе (2.0). Например, дополнительные поля настроек, обрабатываемые плагином.
Доступно начиная с версии 10.1.0.
Shop-Script
Входящие параметры (передаются по ссылке)
$params['category'] array Информация о категории в виде массива со следующими ключами:
$params['category']['id'] int ID категории.
$params['category']['name'] string Название.
$params['category']['description'] string Описание.
$params['category']['left_key'] int Название.
$params['category']['parent_id'] int ID родительской категории.
$params['category']['depth'] int Уровень в иерархии каталога.
$params['category']['meta_title'] string Заголовок
$params['category']['meta_keywords'] string Заголовок
$params['category']['meta_description'] string Описание страницы
$params['category']['count'] int Количество товаров в статической категории.
$params['category']['type'] int Тип: 0 (статическая), 1 (динамическая).
$params['category']['create_datetime'] datetime Дата и время создания категории.
$params['category']['edit_datetime'] datetime Дата и время обновления категории.
$params['category']['conditions'] array Массив параметров выборки товаров для динамической категории.
$params['category']['status'] bool Статус: 0 (скрыта), 1 (видна на сайте).
$params['category']['sort_products'] sort Значение для ключевого слова
$params['category']['filter'] string|null Список параметров фильтра товаров, доступного покупателям на витрине, перечисленных через запятую: идентификатор 'price' (фильтрация по цене) или ID характеристик товаров.
$params['category']['explode_feature_ids'] array<mixed> Список параметров фильтра товаров, доступного покупателям на витрине, перечисленных через запятую, в виде массива.
$params['category']['allow_filter'] bool Признак доступности фильтра товаров покупателям на витрине.
$params['category']['include_sub_categories'] bool Признак отображения товаров из подкатегорий.
$params['category']['enable_sorting'] bool Признак доступности выбора варианта сортировки товаров на витрине.
$params['category']['params'] string Дополнительные параметры.
$params['category']['og'] array Значения метатегов для соцсетей в виде массива со следующими ключами:
$params['category']['og']['enabled'] bool Признак включённого значения «Использовать метатеги для поисковых систем».
$params['category']['og']['title'] string Заголовок.
$params['category']['og']['description'] string Описание.
$params['category']['og']['image'] string Изображение.
$params['category']['og']['type'] string Тип страницы.
$params['category']['og']['type'] string URL видео.
$params['category']['frontend_urls'] array Список URL категории на всех доступных для неё витринах. Каждый элемент списка — массив со следующими ключами:
$params['category']['frontend_urls'][]['name'] string URL категории.
$params['category']['frontend_urls'][]['url'] string URL категории.
$params['category']['frontend_urls'][]['base'] string URL, на основании которого формируется URL категории.
$params['category']['allow_filter_data'] array Список параметров фильтра товаров в виде массива.
$params['category']['id'] int ID категории.
$params['category']['name'] string Название.
$params['category']['description'] string Описание.
$params['category']['left_key'] int Название.
$params['category']['parent_id'] int ID родительской категории.
$params['category']['depth'] int Уровень в иерархии каталога.
$params['category']['meta_title'] string Заголовок
<title>.$params['category']['meta_keywords'] string Заголовок
<meta keywords>.$params['category']['meta_description'] string Описание страницы
<meta description>.$params['category']['count'] int Количество товаров в статической категории.
$params['category']['type'] int Тип: 0 (статическая), 1 (динамическая).
$params['category']['create_datetime'] datetime Дата и время создания категории.
$params['category']['edit_datetime'] datetime Дата и время обновления категории.
$params['category']['conditions'] array Массив параметров выборки товаров для динамической категории.
$params['category']['status'] bool Статус: 0 (скрыта), 1 (видна на сайте).
$params['category']['sort_products'] sort Значение для ключевого слова
LIMIT, используемое в SQL-запросе выборки товаров.$params['category']['filter'] string|null Список параметров фильтра товаров, доступного покупателям на витрине, перечисленных через запятую: идентификатор 'price' (фильтрация по цене) или ID характеристик товаров.
$params['category']['explode_feature_ids'] array<mixed> Список параметров фильтра товаров, доступного покупателям на витрине, перечисленных через запятую, в виде массива.
$params['category']['allow_filter'] bool Признак доступности фильтра товаров покупателям на витрине.
$params['category']['include_sub_categories'] bool Признак отображения товаров из подкатегорий.
$params['category']['enable_sorting'] bool Признак доступности выбора варианта сортировки товаров на витрине.
$params['category']['params'] string Дополнительные параметры.
$params['category']['og'] array Значения метатегов для соцсетей в виде массива со следующими ключами:
$params['category']['og']['enabled'] bool Признак включённого значения «Использовать метатеги для поисковых систем».
$params['category']['og']['title'] string Заголовок.
$params['category']['og']['description'] string Описание.
$params['category']['og']['image'] string Изображение.
$params['category']['og']['type'] string Тип страницы.
$params['category']['og']['type'] string URL видео.
$params['category']['frontend_urls'] array Список URL категории на всех доступных для неё витринах. Каждый элемент списка — массив со следующими ключами:
$params['category']['frontend_urls'][]['name'] string URL категории.
$params['category']['frontend_urls'][]['url'] string URL категории.
$params['category']['frontend_urls'][]['base'] string URL, на основании которого формируется URL категории.
$params['category']['allow_filter_data'] array Список параметров фильтра товаров в виде массива.
… код плагина …
Результат работы плагина
{$backend_prod_category_dialog}
top: Дополнительное содержимое в верхней части диалога над блоком «Представление на витрине».
storefront: Дополнительное содержимое в нижней части блока «Представление на витрине».
publication: Дополнительное содержимое в нижней части блока «Публикация».
seo: Дополнительное содержимое в нижней части блока «Отображение в поисковых системах».
og: Дополнительное содержимое в нижней части блока «Вид в соцсетях».
bottom: Дополнительное содержимое в нижней части основного содержимого диалога.
Чтобы показать пользователю дополнительные поля настроек, в возвращаемые фрагменты HTML-кода добавьте элементы с атрибутом
Пример
Элемент POST-запроса с ключом своего плагина нужно считывать и сохранять в обработчике хука
Пример
Вместо использования дополнительных полей в виде HTML-кода можно также отправлять скрытые значения на сервер только с помощью JavaScript, как показано в примере ниже.
storefront: Дополнительное содержимое в нижней части блока «Представление на витрине».
publication: Дополнительное содержимое в нижней части блока «Публикация».
seo: Дополнительное содержимое в нижней части блока «Отображение в поисковых системах».
og: Дополнительное содержимое в нижней части блока «Вид в соцсетях».
bottom: Дополнительное содержимое в нижней части основного содержимого диалога.
Чтобы показать пользователю дополнительные поля настроек, в возвращаемые фрагменты HTML-кода добавьте элементы с атрибутом
name. В значении атрибута используйте идентификатор плагина, чтобы отличать дополнительные поля от стандартных и добавленных другими плагинами.Пример
<input type="text" name="myplugin[field1]" value="">
<textarea name="myplugin[field2]"></textarea>
Элемент POST-запроса с ключом своего плагина нужно считывать и сохранять в обработчике хука
category_save.Пример
$myplugin_fields = waRequest::post('myplugin', [], waRequest::TYPE_ARRAY);
$field1_value = $myplugin_fields['field1'] ?? null;
$field2_value = $myplugin_fields['field2'] ?? null;
Вместо использования дополнительных полей в виде HTML-кода можно также отправлять скрытые значения на сервер только с помощью JavaScript, как показано в примере ниже.
Shop-Script
Пример кода плагина
PHP
function backendProdCategoryDialog(&$params)
{
return [
'top' => '...custom HTML code...',
'storefront' => '...custom HTML code...',
'publication' => '...custom HTML code...',
'seo' => '...custom HTML code...',
'og' => '...custom HTML code...',
'bottom' => '...custom HTML code...',
];
}
HTML/Smarty
<span class="hidden" id="myplugin"></span>
<script>
(function () {
const $dialog = $('#myplugin').closest('.wa-dialog');
const dialog_object = $dialog.data('dialog');
// Be sure to wait until the dialog's DOM is ready using the 'vue_ready' option.
// The WYSIWYG text editor's functionality is guaranteed to be available at this point, too.
dialog_object.options.vue_ready.then(function () {
const $category_form = $dialog.find('.s-category-form');
// How to send a hidden value to the server using JavaScript
$category_form.on('wa_save', function (event) {
event.form_data['myplugin_field1'] = 'some value string';
});
// How to interrupt the form submission if the validation has detected invalid values
$category_form.on('wa_before_save', function (event) {
if (mypluginInvalidValuesAreSpecified()) {
alert('Warning!');
event.preventDefault();
}
});
});
})();
</script>









