Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/tests/scripts/fix_mimetex.php

55 lines
1.5 KiB

<?php
/* For licensing terms, see /license.txt */
exit;
require_once __DIR__ . '/../../main/inc/global.inc.php';
$sql = 'SELECT iid, id, question, c_id
FROM c_quiz_question
ORDER BY iid';
$result = Database::query($sql);
$data = Database::store_result($result);
$counter = 1;
$total = count($data);
echo 'Exercises to check: '.$total.PHP_EOL;
foreach ($data as $row) {
$id = $row['id'];
$courseId = $row['c_id'];
$content = fixText($row['question']);
$params = [
'question' => $content
];
Database::update('c_quiz_question', $params, ['id = ? and c_id = ?' => [$id, $courseId]]);
$sql = "SELECT iid, answer, comment FROM c_quiz_answer WHERE question_id = $id and c_id = $courseId";
$result = Database::query($sql);
$items = Database::store_result($result, 'ASSOC');
foreach ($items as $item) {
$id = $item['iid'];
$content = fixText($item['answer']);
$params = [
'answer' => $content
];
Database::update('c_quiz_answer', $params, ['iid = ? ' => $id]);
}
}
function fixText($content)
{
$matches = [];
if (preg_match_all('/<img alt="(.*)?" (.*)?mimetex.cgi\? (.*)?\/>/', $content, $matches)) {
$count = count($matches[0]);
for ($i = 0; $i <= $count; $i++) {
if (isset($matches[0]) && isset($matches[0][$i])) {
$value = "<span class=\"math-tex\">`".$matches[1][$i]."`</span>";
$content = str_replace($matches[0][$i], $value, $content);
}
}
}
return $content;
}