Создание компонента в Битриксе

Разработка

Это еще одна заметка из моего первого и, скорее всего, единственного заказа на Битриксе. Возможно, кому-нибудь она пригодится.

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

  • КОРЕНЬ/local/components/mynamespace - где "mynamespace" ваше наименование пространства имен;
  • КОРЕНЬ/local/components/mynamespace/mycomponentname - где "mycomponentname" наименование вашего компонента;
  • КОРЕНЬ/local/components/mynamespace/mycomponentname/component.php - обязательный файл, всегда называется так.
  • КОРЕНЬ/local/components/mynamespace/mycomponentname/.description.php - необязательный файл описания функционала компонента, желательно создавать;
  • КОРЕНЬ/local/components/mynamespace/mycomponentname/templates/.default - директория для шаблона и других файлов (css/js обычно) компонента;
  • КОРЕНЬ/local/components/mynamespace/mycomponentname/templates/.default/template.php - файл шаблона компонента, в нем размещается разметка (HTML);
  • КОРЕНЬ/local/components/mynamespace/mycomponentname/templates/.default/script.js - файл со скриптами компонента, который автоматически подключается, главное чтобы наименование было script.js.
  • КОРЕНЬ/local/components/handlers/handle_components_query.php - свой файл, добавил только для примера обращения к файлу из компонента по AJAX'у. Его создавать не обязательно.

КОРЕНЬ/local/components/mynamespace/mycomponentname/component.php:

IncludeComponentTemplate();

КОРЕНЬ/local/components/mynamespace/mycomponentname/.description.php:

 'Наименование компонента',
    "DESCRIPTION" => 'Описание компонента',
];

КОРЕНЬ/local/components/mynamespace/mycomponentname/templates/.default/template.php:



КОРЕНЬ/local/components/mynamespace/mycomponentname/templates/.default/script.js

$(document).ready(function () {
	$.ajax({
		type: 'POST',
		url: '/local/handlers/handle_components_query.php',
		data: {"my_test_var": "my_test_value"},
		dataType: 'html',
		success: function (data) {
			alert(data);
		}
	});
});

КОРЕНЬ/local/components/handlers/handle_components_query.php:



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

IncludeComponent(
	"mynamespace:mycomponentname",
	".default",
	[],
	false
) ?>

Комментарии (0)

Войдите, чтобы оставить комментарий.