@ -2,6 +2,8 @@ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/* For licensing terms, see /license.txt */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					use Chamilo\CoreBundle\Framework\Container;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					use Chamilo\CourseBundle\Entity\CSurvey;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					use ChamiloSession as Session;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$lastQuestion = 0;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -55,24 +57,39 @@ if (empty($courseInfo)) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    api_not_allowed(true);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$courseId = $courseInfo['real_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$userInfo = api_get_user_info();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$sessionId = isset($_GET['sid']) ? (int) $_GET['sid'] : api_get_session_id();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Breadcrumbs  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!empty($userInfo)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $interbreadcrumb[] = [  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        'url' => api_get_path(WEB_CODE_PATH).'survey/survey_list.php?cid='.$courseInfo['real_i d'] .'& sid='.$sessionId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        'url' => api_get_path(WEB_CODE_PATH).'survey/survey_list.php?cid='.$courseId.'& sid='.$sessionId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        'name' => get_lang('Survey list'),  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$course_id = $courseInfo['real_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$surveyCode = isset($_GET['scode']) ? Database::escape_string($_GET['scode']) : '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// First we check if the needed parameters are present  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ((!isset($_GET['course']) || !isset($_GET['invitationcode'])) & &  !isset($_GET['user_id'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    api_not_allowed(true, get_lang('There is a parameter missing in the link. Please use copy and past'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$repo = Container::getSurveyRepository();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$surveyId = isset($_GET['iid']) ? (int) $_GET['iid'] : 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/** @var CSurvey $survey */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$survey = $repo->find($surveyId);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (null === $survey) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    api_not_allowed(true);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$surveyId = $survey->getIid();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$invitationCode = $_GET['invitationcode'] ?? null;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/*$surveyCode = isset($_GET['scode']) ? Database::escape_string($_GET['scode']) : '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('' != $surveyCode) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Firstly we check if this survey is ready for anonymous use:  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $sql = "SELECT anonymous FROM $table_survey  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            WHERE c_id = $course_id AND code ='".$surveyCode."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            WHERE c_id = $courseI d AND code ='".$surveyCode."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $resultAnonymous = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $rowAnonymous = Database::fetch_array($resultAnonymous, 'ASSOC');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // If is anonymous and is not allowed to take the survey to anonymous users, forbid access:  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -83,78 +100,68 @@ if ('' != $surveyCode) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        api_not_allowed(true);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // If is anonymous and it is allowed to take the survey as anonymous, mark survey as anonymous.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}*/   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// First we check if the needed parameters are present  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ((!isset($_GET['course']) || !isset($_GET['invitationcode'])) & &  !isset($_GET['user_id'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    api_not_allowed(true, get_lang('There is a parameter missing in the link. Please use copy and past'));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ((0 == $survey->getAnonymous() & &  api_is_anonymous())) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    api_not_allowed(true);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$invitationcode = $_GET['invitationcode'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Start auto-invitation feature FS#3403 (all-users-can-do-the-survey-URL handling)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('auto' === $invitationcode & &  isset($_GET['scode']) ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('auto' === $invitationCode) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $userid = api_get_user_id();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Survey_code of the survey  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $surveyCode = $_GET['scode'] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $surveyCode = $survey->getCode() ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if ($isAnonymous) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $autoInvitationc ode = 'auto-ANONY_'.md5(time())."-$surveyCode";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $autoInvitationC ode = 'auto-ANONY_'.md5(time())."-$surveyCode";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $invitations = SurveyManager::getUserInvitationsForSurveyInCourse(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $userid,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $surveyCode,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $courseInfo['real_i d'] ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $courseId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $sessionId  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $lastInvitation = current($invitations);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (!$lastInvitation) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            // New invitation code from userid  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $autoInvitationc ode = "auto-$userid-$surveyCode";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $autoInvitationC ode = "auto-$userid-$surveyCode";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $autoInvitationc ode = $lastInvitation->getInvitationCode();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $autoInvitationC ode = $lastInvitation->getInvitationCode();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // The survey code must exist in this course, or the URL is invalid  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $sql = "SELECT * FROM $table_survey  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            WHERE c_id = $course_id AND code = '".Database::escape_string($surveyCode)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Check availability.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    SurveyManager::checkTimeAvailability($survey);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Check for double invitation records (insert should be done once)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $sql = "SELECT user  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            FROM $table_survey_invitation  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                c_id = $courseId AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                invitation_code = '".Database::escape_string($autoInvitationCode)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (Database :: num_rows($result) > 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Check availability  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $row = Database::fetch_array($result, 'ASSOC');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $tempdata = SurveyManager::get_survey($row['survey_id']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        SurveyManager::checkTimeAvailability($tempdata);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Check for double invitation records (insert should be done once)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $sql = "SELECT user  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                FROM $table_survey_invitation  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    invitation_code = '".Database::escape_string($autoInvitationcode)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $now = api_get_utc_datetime();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (0 == Database :: num_rows($result)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $params = [  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                'c_id' => $course_id,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                'survey_code' => $surveyCode,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                'user' => $userid,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                'invitation_code' => $autoInvitationcode,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                'invitation_date' => $now,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Database::insert($table_survey_invitation, $params);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // From here we use the new invitationcode auto-userid-surveycode string  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $_GET['invitationcode'] = $autoInvitationcode;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Session::write('auto_invitation_code_'.$surveyCode, $autoInvitationcode);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $invitationcode = $autoInvitationcode;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $now = api_get_utc_datetime();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (0 == Database::num_rows($result)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $params = [  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            'c_id' => $courseId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            'survey_id' => $surveyId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            'user' => $userid,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            'invitation_code' => $autoInvitationCode,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            'invitation_date' => $now,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Database::insert($table_survey_invitation, $params);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // From here we use the new invitationcode auto-userid-surveycode string  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $_GET['invitationcode'] = $autoInvitationCode;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    Session::write('auto_invitation_code_'.$surveyCode, $autoInvitationCode);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $invitationCode = $autoInvitationCode;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Now we check if the invitation code is valid  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$sql = "SELECT * FROM $table_survey_invitation  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            c_id = $course_i d AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            invitation_code = '".Database::escape_string($invitationc ode)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            c_id = $courseId AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            invitation_code = '".Database::escape_string($invitationCode)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (Database::num_rows($result) <  1 )  {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    api_not_allowed(true, get_lang('Wrong invitation code'));  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -167,7 +174,7 @@ if (!isset($_POST['finish_survey']) && 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $isAnonymous & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        !empty($surveyUserFromSession) & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        SurveyUtil::isSurveyAnsweredFlagged($survey_invitation['survey_code'] , $survey_invitation['c_id'])  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        SurveyUtil::isSurveyAnsweredFlagged($survey->getCode() , $survey_invitation['c_id'])  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ) ||  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    (1 == $survey_invitation['answered'] & &  !isset($_GET['user_id']))  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -178,7 +185,7 @@ $logInfo = [ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    'tool' => TOOL_SURVEY,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    'tool_id' => $survey_invitation['iid'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    'action' => 'invitationcode',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    'action_details' => $invitationc ode,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    'action_details' => $invitationC ode,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					Event::registerLog($logInfo);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -186,9 +193,7 @@ Event::registerLog($logInfo); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// If this is the case there will be a language choice  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$sql = "SELECT * FROM $table_survey  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            code = '".Database::escape_string($survey_invitation['survey_code'])."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$sql .= api_get_session_condition($sessionId);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            code = '".Database::escape_string($survey->getCode())."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (Database::num_rows($result) > 1) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -213,49 +218,35 @@ if (Database::num_rows($result) > 1) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Display::display_footer();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        exit();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $row = Database::fetch_array($result, 'ASSOC');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $survey_invitation['survey_id'] = $row['iid'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Getting the survey information  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$survey_data = SurveyManager::get_survey($survey_invitation['survey_id']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (empty($survey_data)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    api_not_allowed(true);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Checking time availability  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					SurveyManager::checkTimeAvailability($survey_data);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$survey_data['survey_id'] = $survey_invitation['survey_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('3' == $survey_data['survey_type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					SurveyManager::checkTimeAvailability($survey);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$surveyType = $survey->getSurveyType();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (3 === $surveyType) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    header('Location: '.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        api_get_path(WEB_CODE_PATH).  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        'survey/meeting.php?cid='.$courseInfo['real_i d'] .'& sid='.$sessionId.'& invitationcode='.Security::remove_XSS($invitationc ode)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        'survey/meeting.php?cid='.$courseId.'& sid='.$sessionId.'& invitationcode='.Security::remove_XSS($invitationCode)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    exit;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!empty($survey_data['anonymous'] )) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!empty($survey->getAnonymous() )) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    define('USER_IN_ANON_SURVEY', true);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Storing the answers  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (count($_POST) > 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if ('0' === $survey_data['survey_type'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (0 === $surveyType ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $types = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $required = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Getting all the types of the question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // (because of the special treatment of the score question type  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $sql = "SELECT * FROM $table_survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    survey_id = '".intval($survey_invitation['survey_id'])."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        while ($row = Database::fetch_array($result, 'ASSOC')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $types[$row['iid']] = $row['type'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $required[$row['iid']] = $allowRequiredSurveyQuestions & &  $row['is_required'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $questions = $survey->getQuestions();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $questionList = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        foreach ($questions as $question) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $id = $question->getIid();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $questionList[$id] = $question;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $types[$id] = $question->getType();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $required[$id] = $allowRequiredSurveyQuestions & &  $question->isMandatory();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Looping through all the post values  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -274,6 +265,11 @@ if (count($_POST) > 0) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $other = isset($_POST['other_question'.$survey_question_id]) ? $_POST['other_question'.$survey_question_id] : '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $question = $questionList[$survey_question_id] ?? null;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if (null === $question) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    continue;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                /* If the post value is an array then we have a multiple response question or a scoring question type  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                remark: when it is a multiple response then the value of the array is the option_id  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -282,9 +278,8 @@ if (count($_POST) > 0) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if (is_array($value)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    SurveyUtil::remove_answer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_invitation['user'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_invitation['survey_id'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_question_id,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $course_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $surveyId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_question_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    foreach ($value as $answer_key => & $answer_value) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -296,28 +291,27 @@ if (count($_POST) > 0) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $option_value = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        SurveyUtil::store_ answer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        SurveyUtil::saveA nswer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $survey_invitation['user'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $survey_invitation['survey_id'] ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $survey_ question_id ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $survey,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $question,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $option_id,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $option_value,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $survey_data  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $option_value  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                } else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    // All the other question types (open question, multiple choice, percentage, ...)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if (isset($types[$survey_question_id]) & &    
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                         'percentage' === $types[$survey_question_id]) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $option_value = 0;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if  (isset($types[$survey_question_id])  & &   'percentage' === $types[$survey_question_id]) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $sql = "SELECT * FROM $table_survey_question_option  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    iid='".intval($value)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $row = Database::fetch_array($result, 'ASSOC');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $option_value = $row['option_text'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        if ($row) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $option_value = $row['option_text'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    } else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $option_value = 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        if (isset($types[$survey_question_id]) & &  'open' === $types[$survey_question_id]) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $option_value = $value;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        }  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -326,39 +320,41 @@ if (count($_POST) > 0) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_question_answer = $value;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    SurveyUtil::remove_answer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_invitation['user'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_invitation['survey_id'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_question_id,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $course_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $surveyId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_question_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    SurveyUtil::store_ answer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    SurveyUtil::saveA nswer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_invitation['user'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_invitation['survey_id'] ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_ question_id ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $question,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $value,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $option_value,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $survey_data,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $other  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } elseif ('1' === $survey_data['survey_type'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } elseif (1 === $survey->getSurveyType() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //conditional/personality-test type surveys  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Getting all the types of the question (because of the special treatment of the score question type  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $shuffle = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ('1' == $survey_data['shuffle'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (1 == $survey->getShuffle() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $shuffle = ' ORDER BY RAND() ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $sql = "SELECT * FROM $table_survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        /* $sql = "SELECT * FROM $table_survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    c_id = $course_i d AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    survey_id = '".intval($survey_invitation['survey_id'])."' AND   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    survey_group_pri = '0'  $shuffle";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    survey_id = $surveyI d AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    survey_group_pri = '0'   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $shuffle";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $result = Database::query($sql);*/   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // There is only one question type for conditional surveys  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        while ($row = Database::fetch_array($result, 'ASSOC')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $types[$row['iid']] = $row['type'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $types = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //while ($row = Database::fetch_array($result, 'ASSOC')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $questions = $survey->getQuestions();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $questionList = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        foreach ($questions as $question) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $questionList[$question->getIid()] = $question;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Looping through all the post values  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -375,7 +371,7 @@ if (count($_POST) > 0) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                // We select the correct answer and the puntuacion  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sql = "SELECT value FROM $table_survey_question_option  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        WHERE c_id = $course_id AND  iid='".intval($value)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        WHERE iid='".intval($value)."'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $row = Database::fetch_array($result, 'ASSOC');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $option_value = $row['value'];  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -385,17 +381,15 @@ if (count($_POST) > 0) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                SurveyUtil::remove_answer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_invitation['user'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_invitation['survey_id'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_question_id,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $course_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_question_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                SurveyUtil::store_ answer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                SurveyUtil::saveA nswer(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_invitation['user'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_invitation['survey_id'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_question_id,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $questionList[$ survey_question_id] ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $value,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $option_value,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $survey_data  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $option_value  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -411,11 +405,11 @@ if (0 == $user_id) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$user_data = api_get_user_info($user_id);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('' != $survey_data['form_fields']  & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    0 == $survey_data['anonymous']  & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('' != $survey->getFormFields()  & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    0 == $survey->getAnonymous()  & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    is_array($user_data)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $form_fields = explode('@', $survey_data['form_fields'] );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $form_fields = explode('@', $survey->getFormFields() );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $list = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    foreach ($form_fields as $field) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $field_value = explode(':', $field);  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -427,8 +421,8 @@ if ('' != $survey_data['form_fields'] && 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $url = api_get_self().'?cid='.$courseInfo['real_i d'] .'&sid='.$sessionId;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $listQueryParams = preg_split('/& / ', $_SERVER['QUERY_STRING']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $url = api_get_self().'?cid='.$courseId.'&sid='.$sessionId;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $listQueryParams = explode('&  ', $_SERVER['QUERY_STRING']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    foreach ($listQueryParams as $param) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $url .= '&'.Security::remove_XSS($param);   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -487,8 +481,8 @@ if ('' != $survey_data['form_fields'] && 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $form->applyFilter('official_code', 'stripslashes');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $form->applyFilter('official_code', 'trim');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ('true' == api_get_setting('registration', 'officialcode') & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            'true' == api_get_setting('profile', 'officialcode')  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ('true' ===  api_get_setting('registration', 'officialcode') & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            'true' ===  api_get_setting('profile', 'officialcode')  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $form->addRule('official_code', get_lang('Required field'), 'required');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -502,7 +496,7 @@ if ('' != $survey_data['form_fields'] && 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $form->applyFilter('email', 'stripslashes');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $form->applyFilter('email', 'trim');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ('true' == api_get_setting('registration', 'email')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ('true' ===  api_get_setting('registration', 'email')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $form->addRule('email', get_lang('Required field'), 'required');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $form->addEmailRule('email');  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -527,7 +521,7 @@ if ('' != $survey_data['form_fields'] && 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ('true' !== api_get_setting('profile', 'language')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $form->freeze('language');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ('true' == api_get_setting('profile', 'language')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ('true' ===  api_get_setting('profile', 'language')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $form->addRule('language', get_lang('Required field'), 'required');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -559,9 +553,9 @@ Display::display_header(get_lang('Surveys')); 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					echo '< div  class = "survey-block" > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					echo '< div  class = "page-header" > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					echo '< h2 > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					echo strip_tags($survey_data['survey_title'] , '< span > ').'< / h2 > < / div > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!empty($survey_data['survey_subtitle'] )) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    echo '< div  class = "survey_subtitle" > < p > '.strip_tags($survey_data['survey_subtitle'] ).'< / p > < / div > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					echo strip_tags($survey->getTitle() , '< span > ').'< / h2 > < / div > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!empty($survey->getSubtitle() )) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    echo '< div  class = "survey_subtitle" > < p > '.strip_tags($survey->getSubtitle() ).'< / p > < / div > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Displaying the survey introduction  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -572,14 +566,14 @@ if ( 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    Session::erase('paged_questions');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    Session::erase('page_questions_sec');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $paged_questions_sec = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (!empty($survey_data['survey_introduction'] )) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        echo '< div  class = "survey_content" > '.Security::remove_XSS($survey_data['survey_introduction'] ).'< / div > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (!empty($survey->getIntro() )) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        echo '< div  class = "survey_content" > '.Security::remove_XSS($survey->getIntro() ).'< / div > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $limit = 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($survey_data['form_fields']  & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    0 == $survey_data['anonymous']  & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ($survey->getFormFields()  & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    0 == $survey->getAnonymous()  & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    is_array($user_data) & &   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    !isset($_GET['show'])  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					) {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -616,7 +610,6 @@ if ($survey_data['form_fields'] && 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $extraFieldValue = new ExtraFieldValue('user');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $extraFieldValue->saveFieldValues($user_data);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                echo '< div  id = "survey_content"  class = "survey_content" > '.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    get_lang('Information updated').' '.get_lang('Please fill survey').'< / div > ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -640,18 +633,9 @@ if ($survey_data['form_fields'] && 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Displaying the survey thanks message  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (isset($_POST['finish_survey'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    echo Display::return_message(get_lang('You have finished this survey.'), 'confirm');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    echo Security::remove_XSS($survey_data['survey_thanks']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    SurveyManager::update_survey_answered(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $survey_data,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $survey_invitation['user'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $survey_invitation['survey_code']  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    SurveyUtil::flagSurveyAsAnswered(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $survey_invitation['survey_code'],  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $survey_invitation['c_id']  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    echo Security::remove_XSS($survey->getSurveythanks());  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    SurveyManager::updateSurveyAnswered($survey, $survey_invitation['user']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    SurveyUtil::flagSurveyAsAnswered($survey->getCode(), $survey_invitation['c_id']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if ($courseInfo & &  !api_is_anonymous()) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        echo '< br  / > < br  / > ';  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -670,7 +654,7 @@ if (isset($_POST['finish_survey'])) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Sets the random questions  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$shuffle = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (1 == $survey_data['shuffle'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (1 == $survey->getShuffle() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $shuffle = ' BY RAND() ';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -691,17 +675,16 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // If non-conditional survey  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if ('0' == $survey_data['survey_type'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (0 === $survey->getSurveyType() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (empty($paged_questions)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $sql = "SELECT * FROM $table_survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_question NOT LIKE '%{{%' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_id = '".intval($survey_invitation['survey_id'])."'  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_id = '".$surveyId."'  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ORDER BY sort ASC";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            while ($row = Database::fetch_array($result, 'ASSOC')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if (1 == $survey_data['one_question_per_page'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if (1 == $survey->getOneQuestionPerPage() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if ('pagebreak' !== $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $paged_questions[$counter][] = $row['iid'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $counter++;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -721,14 +704,14 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Redefinition of variables and session ids to fix issue of survey not  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        //  showing questions - see support.chamilo.org #5529  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $course_i d = $survey_invitation['c_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Session::write('_cid', $course_i d);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Session::write('_real_cid', $course_i d);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $courseI d = $survey_invitation['c_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Session::write('_cid', $courseI d);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Session::write('_real_cid', $courseI d);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (array_key_exists($_GET['show'], $paged_questions)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if (isset($_GET['user_id'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                // Get the user into survey answer table (user or anonymus)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $my_user_id = 1 == $survey_data['anonymous']  ? $surveyUserFromSession : api_get_user_id();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $my_user_id = 1 == $survey->getAnonymous()  ? $surveyUserFromSession : api_get_user_id();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sql = "SELECT  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.survey_group_sec1,  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -748,15 +731,15 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        FROM $table_survey_question survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        LEFT JOIN $table_survey_question_option survey_question_option  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        ON survey_question.iid = survey_question_option.question_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_question_option.c_id = $course_i d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_question_option.c_id = $courseI d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.survey_id = '".Database::escape_string($survey_invitation['survey_id']) ."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.survey_id = '".$surveyId ."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.iid NOT IN (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                SELECT sa.question_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                FROM ".$table_survey_answer." sa  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    sa.user='".$my_user_id."') AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    survey_question.c_id =  $course_i d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    survey_question.c_id =  $courseI d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                ORDER BY survey_question.sort, survey_question_option.sort ASC";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            } else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sql = "SELECT  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -777,13 +760,11 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            ".($allowRequiredSurveyQuestions ? ', survey_question.is_required' : '')."  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        FROM $table_survey_question survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        LEFT JOIN $table_survey_question_option survey_question_option  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        ON survey_question.iid = survey_question_option.question_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question_option.c_id = $course_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        ON survey_question.iid = survey_question_option.question_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question NOT LIKE '%{{%' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.survey_id = '".intval($survey_invitation['survey_id'])."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.iid IN (".implode(',', $paged_questions[$_GET['show']]).") AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.c_id =  $course_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.survey_id = '".$surveyId."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.iid IN (".implode(',', $paged_questions[$_GET['show']]).")  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        ORDER BY survey_question.sort, survey_question_option.sort ASC";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -805,8 +786,9 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $questions[$sort]['maximum_score'] = $row['max_value'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $questions[$sort]['sort'] = $sort;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $questions[$sort]['is_required'] = $allowRequiredSurveyQuestions & &  $row['is_required'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $questions[$sort]['parent_id'] = isset($row['parent_id']) ? $row['parent_id'] : 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $questions[$sort]['parent_option_id'] = isset($row['parent_option_id']) ? $row['parent_option_id'] : 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $questions[$sort]['parent_id'] = $row['parent_id'] ?? 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $questions[$sort]['parent_option_id'] =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        isset($row['parent_option_id']) ? $row['parent_option_id'] : 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $counter++;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if (isset($_GET['show']) & &  (int) $_GET['show'] >= 0) {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -816,7 +798,7 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } elseif ('1' === $survey_data['survey_type'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } elseif (1 === $survey->getSurveyType() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $my_survey_id = (int) $survey_invitation['survey_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $current_user = Database::escape_string($survey_invitation['user']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -839,9 +821,7 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ON (survey_question.iid = survey_answer.question_id)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_answer.survey_id='".$my_survey_id."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_answer.user='".$current_user."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_answer.c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_question.c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        survey_answer.user='".$current_user."'  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    GROUP BY survey_group_pri  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ORDER BY survey_group_pri  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ";  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -866,8 +846,8 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        ON (survey_question.iid = survey_question_option.question_id)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.survey_id='".$my_survey_id."'  AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.c_id = $course_i d AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question_option.c_id = $course_i d AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question.c_id = $courseI d AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question_option.c_id = $courseI d AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_group_sec1='0' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_group_sec2='0'  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        GROUP BY survey_group_pri, survey_question.iid  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -996,17 +976,16 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $sql = "SELECT * FROM $table_survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                 WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    survey_id = '".$my_survey_id."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    ($secondary )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                 ORDER BY sort ASC";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $counter = 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        while ($row = Database::fetch_array($result, 'ASSOC')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            if (1 == $survey_data['one_question_per_page'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            if (1 == $survey->getOneQuestionPerPage() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $paged_questions_sec[$counter][] = $row['question_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $counter++;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            } elseif ('pagebreak' == $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            } elseif ('pagebreak' ===  $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $counter++;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $pageBreakText[$counter] = $row['survey_question'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            } else {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1041,11 +1020,9 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                FROM $table_survey_question survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                LEFT JOIN $table_survey_question_option survey_question_option  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                ON survey_question.iid = survey_question_option.question_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                survey_question_option.c_id = $course_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    survey_question NOT LIKE '%{{%' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    survey_question.survey_id = '".$my_survey_id."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    survey_question.c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    survey_question.survey_id = '".$my_survey_id."'  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    survey_question.iid IN (".implode(',', $paged_questions_sec[$val]).")  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                ORDER  $shuffle ";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1056,7 +1033,7 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $questions = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        while ($row = Database::fetch_array($result, 'ASSOC')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            // If the type is not a pagebreak we store it in the $questions array  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            if ('pagebreak' != $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            if ('pagebreak' !==  $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $questions[$row['sort']]['question_id'] = $row['question_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $questions[$row['sort']]['survey_id'] = $row['survey_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $questions[$row['sort']]['survey_question'] = $row['survey_question'];  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1099,19 +1076,18 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if (empty($_SESSION['paged_questions'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sql = "SELECT * FROM $table_survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            c_id = $course_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_id = '".intval($survey_invitation['survey_id'])."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_id = '".$surveyId."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_group_sec1='0' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_group_sec2='0'  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        ORDER ".$order_sql." ";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $counter = 0;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                while ($row = Database::fetch_array($result, 'ASSOC')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if (1 == $survey_data['one_question_per_page'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if (1 == $survey->getOneQuestionPerPage() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $paged_questions[$counter][] = $row['question_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $counter++;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    } else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        if ('pagebreak' == $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        if ('pagebreak' ===  $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $counter++;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $pageBreakText[$counter] = $row['survey_question'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        } else {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1153,11 +1129,11 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            FROM $table_survey_question survey_question  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            LEFT JOIN $table_survey_question_option survey_question_option  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            ON survey_question.iid = survey_question_option.question_id AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question_option.c_id = $course_i d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            survey_question_option.c_id = $courseI d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            WHERE  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                survey_question NOT LIKE '%{{%' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                survey_question.survey_id = '".intval($survey_invitation['survey_id'])."' AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                survey_question.c_id = $course_i d  AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                survey_question.c_id = $courseI d  AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                survey_question.iid IN (".$imploded.")  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            ORDER $order_sql ";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $result = Database::query($sql);  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1171,7 +1147,7 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $questions = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                while ($row = Database :: fetch_array($result, 'ASSOC')) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    // If the type is not a pagebreak we store it in the $questions array  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if ('pagebreak' != $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if ('pagebreak' !==  $row['type']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $questions[$row['sort']]['question_id'] = $row['question_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $questions[$row['sort']]['survey_id'] = $row['survey_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $questions[$row['sort']]['survey_question'] = $row['survey_question'];  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1198,7 +1174,7 @@ if ((isset($_GET['show']) && '' != $_GET['show']) || 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$numberOfPages = SurveyManager::getCountPages($survey_data );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$numberOfPages = SurveyManager::getCountPages($survey);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					// Displaying the form with the questions  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$show = 0;  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1228,10 +1204,12 @@ $g_ic = isset($_GET['invitationcode']) ? Security::remove_XSS($_GET['invitationc 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$g_cr = isset($_GET['cidReq']) ? Security::remove_XSS($_GET['cidReq']) : '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$p_l = isset($_POST['language']) ? Security::remove_XSS($_POST['language']) : '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$add_parameters = isset($_GET['user_id']) ? '& user_id='.intval($_GET['user_id']) : '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$url = api_get_self().'?cid='.$courseInfo['real_i d'] .'& sid='.$sessionId.$add_parameters.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$url = api_get_self().'?cid='.$courseId.'& sid='.$sessionId.$add_parameters.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    '& course='.$g_c.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    '& invitationcode='.$g_ic.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    '&show='.$show;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    '& show='.$show.  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    '& iid='.$surveyId  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (!empty($_GET['language'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $lang = Security::remove_XSS($_GET['language']);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $url .= '&language='.$lang;   
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1247,7 +1225,7 @@ $form = new FormValidator( 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$form->addHidden('language', $p_l);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$showNumber = true;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (SurveyManager::hasDependency($survey_data )) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if (SurveyManager::hasDependency($survey)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $showNumber = false;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1266,7 +1244,6 @@ if (isset($questions) && is_array($questions)) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $form->addHtml('< div  class = "start-survey" > ');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $js = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (isset($pageBreakText[$originalShow]) & &  !empty(strip_tags($pageBreakText[$originalShow]))) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // Only show page-break texts if there is something there, apart from  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // HTML tags  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1279,6 +1256,7 @@ if (isset($questions) && is_array($questions)) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    foreach ($questions as $key => & $question) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $ch_type = 'ch_'.$question['type'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $questionNumber = $questionCounter;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $display = new $ch_type();  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1313,12 +1291,12 @@ if (isset($questions) && is_array($questions)) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                case 'score':  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $finalAnswer = [];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    foreach ($userAnswer as $userChoice) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        list($choiceId, $choiceValue)  = explode('*', $userChoice);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        [$choiceId, $choiceValue]  = explode('*', $userChoice);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $finalAnswer[$choiceId] = $choiceValue;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    break;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                case 'percentage':  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    list($choiceId, $choiceValue)  = explode('*', current($userAnswer));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    [$choiceId, $choiceValue]  = explode('*', current($userAnswer));  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $finalAnswer = $choiceId;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    break;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                default:  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1335,8 +1313,8 @@ if (isset($questions) && is_array($questions)) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					$form->addHtml('< div  class = "start-survey" > ');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('0' == $survey_data['survey_type'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (0 == $survey_data['show_form_profile'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					if ('0' == $survey->getSurveyType() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (0 == $survey->getShowFormProfile() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // The normal survey as always  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ($show <  $numberOfPages) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if (0 == $show) {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -1406,7 +1384,7 @@ if ('0' == $survey_data['survey_type']) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} elseif ('1' == $survey_data['survey_type'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					} elseif (1 === $survey->getSurveyType() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Conditional/personality-test type survey  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if (isset($_GET['show']) || isset($_POST['personality'])) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $numberOfPages = count($paged_questions);  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1422,7 +1400,7 @@ if ('0' == $survey_data['survey_type']) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (0 == $personality) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if (($show < = $numberOfPages) || !$_GET['show']) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $form->addButton('next_survey_page', get_lang('Next'), 'arrow-right', 'success');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if (0 == $survey_data['one_question_per_page'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if (0 == $survey->getOneQuestionPerPage() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if ($personality >= 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $form->addHidden('personality', $personality);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1441,7 +1419,7 @@ if ('0' == $survey_data['survey_type']) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ($show > $numberOfPages & &  $_GET['show'] & &  0 == $personality) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $form->addHidden('personality', $personality);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } elseif ($personality > 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if (1 == $survey_data['one_question_per_page'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if (1 == $survey->getOneQuestionPerPage() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if ($show >= $numberOfPages) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $form->addButton('finish_survey', get_lang('Finish survey'), 'arrow-right', 'success');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                } else {  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -1453,7 +1431,7 @@ if ('0' == $survey_data['survey_type']) { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $form->addButton('finish_survey', get_lang('Finish survey'), 'arrow-right');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } elseif ('' == $survey_data['form_fields'] ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } elseif ('' == $survey->getFormFields() ) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // This is the case when the show_profile_form is true but there are not form_fields  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $form->addButton('next_survey_page', get_lang('Next'), 'arrow-right', 'success');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    } elseif (!is_array($user_data)) {