コード例 #1
0
ファイル: import.php プロジェクト: Satariall/izurit
 protected function CreateCourse()
 {
     global $APPLICATION;
     if (strlen($this->LAST_ERROR) > 0) {
         return false;
     }
     if (!($title = $this->objXML->SelectNodes("/manifest/organizations/organization/item/title"))) {
         $this->LAST_ERROR = GetMessage("LEARNING_BAD_NAME");
         return false;
     }
     $arFields = array("NAME" => $title->content, "SITE_ID" => $this->arSITE_ID);
     $course = new CCourse();
     $this->COURSE_ID = $course->Add($arFields);
     $res = $this->COURSE_ID;
     if (!$res) {
         if ($e = $APPLICATION->GetException()) {
             $this->LAST_ERROR = $e->GetString();
         }
         return false;
     }
     $r = new CDataXML();
     if (!$r->Load($this->package_dir . "/res1.xml")) {
         return false;
     }
     if (!($data = $r->SelectNodes("/coursetoc/"))) {
         return false;
     }
     $ar = $data->__toArray();
     $arFields = $this->_MakeFields($ar);
     $res = $course->Update($this->COURSE_ID, $arFields);
     if (!$res) {
         if ($e = $APPLICATION->GetException()) {
             $this->LAST_ERROR = $e->GetString();
         }
         return false;
     }
     CheckDirPath($_SERVER["DOCUMENT_ROOT"] . "/" . COption::GetOptionString("main", "upload_dir", "upload") . "/learning/" . $this->COURSE_ID);
     CLearnHelper::CopyDirFiles($this->package_dir . "/resources/res1", $_SERVER["DOCUMENT_ROOT"] . "/" . COption::GetOptionString("main", "upload_dir", "upload") . "/learning/" . $this->COURSE_ID . "/res1", true);
     return true;
 }
コード例 #2
0
 public function SaveInlineEditedItems()
 {
     if (!$this->IsNeedSaveInlineEditedItems()) {
         return $this;
     }
     if (check_bitrix_sessid() !== true) {
         throw new CLearnRenderAdminUnilessonListException('', CLearnRenderAdminUnilessonListException::C_ACCESS_DENIED);
     }
     foreach ($_POST['FIELDS'] as $lessonId => $arFields) {
         $arEdgeProperties = array();
         $wasError = false;
         try {
             // skip not changed items
             if (!$this->oList->IsUpdated($lessonId)) {
                 continue;
             }
             // throws exception if access denied
             $this->EnsureLessonUpdateAccess($lessonId);
             $courseId = CLearnLesson::GetLinkedCourse($lessonId);
             // Depends on current list mode, we must update sort index
             // of element (only for course) or sort index of relation between
             // child and parent lessons.
             // So, we must rename SORT to COURSE_SORT or EDGE_SORT
             if (array_key_exists('SORT', $arFields)) {
                 if ($this->IsListAnyCoursesMode() && $courseId !== false) {
                     $arFields['COURSE_SORT'] = $arFields['SORT'];
                 } elseif ($this->IsListChildLessonsMode()) {
                     $arFields['EDGE_SORT'] = $arFields['SORT'];
                 } else {
                     throw new CLearnRenderAdminUnilessonListException('', CLearnRenderAdminUnilessonListException::C_LOGIC | CLearnRenderAdminUnilessonListException::C_ACTION_UPDATE_FAIL);
                 }
                 unset($arFields['SORT']);
             }
             if (isset($arFields['EDGE_SORT'])) {
                 if (isset($_GET['PARENT_LESSON_ID'])) {
                     $arEdgeProperties['SORT'] = $arFields['EDGE_SORT'];
                 }
                 unset($arFields['EDGE_SORT']);
             }
             // PUBLISH_PROHIBITED
             if (array_key_exists('PUBLISH_PROHIBITED', $arFields)) {
                 // PUBLISH_PROHIBITED available in context of most parent course only
                 if ($this->contextCourseLessonId !== false && in_array($arFields['PUBLISH_PROHIBITED'], array('N', 'Y'), true)) {
                     $isProhibited = true;
                     if ($arFields['PUBLISH_PROHIBITED'] === 'N') {
                         $isProhibited = false;
                     }
                     CLearnLesson::PublishProhibitionSetTo($lessonId, $this->contextCourseLessonId, $isProhibited);
                 }
                 unset($arFields['PUBLISH_PROHIBITED']);
             }
             // Courses must be updated throws CCourse::Update();
             if ($courseId === false) {
                 CLearnLesson::Update($lessonId, $arFields);
             } else {
                 $ob = new CCourse();
                 if (!$ob->Update($courseId, $arFields)) {
                     throw new CLearnRenderAdminUnilessonListException('', CLearnRenderAdminUnilessonListException::C_ACTION_UPDATE_FAIL);
                 }
                 unset($ob);
             }
             if (isset($_GET['PARENT_LESSON_ID']) && count($arEdgeProperties) > 0) {
                 CLearnLesson::RelationUpdate($_GET['PARENT_LESSON_ID'], $lessonId, $arEdgeProperties);
             }
         } catch (CLearnRenderAdminUnilessonListException $e) {
             $wasError = true;
             $errorText = $e->getMessage();
             $errorCode = $e->getCode();
         } catch (Exception $e) {
             $wasError = true;
             $errorText = $e->getMessage();
             $errorCode = 0;
             // Because we checks below only CLearnRenderAdminUnilessonListException codes
         }
         if ($wasError) {
             if ($errorCode & CLearnRenderAdminUnilessonListException::C_ACCESS_DENIED) {
                 // Access denied
                 $errmsg = GetMessage('LEARNING_SAVE_ERROR') . ': ' . GetMessage('LEARNING_ACCESS_D');
                 if (strlen($errorText) > 0) {
                     $errmsg .= ': ' . $errorText;
                 }
             } else {
                 // Some error occured during update operation
                 $errmsg = GetMessage('LEARNING_SAVE_ERROR') . $lessonId;
                 if (strlen($errorText) > 0) {
                     $errmsg .= ' (' . $errorText . ')';
                 }
             }
             $this->oList->AddUpdateError($errmsg, $lessonId);
         }
     }
     return $this;
 }
コード例 #3
0
$aTabs[] = $USER_FIELD_MANAGER->EditFormTab('LEARNING_LESSONS');
$tabControl = new CAdminForm("courseTabControl", $aTabs, true, $bDenyAutosave);
if ($_SERVER["REQUEST_METHOD"] == "POST" && $Perm >= "X" && strlen($_POST["Update"]) > 0 && check_bitrix_sessid()) {
    $course = new CCourse();
    $arPREVIEW_PICTURE = $_FILES["PREVIEW_PICTURE"];
    $arPREVIEW_PICTURE["del"] = $PREVIEW_PICTURE_del;
    $arPREVIEW_PICTURE["MODULE_ID"] = "learning";
    $arPREVIEW_PICTURE["description"] = $PREVIEW_PICTURE_descr;
    $arFields = array("ACTIVE" => $ACTIVE, "NAME" => $NAME, "CODE" => $CODE, "SITE_ID" => $SITE_ID, "GROUP_ID" => $GROUP, "SORT" => $SORT, "DETAIL_TEXT" => $DETAIL_TEXT, "DETAIL_TEXT_TYPE" => $DETAIL_TEXT_TYPE, "PREVIEW_PICTURE" => $arPREVIEW_PICTURE, "PREVIEW_TEXT" => $PREVIEW_TEXT, "PREVIEW_TEXT_TYPE" => $PREVIEW_TEXT_TYPE, "ACTIVE_FROM" => $ACTIVE_FROM, "ACTIVE_TO" => $ACTIVE_TO, "RATING" => $RATING, "RATING_TYPE" => $RATING_TYPE);
    $USER_FIELD_MANAGER->EditFormAddFields('LEARNING_LESSONS', $arFields);
    $res = false;
    if ($COURSE_ID > 0) {
        $linkedLessonId = CCourse::CourseGetLinkedLesson($COURSE_ID);
        if ($linkedLessonId !== false) {
            if ($oAccess->IsLessonAccessible($linkedLessonId, CLearnAccess::OP_LESSON_WRITE)) {
                $res = $course->Update($COURSE_ID, $arFields);
            }
            // Process relations, data submitted from CLearnRelationHelper::RenderForm()
            CLearnRelationHelper::ProccessPOST($oAccess, $linkedLessonId);
        }
    } else {
        if ($oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_CREATE)) {
            $COURSE_ID = $course->Add($arFields);
            $res = $COURSE_ID > 0;
        }
    }
    try {
        // Work with permissions
        if (isset($_POST['LESSON_RIGHTS_marker']) && $COURSE_ID > 0) {
            $linkedLessonId = CCourse::CourseGetLinkedLesson($COURSE_ID);
            if ($linkedLessonId !== false && $oAccess->IsLessonAccessible($linkedLessonId, CLearnAccess::OP_LESSON_MANAGE_RIGHTS)) {
コード例 #4
0
ファイル: index.php プロジェクト: mrdeadmouse/u136006
foreach ($arCourses as $key => $courseCode) {
    try {
        $dbResult = CCourse::GetList(array(), array("CODE" => $arCoursesSite[$key]));
        $pathToService = WIZARD_SERVICE_ABSOLUTE_PATH;
        if (!($arCourse = $dbResult->Fetch())) {
            $pathToCourse = WIZARD_SERVICE_RELATIVE_PATH . "/" . LANGUAGE_ID . "/" . $courseCode . "/";
            $package = new CCourseImport($pathToCourse, array(WIZARD_SITE_ID));
            if (strlen($package->LAST_ERROR) > 0) {
                return;
            }
            $success = $package->ImportPackage();
            if ($success) {
                $dbResult = CCourse::GetList(array(), array("CODE" => $courseCode));
                $arCourse = $dbResult->Fetch();
                $obCCourse = new CCourse();
                $obCCourse->Update($arCourse["ID"], array("CODE" => $arCoursesSite[$key]));
            }
        }
        /*
        it's new rights model now, rights mudt be set for every lesson and/or for module at all
        if (isset($arCourse["ID"])){
        	CCourse::SetPermission($arCourse["ID"], Array("2"=>"R"));
        
        }
        */
        CopyDirFiles($pathToService . "/" . LANGUAGE_ID . "/images/" . $courseCode . "/", WIZARD_SITE_PATH, $rewrite = false, $recursive = true);
    } catch (LearnException $e) {
    }
}
if (!WIZARD_IS_RERUN || WIZARD_FIRST_INSTAL !== "Y") {
    $obSite = CSite::GetByID(WIZARD_SITE_ID);