Example #1
0
 /**
  * @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!');
     }
 }
Example #2
0
    ?>
	<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;
        ?>
);