'') $STEP = $STEP - 2; if ($REQUEST_METHOD == "POST" && $backButton2 <> '') $STEP = 1; $COURSE_ID = intval($COURSE_ID); $strError = ""; if ($_SERVER["REQUEST_METHOD"] == "POST" && $STEP > 1 && check_bitrix_sessid()) { if ($STEP > 1) { // was: $res = CCourse::GetList(Array("sort" => "asc"),Array("ID" => $COURSE_ID,"MIN_PERMISSION" => "W")); // TODO: think about better way of rights check (for every exported lesson, I think). $res = CCourse::GetList(Array("sort" => "asc"),Array("ID" => $COURSE_ID,'ACCESS_OPERATIONS' => CLearnAccess::OP_LESSON_READ | CLearnAccess::OP_LESSON_WRITE)); if (!$arCourse = $res->GetNext()) $strError .= GetMessage("LEARNING_BAD_COURSE")."
"; if ($strError <> '') $STEP = 1; } if ($STEP > 2) { // Check filename $pattern = '#^[0-9a-zA-Z_.-/]+$#'; $antiPattern = '#[^0-9a-zA-Z_.-/]#'; if (preg_match($pattern, $DATA_FILE_NAME) !== 1) { $DATA_FILE_NAME = preg_replace($antiPattern, '', $DATA_FILE_NAME); $strError .= GetMessage('LEARNING_BAD_FILENAME'); $STEP = 2; } } if ($STEP > 2) { $tmp_dir = BX_PERSONAL_ROOT."/tmp/learning/".uniqid(rand()); CheckDirPath($_SERVER["DOCUMENT_ROOT"].$tmp_dir); $exportFolder = '/upload/learning_export/'; if ( ! file_exists($_SERVER["DOCUMENT_ROOT"] . $exportFolder) ) mkdir ($_SERVER["DOCUMENT_ROOT"] . $exportFolder); $DATA_FILE_NAME = $exportFolder . BX_basename($DATA_FILE_NAME); if ($DATA_FILE_NAME == '') { $strError .= GetMessage("LEARNING_NO_DATA_FILE")."
"; } else { $bUseCompression = true; if(!extension_loaded('zlib') || !function_exists("gzcompress")) $bUseCompression = false; if (mb_substr($DATA_FILE_NAME, -6) != "tar.gz") $DATA_FILE_NAME .= ".tar.gz"; if (is_file($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME)) @unlink($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME); if ($arCourse["SCORM"] == "Y") { $dir = "/".(COption::GetOptionString("main", "upload_dir", "upload"))."/learning/scorm/".$COURSE_ID."/"; $arc = new CArchiver($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME, $bUseCompression); $res = $arc->Add("\"".$_SERVER["DOCUMENT_ROOT"].$dir."\"", false, $_SERVER["DOCUMENT_ROOT"].$dir); if (!$res) { $arErrors = &$arc->GetErrors(); foreach ($arErrors as $value) $strError .= "[".$value[0]."] ".$value[1]."
"; } } else { $package = new CCoursePackage($COURSE_ID); if ($package->LAST_ERROR == '') { $success = $package->CreatePackage($tmp_dir); if ($success) { $arc = new CArchiver($_SERVER["DOCUMENT_ROOT"].$DATA_FILE_NAME, $bUseCompression); $res = $arc->Add("\"".$_SERVER['DOCUMENT_ROOT'].$tmp_dir."\"", false, $_SERVER['DOCUMENT_ROOT'].$tmp_dir); if (!$res) { $arErrors = &$arc->GetErrors(); foreach ($arErrors as $value) $strError .= "[".$value[0]."] ".$value[1]."
"; } DeleteDirFilesEx($tmp_dir); } else { $strError .= $package->LAST_ERROR; } } else { $strError .= $package->LAST_ERROR; } } } if ($strError <> '') $STEP = 2; } } $APPLICATION->SetTitle(GetMessage("LEARNING_PAGE_TITLE")." ".$STEP); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); if (defined("LEARNING_ADMIN_ACCESS_DENIED")) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"), false); CAdminMessage::ShowMessage($strError); ?>

Fatal error: Uncaught Error: Call to undefined function bitrix_sessid_post() in D:\ktt\ttepla.com\public_html\bitrix\modules\learning\admin\learn_export.php:154 Stack trace: #0 {main} thrown in D:\ktt\ttepla.com\public_html\bitrix\modules\learning\admin\learn_export.php on line 154