Примерно такой должен быть файл install/index.php для модуля
Код <?
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
class my_module extends CModule
{
const MODULE_ID = "my.module";
var $MODULE_ID = "my.module";
var $MODULE_VERSION;
var $MODULE_VERSION_DATE;
var $MODULE_NAME;
var $MODULE_DESCRIPTION;
var $MODULE_CSS;
var $strError = '';
function __construct()
{
$arModuleVersion = array();
include(__DIR__."/version.php");
$this->MODULE_VERSION = $arModuleVersion["VERSION"];
$this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];
$this->MODULE_NAME = "My Module Name";
$this->MODULE_DESCRIPTION = "";
$this->PARTNER_NAME = "My";
$this->PARTNER_URI = 'http://my-site.ru';
}
function InstallDB($arParams = array())
{
global $APPLICATION;
if(!CModule::IncludeModule("iblock"))
{
$APPLICATION->ThrowException("Need install module Iblock");
return false;
}
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->registerEventHandlerCompatible('iblock','OnAfterElementAdd',self::MODULE_ID,'MyModule\MainClass','elementAdd');
$eventManager->registerEventHandlerCompatible('main','OnProlog',self::MODULE_ID,'MyModule\MainClass','OnProlog');
return true;
}
function UnInstallDB($arParams = array())
{
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->unRegisterEventHandler('main', 'OnAfterElementAdd', self::MODULE_ID,'MyModule\MainClass','elementAdd');
$eventManager->unRegisterEventHandler('main', 'OnProlog', self::MODULE_ID,'MyModule\MainClass','OnProlog');
return true;
}
function InstallEvents()
{
return true;
}
function UnInstallEvents()
{
return true;
}
function InstallFiles($arParams = array())
{
//CopyDirFiles($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".self::MODULE_ID."/install/js", $_SERVER["DOCUMENT_ROOT"]."/bitrix/js", true, true);
return true;
}
function UnInstallFiles()
{
//DeleteDirFilesEx("/bitrix/js/".self::MODULE_ID); // JS
//DeleteDirFiles($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".self::MODULE_ID."/install/themes/.default/", $_SERVER["DOCUMENT_ROOT"]."/bitrix/themes/.default");//css
return true;
}
public function DoInstall()
{
global $APPLICATION;
$this->InstallFiles();
$res = $this->InstallDB();
if(!$res) return false;
RegisterModule(self::MODULE_ID);
}
function DoUninstall()
{
global $APPLICATION;
UnRegisterModule(self::MODULE_ID);
$this->UnInstallDB();
$this->UnInstallFiles();
}
}
И про правильное использование пространства имен тоже не забываем
https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=3524