Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/goodde.yandexturboapi/admin/ |
Upload File : |
<? require_once($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/prolog_admin_before.php"); use Bitrix\Main; use Bitrix\Main\IO; use Bitrix\Main\SiteTable; use Bitrix\Main\Text\Converter; use Bitrix\Main\Localization\Loc; use Goodde\YandexTurbo\Turbo; use Goodde\YandexTurbo\TaskTable; use Goodde\YandexTurbo\FeedTable; use Goodde\YandexTurbo\Model\Request; Loc::loadMessages(dirname(__FILE__).'/feed_run.php'); $POST_RIGHT = $APPLICATION->GetGroupRight("goodde.yandexturboapi"); if ($POST_RIGHT == "D") $APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED")); if(!Main\Loader::includeModule('goodde.yandexturboapi')) { \CAdminMessage::ShowMessage(Loc::getMessage('GOODDE_ERROR_MODULE')); die(); } $bIBlock = Main\Loader::includeModule('iblock'); $ID = intval($_REQUEST['ID']); $taskId = 0; $NS = isset($_REQUEST['NS']) && is_array($_REQUEST['NS']) ? $_REQUEST['NS'] : array(); $arFeed = null; if($ID > 0) { $arFeed = FeedTable::getById($ID)->fetch(); } if(!is_array($arFeed)) { \CAdminMessage::ShowMessage(Loc::getMessage('GOODDE_ERROR_FILE_NOT_FOUND')); die(); } else { $turboFeed = new \Goodde\YandexTurbo\TurboFeed($arFeed['ID']); $turboFeed->modeDebug = true; // is subdomain if($arFeed['FIELDS']['IS_SUBDOMAIN'] == 'Y' && $arFeed['FIELDS']['HOST_ID_SUBDOMAIN']) { $arFeed['SERVER_ADDRESS'] = \Goodde\YandexTurbo\Model\Request::getHostNamebyYandexHostId($arFeed['FIELDS']['HOST_ID_SUBDOMAIN']); } } if($_REQUEST['action'] == 'debug_run' && check_bitrix_sessid()) { $path = $turboFeed->getPath().'/'.$arFeed['ID'].'/debug_turbo.xml'; $arValueSteps = array( 'init' => 0, 'upload_address' => 50, 'index' => 100, ); $v = intval($_REQUEST['value']); $PID = $ID; if($v == $arValueSteps['init']) { global $runError; $bytesWritten = 0; $fp = $turboFeed->rssHeader($path, $bytesWritten, array('ID' => $arFeed['ID'], 'TITLE' => $arFeed['NAME'], 'LINK' => $arFeed['SERVER_ADDRESS'], 'DESCRIPTION' => $arFeed['DESCRIPTION'])); if($runError <> '') { \CAdminMessage::ShowMessage($runError); die(); } $arResult = $turboFeed->execute(); $fp = $turboFeed->rssBody($fp, '', $arResult, $arFeed); $turboFeed->rssFooter($fp); $v++; } elseif($v < $arValueSteps['upload_address']) { if(file_exists($path)) { $data = \Bitrix\Main\IO\File::getFileContents($path); /*bind events*/ foreach(GetModuleEvents("goodde.yandexturboapi", "OnBeforeContentAdd", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($arFields, &$data)); } if($turboFeed->isGzip) { $data = gzencode($data, 9); } $result = Request::addFeed($arFeed['LID'], 'debug', $data, $turboFeed->isGzip, $arFeed['FIELDS']['HOST_ID_SUBDOMAIN']); $NS['result'] = $result; $v = $arValueSteps['upload_address']; } else { \CAdminMessage::ShowMessage(Loc::getMessage('GOODDE_ERROR_UPLOAD_ADDRESS_D')); die(); } } else { $v = $arValueSteps['index']; } if($v == $arValueSteps['index']) { $msg = Loc::getMessage('GOODDE_RUN_FINISH'); if(is_array($NS['result']) && isset($NS['result']['task_id'])) { $result = TaskTable::add(array('FEED_ID' => $arFeed['ID'], 'LID' => $arFeed['LID'],'TASK_ID' => $NS['result']['task_id'], 'MODE' => 'DEBUG')); if($result->isSuccess()) { $taskId = $result->getId(); $newName = $turboFeed->getPath().'/reports/debug_turbo_'.$taskId.'.xml'; if(rename($path, $newName)) { if($turboFeed->isGzip) { $fileName = $turboFeed->addArchive($newName); if($fileName <> '') { $newName = $fileName; } unset($fileName); } TaskTable::update($taskId, array('NAME' => $newName)); } } } else { if(!is_array($NS['result'])) { $NS['result'] = [ 'error_code' => 'ERROR_YA', 'error_message' => Loc::getMessage('GOODDE_RUN_ERROR_YA') ]; } \CAdminMessage::ShowMessage(Loc::getMessage('GOODDE_ERROR_RUN', array( "#ERROR_CODE#" => $NS['result']['error_code'], "#ERROR_MESSAGE#" => Converter::getHtmlConverter()->encode($NS['result']['error_message']), ))); die(); } } echo Turbo::showProgress($msg, Loc::getMessage('GOODDE_RUN_TITLE'), $v); if($v < $arValueSteps['index']) { ?> <script> top.BX.runFeed(<?=$ID?>, 'debug_run', <?=$v?>, '<?=$PID?>', <?=CUtil::PhpToJsObject($NS)?>); </script> <? } else { ?> <script> top.BX.finishTurboFeed('<?=$taskId?>'); </script> <? } } ?>