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.
		
		
		
		
		
			
		
			
				
					
					
						
							109 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
	
	
							109 lines
						
					
					
						
							2.7 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/* For licensing terms, see /license.txt */
 | 
						|
 | 
						|
exit;
 | 
						|
 | 
						|
error_reporting(0);
 | 
						|
 | 
						|
require_once __DIR__.'/../../main/inc/global.inc.php';
 | 
						|
 | 
						|
$sql = 'SELECT id FROM course order by id';
 | 
						|
$result = Database::query($sql);
 | 
						|
$fix = true;
 | 
						|
 | 
						|
$table = Database::get_course_table(TABLE_QUIZ_TEST);
 | 
						|
while ($row = Database::fetch_array($result, 'ASSOC')) {
 | 
						|
    $courseId = $row['id'];
 | 
						|
    $courseInfo = api_get_course_info_by_id($courseId);
 | 
						|
    if (empty($courseInfo)) {
 | 
						|
        continue;
 | 
						|
    }
 | 
						|
 | 
						|
    // Not only active means visible and invisible NOT deleted (-2)
 | 
						|
    $sql_active_exercises = "active IN (1, 0) AND ";
 | 
						|
 | 
						|
    $params = [
 | 
						|
        $courseId,
 | 
						|
    ];
 | 
						|
 | 
						|
    // All exercises
 | 
						|
    $conditions = [
 | 
						|
        'where' => ["$sql_active_exercises (session_id <> 0 ) AND c_id = ? " => $params],
 | 
						|
        'order' => 'title',
 | 
						|
    ];
 | 
						|
    $exerciseList = Database::select('*', $table, $conditions);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    if (empty($exerciseList)) {
 | 
						|
        continue;
 | 
						|
    }
 | 
						|
 | 
						|
    $counter = 0;
 | 
						|
    $emptyCounter = 0;
 | 
						|
    $fixed = 0;
 | 
						|
    $userId = 1;
 | 
						|
 | 
						|
    foreach ($exerciseList as $exerciseItem) {
 | 
						|
        $oldId = $exerciseItem['id'];
 | 
						|
        $exerciseId = $exerciseItem['iid'];
 | 
						|
 | 
						|
        $sessionId = $exerciseItem['session_id'];
 | 
						|
 | 
						|
        if ($oldId <>  $exerciseId) {
 | 
						|
//		continue;
 | 
						|
        }
 | 
						|
        $oldVisibility = api_get_item_visibility(
 | 
						|
            $courseInfo,
 | 
						|
            TOOL_QUIZ,
 | 
						|
            $oldId,
 | 
						|
            $sessionId
 | 
						|
        );
 | 
						|
 | 
						|
        $visibility = api_get_item_visibility(
 | 
						|
            $courseInfo,
 | 
						|
            TOOL_QUIZ,
 | 
						|
            $exerciseId,
 | 
						|
            $sessionId
 | 
						|
        );
 | 
						|
 | 
						|
        if (-1 === $visibility && -1 === $oldVisibility) {
 | 
						|
            if ($fix) {
 | 
						|
                api_item_property_update(
 | 
						|
                    $courseInfo,
 | 
						|
                    TOOL_QUIZ,
 | 
						|
                    $exerciseId,
 | 
						|
                    'QuizUpdated',
 | 
						|
                    $userId,
 | 
						|
                    null,
 | 
						|
                    null,
 | 
						|
                    null,
 | 
						|
                    null,
 | 
						|
                    $sessionId
 | 
						|
                );
 | 
						|
                echo "Fix exercise iid = $exerciseId / ".$exerciseItem['title'].PHP_EOL;
 | 
						|
                $fixed++;
 | 
						|
            }
 | 
						|
 | 
						|
            echo "check session: $sessionId  exercise iid = $exerciseId / ".$exerciseItem['title'].PHP_EOL;
 | 
						|
 | 
						|
 | 
						|
            $emptyCounter++;
 | 
						|
        } else {
 | 
						|
 | 
						|
//	   echo "Ref exists: visibility: ".$visibility['visibility']."  session: $sessionId check exercise iid = $exerciseId / ".$exerciseItem['title'].PHP_EOL;
 | 
						|
 | 
						|
        }
 | 
						|
        $counter++;
 | 
						|
    }
 | 
						|
 | 
						|
    if ($emptyCounter > 0) {
 | 
						|
        echo 'Course: '.$courseId.' - '.$courseInfo['title'].PHP_EOL.PHP_EOL;
 | 
						|
        echo $emptyCounter.'/ ' . $counter.PHP_EOL;
 | 
						|
        echo 'To be fix: ' . $emptyCounter.PHP_EOL;
 | 
						|
        exit;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 |