/** * @return int items processed */ public static function ConvertDB(&$errorMessage) { global $DB; self::$items_processed = 0; // Check, was DB already converted? if (self::_IsAlreadyConverted() === true) { return true; } // Mark that db convert process started $rc = COption::SetOptionString(self::MODULE_ID, self::OPTION_ID, self::STATUS_INSTALL_INCOMPLETE); if ($rc === false) { throw new CLearnInstall201203ConvertDBException('SetOptionString() failed!'); } // Create fields `CODE`, `WAS_CHAPTER_ID` in `b_learn_lesson` (if they doesn't exists yet) // and `JOURNAL_STATUS` in `b_learn_chapter` // and `LINKED_LESSON_ID` in `b_learn_course` self::_CreateFieldsInTbls(); /** * Our plan: * 1) Create lesson for every course and links them * (`b_learn_course`.`LINKED_LESSON_ID` = id_of_new_lesson). * Than update `b_learn_course`.`JOURNAL_STATUS` to self::JOURNAL_STATUS_COURSE_LINKED * * 2) Copy all chapters to lessons table and than update * `b_learn_chapter`.`JOURNAL_STATUS` = self::JOURNAL_STATUS_CHAPTER_COPIED * * 3) Build all edges between lessons. Firstly, build edges for simple lessons * (not that was a chapter or course), and than for lessons-chapters. */ // Process courses self::_processCourses(); // Process chapters self::$items_processed += self::_processChapters(); // Creates table for edges, if it doesn't exists yet. self::_CreateEdgesTbl(); // Build edges for lessons and chapters (`WAS_COURSE_ID` === NULL) self::_buildEdges($errorMessage); // Convert old permissions to new self::ConvertPermissions(); // Add new path: COURSE_ID=#COURSE_ID# // ?LESSON_PATH=#LESSON_PATH# self::AddPath(); // Remove b_learn_course_permission, if exists self::_RemoveOrphanedTables(); // Mark that db convert process complete $rc = COption::SetOptionString(self::MODULE_ID, self::OPTION_ID, self::STATUS_INSTALL_COMPLETE); if ($rc === false) { throw new CLearnInstall201203ConvertDBException('SetOptionString() failed!'); } }
?> <script> CloseWaitWindow(); </script> <?php if (is_int($processedAtLastStep)) { $processedSummary += $processedAtLastStep; } if ($processedAtLastStep === false) { CAdminMessage::ShowMessage(array('MESSAGE' => GetMessage('LEARNING_CONVERT_FAILED'), 'DETAILS' => GetMessage('LEARNING_PROCESSED_SUMMARY') . ' <b>' . $processedSummary . '</b>' . '<div id="learning_convert_finish"></div>', 'HTML' => true, 'TYPE' => 'ERROR')); ?> <script> StopConvert(); </script> <?php } elseif (CLearnInstall201203ConvertDB::_IsAlreadyConverted()) { CAdminMessage::ShowMessage(array('MESSAGE' => GetMessage('LEARNING_CONVERT_COMPLETE'), 'DETAILS' => GetMessage('LEARNING_PROCESSED_SUMMARY') . ' <b>' . $processedSummary . '</b>' . '<div id="learning_convert_finish"></div>', 'HTML' => true, 'TYPE' => 'OK')); CAdminNotify::DeleteByTag('learning_convert_11_5_0'); ?> <script> EndConvert(); </script> <?php } else { CAdminMessage::ShowMessage(array('MESSAGE' => GetMessage('LEARNING_CONVERT_IN_PROGRESS'), 'DETAILS' => GetMessage('LEARNING_PROCESSED_SUMMARY') . ' <b>' . $processedSummary . '</b>', 'HTML' => true, 'TYPE' => 'OK')); ?> <script> DoNext(<?php echo $processedSummary; ?> );