*/ exit; require __DIR__.'/../../main/inc/global.inc.php'; api_protect_admin_script(); // Replace quiz description, question description and answers as well ? $processQuiz = false; // Search string (do not use #) $search = 'http://www.domain1.com/'; $replace = 'https://domain2.com/'; $dir = api_get_path(SYS_COURSE_PATH); $courses = scandir($dir); $startTime = time(); $i = 0; foreach ($courses as $courseDir) { if (substr($courseDir, 0, 1) === '.') { continue; } exec('find '.$dir.$courseDir.'/document/ -type f -name "*.html" -exec sed -i '."'s#$search#$replace#g' {} +"); //print('find '.$dir.$courseDir.'/document/ -type f -name "*.html" -exec sed -i '."'s/'.$search.'/'.$replace.'/g' {} +
"); $i++; } echo "Replaced '$search' by '$replace' in document/ folders of $i courses.
".PHP_EOL; if ($processQuiz) { echo "Processing exercises now...
".PHP_EOL; $quizCount = 0; $questionCount = 0; $answerCount = 0; $tableQuiz = Database::get_course_table(TABLE_QUIZ_TEST); $sql = "SELECT iid, title, description FROM $tableQuiz WHERE title LIKE '%$search%' OR description LIKE '%$search%' ORDER BY iid"; $res = Database::query($sql); if (Database::num_rows($res) > 0) { while ($row = Database::fetch_assoc($res)) { $title = preg_replace('#'.$search.'#',$replace, $row['title']); $description = preg_replace('#'.$search.'#',$replace, $row['description']); $sqlReplace = "UPDATE $tableQuiz SET title = '$title', description = '$description' WHERE iid = ".$row['iid']; try { $resReplace = Database::query($sqlReplace); } catch (Exception $e) { echo "Error executing $sqlReplace
".PHP_EOL; Database::handleError($e); } $quizCount++; } } $tableQuestion = Database::get_course_table(TABLE_QUIZ_QUESTION); $sql = "SELECT iid, question, description FROM $tableQuestion WHERE question LIKE '%$search%' OR description LIKE '%$search%' ORDER BY iid"; $res = Database::query($sql); if (Database::num_rows($res) > 0) { while ($row = Database::fetch_assoc($res)) { $question = preg_replace('#'.$search.'#',$replace, $row['question']); $description = preg_replace('#'.$search.'#',$replace, $row['description']); $sqlReplace = "UPDATE $tableQuestion SET question = '$question', description = '$description' WHERE iid = ".$row['iid']; try { $resReplace = Database::query($sqlReplace); } catch (Exception $e) { echo "Error executing $sqlReplace
".PHP_EOL; Database::handleError($e); } $questionCount++; } } $tableAnswer = Database::get_course_table(TABLE_QUIZ_ANSWER); $sql = "SELECT iid, answer, comment FROM $tableAnswer WHERE answer LIKE '%$search%' OR comment LIKE '%$search%' ORDER BY iid"; $res = Database::query($sql); if (Database::num_rows($res) > 0) { while ($row = Database::fetch_assoc($res)) { $answer = preg_replace('#'.$search.'#',$replace, $row['answer']); $comment = preg_replace('#'.$search.'#',$replace, $row['comment']); $sqlReplace = "UPDATE $tableAnswer SET answer = '$answer', comment = '$comment' WHERE iid = ".$row['iid']; try { $resReplace = Database::query($sqlReplace); } catch (Exception $e) { echo "Error executing $sqlReplace
".PHP_EOL; Database::handleError($e); } $answerCount++; } } echo "Updated $quizCount quizzes, $questionCount questions and $answerCount answers.
".PHP_EOL; } $totalTime = time() - $startTime; echo "Done (took $totalTime seconds)
".PHP_EOL;