%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/rest.marketplace.detail/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/rest.marketplace.detail/component.php |
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die(); } /** * Bitrix vars * * @var array $arParams * @var array $arResult * @var CBitrixComponent $this * @global CMain $APPLICATION * @global CUser $USER */ if(!CModule::IncludeModule("rest")) { return; } $arParams['APP'] = !empty($arParams['APP']) ? $arParams['APP'] : $_GET['app']; $ver = false; $arResult['CHECK_HASH'] = false; $arResult['INSTALL_HASH'] = false; if (isset($_GET["ver"]) && intval($_GET["ver"]) && isset($_GET["check_hash"]) && isset($_GET['install_hash'])) { $checkHash = $_GET['check_hash']; $check = md5(rtrim(CHTTP::URN2URI('/'), '/').'|'.$_GET['ver'].'|'.$arParams['APP']); if($checkHash === $check) { $ver = intval($_GET["ver"]); $arResult['CHECK_HASH'] = $check; $arResult['INSTALL_HASH'] = $_GET['install_hash']; $arResult['START_INSTALL'] = isset($_GET["install"]) && $_GET["install"] == "Y"; } } $dbApp = \Bitrix\Rest\AppTable::getList(array( 'filter' => array("=CODE" => $arParams["APP"]) )); $ar = $dbApp->fetch(); if($ver === false && $ar['ACTIVE'] === 'N' && $ar['STATUS'] === \Bitrix\Rest\AppTable::STATUS_PAID) { $ver = intval($ar['VERSION']); } $arApp = \Bitrix\Rest\Marketplace\Client::getApp($arParams['APP'], $ver, $arResult['CHECK_HASH'], $arResult['INSTALL_HASH']); if($arApp) { $arApp = $arApp["ITEMS"]; $APPLICATION->SetTitle(htmlspecialcharsbx($arApp["NAME"])); if($ar) { $arApp["ID"] = $ar["ID"]; $arApp["INSTALLED"] = $ar["INSTALLED"]; $arApp["ACTIVE"] = $ar["ACTIVE"]; $arApp["STATUS"] = $ar["STATUS"]; $arApp["DATE_FINISH"] = $ar["DATE_FINISH"]; $arApp["IS_TRIALED"] = $ar["IS_TRIALED"]; $arApp['APP_STATUS'] = \Bitrix\Rest\AppTable::getAppStatusInfo($arApp, $APPLICATION->GetCurPageParam()); if(isset($arApp['APP_STATUS']['MESSAGE_REPLACE']['#DAYS#'])) { $arApp['APP_STATUS']['MESSAGE_REPLACE']['#DAYS#']++; $arApp['APP_STATUS']['MESSAGE_REPLACE']['#DAYS#'] = FormatDate("ddiff", time(), time() + 24 * 60 * 60 * $arApp['APP_STATUS']['MESSAGE_REPLACE']["#DAYS#"]); } } if ($arApp["ACTIVE"] == "Y") { $arApp["UPDATES"] = \Bitrix\Rest\Marketplace\Client::getAvailableUpdate($arApp["CODE"]); } if ($arApp["DATE_PUBLIC"]) { $stmp = MakeTimeStamp($arApp["DATE_PUBLIC"], "DD.MM.YYYY"); $arApp["DATE_PUBLIC"] = ConvertTimeStamp($stmp); } if ($arApp["DATE_UPDATE"]) { $stmp = MakeTimeStamp($arApp["DATE_UPDATE"], "DD.MM.YYYY"); $arApp["DATE_UPDATE"] = ConvertTimeStamp($stmp); } $arResult["APP"] = $arApp; } $arResult["ADMIN"] = \CRestUtil::isAdmin(); $arResult["CAN_INSTALL"] = $arResult['ADMIN'] || \CRestUtil::canInstallApplication($arApp); $request = \Bitrix\Main\Context::getCurrent()->getRequest(); if($request->isPost() && $request['install'] && check_bitrix_sessid()) { $APPLICATION->RestartBuffer(); if(!$arResult['CAN_INSTALL']) { ShowError(GetMessage("RMP_ACCESS_DENIED")); } else { $obRestDesc = new \CRestProvider(); $arRestDesc = $obRestDesc->getDescription(); $arResult['SCOPE_DENIED'] = array(); if(is_array($arResult['APP']['RIGHTS'])) { foreach($arResult['APP']['RIGHTS'] as $key => $scope) { if(!array_key_exists($key, $arRestDesc)) { $arResult['SCOPE_DENIED'][$key] = 1; } } } $arResult['IS_HTTPS'] = \Bitrix\Main\Context::getCurrent()->getRequest()->isHttps(); $this->includeComponentTemplate('install'); } CMain::FinalActions(); die(); } else { if(is_array($arResult["APP"]["PRICE"]) && !empty($arResult["APP"]["PRICE"]) && $arResult['ADMIN']) { $arResult['BUY'] = array(); foreach($arResult["APP"]["PRICE"] as $num => $price) { if($num > 1) { $arResult['BUY'][] = array( 'LINK' => \Bitrix\Rest\Marketplace\Client::getBuyLink($num, $arResult['APP']['CODE']), 'TEXT' => GetMessage("RMP_APP_TIME_LIMIT_".$num).' - '.$price ); } } } CJSCore::Init(array('marketplace', 'image', 'applayout')); $this->IncludeComponentTemplate(); } ?>