*/
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;