| Current Path : /var/www/amortar/data/www/a-mortar/bitrix/modules/yandex.market/install/ |
| Current File : /var/www/amortar/data/www/a-mortar/bitrix/modules/yandex.market/install/index.php |
<?php
use Bitrix\Main;
use Yandex\Market;
Main\Localization\Loc::loadMessages(__FILE__);
class yandex_market extends CModule
{
var $MODULE_ID = 'yandex.market';
var $MODULE_NAME;
var $MODULE_DESCRIPTION;
var $MODULE_VERSION;
var $MODULE_VERSION_DATE;
var $PARTNER_NAME;
var $PARTNER_URI;
function __construct()
{
$arModuleVersion = null;
include __DIR__ . '/version.php';
if (isset($arModuleVersion) && is_array($arModuleVersion))
{
$this->MODULE_VERSION = $arModuleVersion['VERSION'];
$this->MODULE_VERSION_DATE = $arModuleVersion['VERSION_DATE'];
}
$this->MODULE_NAME = GetMessage('YANDEX_MARKET_MODULE_NAME');
$this->MODULE_DESCRIPTION = GetMessage('YANDEX_MARKET_MODULE_DESCRIPTION');
$this->PARTNER_NAME = GetMessage('YANDEX_MARKET_PARTNER_NAME');
$this->PARTNER_URI = GetMessage('YANDEX_MARKET_PARTNER_URI');
}
function GetModuleRightList()
{
$arr = [
'reference_id' => ['D', 'R', 'W'],
'reference' => [
'[D] ' . GetMessage('YANDEX_MARKET_RIGHTS_DENIED'),
'[R] ' . GetMessage('YANDEX_MARKET_RIGHTS_READ'),
'[W] ' . GetMessage('YANDEX_MARKET_RIGHTS_WRITE')
]
];
return $arr;
}
function DoInstall()
{
global $APPLICATION;
$result = true;
try
{
$this->checkRequirements();
Main\ModuleManager::registerModule($this->MODULE_ID);
if (Main\Loader::includeModule($this->MODULE_ID))
{
$this->InstallDB();
$this->InstallEvents();
$this->InstallAgents();
$this->InstallFiles();
}
else
{
throw new Main\SystemException(GetMessage('YANDEX_MARKET_MODULE_NOT_REGISTERED'));
}
}
catch (\Exception $exception)
{
$result = false;
$APPLICATION->ThrowException($exception->getMessage());
}
return $result;
}
function DoUninstall()
{
global $APPLICATION, $step;
$step = (int)$step;
if ($step < 2)
{
$APPLICATION->IncludeAdminFile(GetMessage('YANDEX_MARKER_UNINSTALL'), __DIR__ . '/unstep1.php');
}
else if ($step === 2)
{
if (Main\Loader::includeModule($this->MODULE_ID))
{
$request = Main\Context::getCurrent()->getRequest();
$isSaveData = $request->get('savedata') === 'Y';
if (!$isSaveData)
{
$this->UnInstallDB();
}
$this->UnInstallEvents();
$this->UnInstallAgents();
$this->UnInstallFiles();
}
Main\ModuleManager::unRegisterModule($this->MODULE_ID);
}
}
function InstallDB()
{
Market\Reference\Storage\Controller::createTable();
}
function UnInstallDB()
{
Market\Reference\Storage\Controller::dropTable();
}
function InstallEvents()
{
Market\Migration\Event::reset();
}
function UnInstallEvents()
{
Market\Reference\Event\Controller::deleteAll();
}
function InstallAgents()
{
Market\Reference\Agent\Controller::updateRegular();
}
function UnInstallAgents()
{
Market\Reference\Agent\Controller::deleteAll();
}
function InstallFiles()
{
CopyDirFiles(__DIR__ . '/admin', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin', true, true);
CopyDirFiles(__DIR__ . '/components', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/components/yandex.market', true, true);
CopyDirFiles(__DIR__ . '/css', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/css/yandex.market', true, true);
CopyDirFiles(__DIR__ . '/js', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/js/yandex.market', true, true);
CopyDirFiles(__DIR__ . '/images', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/images/yandex.market', true, true);
CopyDirFiles(__DIR__ . '/templates', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/templates/.default/components', true, true);
}
function UnInstallFiles()
{
DeleteDirFiles(__DIR__ . '/admin', $_SERVER['DOCUMENT_ROOT'] . '/bitrix/admin');
DeleteDirFilesEx('bitrix/components/yandex.market');
DeleteDirFilesEx('bitrix/css/yandex.market');
DeleteDirFilesEx('bitrix/js/yandex.market');
DeleteDirFilesEx('bitrix/images/yandex.market');
DeleteDirFilesEx('bitrix/templates/.default/components/bitrix/main.lookup.input/ym_userfield');
}
function checkRequirements()
{
// require php version
$requirePhp = '5.4.0';
if (CheckVersion(PHP_VERSION, $requirePhp) === false)
{
throw new \Exception(GetMessage('YANDEX_MARKET_INSTALL_REQUIRE_PHP', [ '#VERSION#' => $requirePhp ]));
}
// require simplexml extension
if (!class_exists('\\SimpleXMLElement'))
{
throw new \Exception(GetMessage('YANDEX_MARKET_INSTALL_REQUIRE_SIMPLEXML'));
}
// required modules
$requireModules = [
'main' => '15.5.0',
'iblock' => '15.0.0'
];
if (class_exists('\\Bitrix\\Main\\ModuleManager'))
{
foreach ($requireModules as $moduleName => $moduleVersion)
{
$currentVersion = Main\ModuleManager::getVersion($moduleName);
if ($currentVersion !== false && CheckVersion($currentVersion, $moduleVersion))
{
unset($requireModules[$moduleName]);
}
}
}
if (!empty($requireModules))
{
foreach ($requireModules as $moduleName => $moduleVersion)
{
throw new \Exception(GetMessage('YANDEX_MARKET_INSTALL_REQUIRE_MODULE', [
'#MODULE#' => $moduleName,
'#VERSION#' => $moduleVersion
]));
}
}
}
}