Module - uniqcle/Bitrix GitHub Wiki

https://github.com/uniqcle/Bitrix/wiki/installing-modules

File Structure

local 
- modules
  - uniqcle.first //id модуля
    - install
      - components
      - index.php
      - version.php
    - lib          // все классы
    - lang
    - options.php   // настройки модуля
    - include.php

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

Sample

local/modules/uniqcle.first/install/index.php

use Bitrix\Main\Localization\Loc;

Loc::loadMessages(__FILE__);

Class uniqcle_first extends CModule
{
    var $MODULE_ID = "uniqcle.first";
    var $MODULE_VERSION;
    var $MODULE_VERSION_DATE;
    var $MODULE_NAME;
    var $MODULE_DESCRIPTION;
    var $MODULE_CSS;
    var $MODULE_GROUP_RIGHTS = "Y";

    function __construct()
    {
        $arModuleVersion = array();

        include(__DIR__.'/version.php');

        $this->MODULE_VERSION = $arModuleVersion["VERSION"];
        $this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];

        $this->MODULE_NAME = 'Модуль uniqcle.first';
        $this->MODULE_DESCRIPTION = 'Описание модуля uniqcle.first';
    }


    function InstallDB($install_wizard = true)
    {
        RegisterModule("uniqcle.first");
        return true;
    }

    function UnInstallDB($arParams = Array())
    {
        UnRegisterModule("uniqcle.first");
        return true;
    }

    function InstallEvents()
    {
        return true;
    }

    function UnInstallEvents()
    {
        return true;
    }

    function InstallFiles()
    {
        return true;
    }

    function UnInstallFiles()
    {
        return true;
    }

    function DoInstall()
    {
        $this->InstallFiles();
        $this->InstallDB(false);
    }

    function DoUninstall()
    {
        $this->UnInstallDB(false);
    }
}

local/modules/uniqcle.first/install/version.php

$arModuleVersion = array(
    "VERSION"      => "0.0.1",
    "VERSION_DATE" => "2020-10-27 11:03:00"
);

local/modules/uniqcle.first/lib/utils.php

namespace Uniqcle\First;

class Utils {
    public $param;

    public function doany(){
        echo '12345';
    }
}

in code

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
use Bitrix\Main\Loader;
use Uniqcle\First\Utils;

Loader::includeModule("uniqcle.first");

Utils::doany();
?>

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

Lib

lib/utils.php

namespace Uniqcle\Import;

class UtilsTest{
	public $param;

	public function test(){
		echo '1235';
	}
}

include.php

<?php
CModule::AddAutoloadClasses(
	"uniqcle.import",
	array(
		"Uniqcle\\Import\\UtilsTest" => "lib/utils.php",
	)
);

Вызов

// 1 вариант
if(CModule::IncludeModule("uniqcle.import")){
	\Uniqcle\Import\UtilsTest::test();
}

//2 вариант
use \Bitrix\Main\Loader;
use \Uniqcle\Import\UtilsTest;

Loader::includeModule("uniqcle.import");

UtilsTest::test();
⚠️ **GitHub.com Fallback** ⚠️