@@ -7492,4 +7492,79 @@ private static function subscribeSessionWhenFinishedFailure(int $exerciseId): vo
7492
7492
);
7493
7493
}
7494
7494
}
7495
+
7496
+ public static function replaceTermsInContent (string $ search , string $ replace ): array
7497
+ {
7498
+ $ quizCount = 0 ;
7499
+ $ questionCount = 0 ;
7500
+ $ answerCount = 0 ;
7501
+ $ tableQuiz = Database::get_course_table (TABLE_QUIZ_TEST );
7502
+ $ sql = "SELECT iid, title, description FROM $ tableQuiz WHERE title LIKE '% $ search%' OR description LIKE '% $ search%' ORDER BY iid " ;
7503
+ $ res = Database::query ($ sql );
7504
+
7505
+ if (Database::num_rows ($ res ) > 0 ) {
7506
+ while ($ row = Database::fetch_assoc ($ res )) {
7507
+ $ title = preg_replace ('# ' .$ search .'# ' ,$ replace , $ row ['title ' ]);
7508
+ $ description = preg_replace ('# ' .$ search .'# ' ,$ replace , $ row ['description ' ]);
7509
+ $ sqlReplace = "UPDATE $ tableQuiz SET title = ' $ title', description = ' $ description' WHERE iid = " .$ row ['iid ' ];
7510
+
7511
+ try {
7512
+ Database::query ($ sqlReplace );
7513
+ } catch (Exception $ e ) {
7514
+ echo "Error executing $ sqlReplace " .PHP_EOL ;
7515
+ Database::handleError ($ e );
7516
+ }
7517
+
7518
+ $ quizCount ++;
7519
+ }
7520
+ }
7521
+
7522
+ $ tableQuestion = Database::get_course_table (TABLE_QUIZ_QUESTION );
7523
+ $ sql = "SELECT iid, question, description FROM $ tableQuestion WHERE question LIKE '% $ search%' OR description LIKE '% $ search%' ORDER BY iid " ;
7524
+ $ res = Database::query ($ sql );
7525
+
7526
+ if (Database::num_rows ($ res ) > 0 ) {
7527
+ while ($ row = Database::fetch_assoc ($ res )) {
7528
+ $ question = preg_replace ('# ' .$ search .'# ' ,$ replace , $ row ['question ' ]);
7529
+ $ description = preg_replace ('# ' .$ search .'# ' ,$ replace , $ row ['description ' ]);
7530
+ $ sqlReplace = "UPDATE $ tableQuestion SET question = ' $ question', description = ' $ description' WHERE iid = " .$ row ['iid ' ];
7531
+
7532
+ try {
7533
+ Database::query ($ sqlReplace );
7534
+ } catch (Exception $ e ) {
7535
+ echo "Error executing $ sqlReplace " .PHP_EOL ;
7536
+ Database::handleError ($ e );
7537
+ }
7538
+
7539
+ $ questionCount ++;
7540
+ }
7541
+ }
7542
+
7543
+ $ tableAnswer = Database::get_course_table (TABLE_QUIZ_ANSWER );
7544
+ $ sql = "SELECT iid, answer, comment FROM $ tableAnswer WHERE answer LIKE '% $ search%' OR comment LIKE '% $ search%' ORDER BY iid " ;
7545
+ $ res = Database::query ($ sql );
7546
+
7547
+ if (Database::num_rows ($ res ) > 0 ) {
7548
+ while ($ row = Database::fetch_assoc ($ res )) {
7549
+ $ answer = preg_replace ('# ' .$ search .'# ' ,$ replace , $ row ['answer ' ]);
7550
+ $ comment = preg_replace ('# ' .$ search .'# ' ,$ replace , $ row ['comment ' ]);
7551
+ $ sqlReplace = "UPDATE $ tableAnswer SET answer = ' $ answer', comment = ' $ comment' WHERE iid = " .$ row ['iid ' ];
7552
+
7553
+ try {
7554
+ Database::query ($ sqlReplace );
7555
+ } catch (Exception $ e ) {
7556
+ echo "Error executing $ sqlReplace " .PHP_EOL ;
7557
+ Database::handleError ($ e );
7558
+ }
7559
+
7560
+ $ answerCount ++;
7561
+ }
7562
+ }
7563
+
7564
+ return [
7565
+ 'quizzes ' => $ quizCount ,
7566
+ 'questions ' => $ questionCount ,
7567
+ 'answers ' => $ answerCount ,
7568
+ ];
7569
+ }
7495
7570
}
0 commit comments