";
- for($i=1;$i<=$this->questionLimit;$i++) {
- $value= $this->questionList[$i]['q_id']; // Value den Wert der q_id geben
- $question=str_replace("\n", "
", $this->questionList[$i]['question']);
- echo "";
- echo"".Global_08." $i: | ";
-
- if($this->questionList[$i]['qt_id']!=4) {
- echo"$question | ";
- echo"
";
+ echo "";
- }
-
- function SingleSelection($i,$value){
- for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++){ // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
- $answer=$this->answerList[$value][$j]['answer'];
- $answerNumber=$this->answerList[$value][$j]['a_id'];
- if($answer!=null) { // Wenn es eine Antwort gibt soll diese angezeigt werden
- echo "";
- echo " | ";
- echo" | ";
- if ($answer=='true') echo" ".Class_Answer_09." | ";
- else if ($answer=='false') echo" ".Class_Answer_10." | ";
- else echo" $answer | ";
- echo " | ";
- echo "
";
- }
- }
- echo " |
";
- }
-
- function MultipleChoice($i,$value){
- for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++){ // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
- $answer=$this->answerList[$value][$j]['answer'];
- $answerNumber=$this->answerList[$value][$j]['a_id'];
- if($answer!=null){ // Wenn es eine Antwort gibt soll diese angezeigt werden
- echo "";
- echo " | ";
- echo " | ";
- echo " $answer | ";
- echo " | ";
- echo "
";
- }
- }
- echo " |
";
- }
-
- function randomizeArray($answerList,$value) {
- $max=count($answerList[$value]); // setze Maximum
- $index=range(1,$max); // Kreiire Array
- shuffle($index); // würfle array
- $copy= $answerList; // kopie erstellen
- for($i=0;$i<$max;$i++){
- $k=$index[$i];
- $answerList[$value][$i+1]=$copy[$value][$k]; // zuweisen
- }
- $_SESSION ['values'] ['answerList']= $answerList;
- return $answerList;
- }
-
- function FillInTheBlanks($i,$value,$question) {
-
- echo '';
- $correctAns=$this->question->getCorrectAnswerFillInTheBlanks($question); // korrekte Antworen ermitteln
- $numberOfAnswers=$this->questionList[$i]['numberOfAnswers'];
- for ($l=0;$l $value, 'a_id' => $correctAns[$l+1]['answer'],'answer' =>$correctAns[$l+1]['answer'],'correct'=>1,'blank'=>$correctAns[$l+1]['blank']);
- $numberOfAnswers=$numberOfAnswers+1; // Anzahl der Antworten erhöhen
- $this->answerList[$value][$numberOfAnswers]= $addCorrect ; // an richtiger Stelle einfügen
- }
- $this->answerList=$this->randomizeArray($this->answerList,$value);
-
- $addSlashes= preg_quote($question, '[^]'); // Slash hinzufügen wenn KLammer gefunden wird
- $array=explode('\\',$addSlashes); // String teilen
- for($k=0;$k ";
- for ($j=1;$j<=$numberOfAnswers;$j++){ // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
- $answer=$this->answerList[$value][$j]['answer'];
- $answerNumber=$this->answerList[$value][$j]['a_id'];
- //echo $this->answerList[$value][$j]['a_id'];
- echo"";
- }
- echo"";
- }
-
- else if((strstr($array[$k],']'))){
- $array[$k]=str_replace("]",'', $array[$k]); // Klammer entfernen
- echo $array[$k];
- }
- else echo $array[$k];
- }
+ }
+ echo "";
+ echo "";
+ echo"";
+ //echo"";
+ //echo"";
+ echo" ";
echo " | ";
- echo " | ";
echo " ";
- echo " | ";
- }
-
-
-
- function evaluateQuiz() {
-
- echo"";
- echo " ";
+ echo"";
+ }
+
+ function SingleSelection($i,$value){
+ for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++){ // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
+ $answer=$this->answerList[$value][$j]['answer'];
+ $answerNumber=$this->answerList[$value][$j]['a_id'];
+ if($answer!=null) { // Wenn es eine Antwort gibt soll diese angezeigt werden
+ echo " ";
+ echo " | ";
+ echo" | ";
+ if ($answer=='true') echo" ".Class_Answer_09." | ";
+ else if ($answer=='false') echo" ".Class_Answer_10." | ";
+ else echo" $answer | ";
+ echo " | ";
+ echo " ";
+ }
+ }
+ echo " | ";
+ }
+
+ function MultipleChoice($i,$value){
+ for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++){ // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
+ $answer=$this->answerList[$value][$j]['answer'];
+ $answerNumber=$this->answerList[$value][$j]['a_id'];
+ if($answer!=null){ // Wenn es eine Antwort gibt soll diese angezeigt werden
+ echo " ";
+ echo " | ";
+ echo " | ";
+ echo " $answer | ";
+ echo " | ";
+ echo " ";
+ }
+ }
+ echo " | ";
+ }
+
+ function randomizeArray($answerList,$value) {
+ $max=count($answerList[$value]); // setze Maximum
+ $index=range(1,$max); // Kreiire Array
+ shuffle($index); // würfle array
+ $copy= $answerList; // kopie erstellen
+ for($i=0;$i<$max;$i++){
+ $k=$index[$i];
+ $answerList[$value][$i+1]=$copy[$value][$k]; // zuweisen
+ }
+ $_SESSION ['values'] ['answerList']= $answerList;
+ return $answerList;
+ }
+
+ function FillInTheBlanks($i,$value,$question) {
+ echo ' ';
+ $correctAns=$this->question->getCorrectAnswerFillInTheBlanks($question); // korrekte Antworen ermitteln
+ $numberOfAnswers=$this->questionList[$i]['numberOfAnswers'];
+ for ($l=0;$l $value, 'a_id' => $correctAns[$l+1]['answer'],'answer' =>$correctAns[$l+1]['answer'],'correct'=>1,'blank'=>$correctAns[$l+1]['blank']);
+ $numberOfAnswers=$numberOfAnswers+1; // Anzahl der Antworten erhöhen
+ $this->answerList[$value][$numberOfAnswers]= $addCorrect ; // an richtiger Stelle einfügen
+ }
+ $this->answerList=$this->randomizeArray($this->answerList,$value);
+
+ $addSlashes= preg_quote($question, '[^]'); // Slash hinzufügen wenn KLammer gefunden wird
+ $array=explode('\\',$addSlashes); // String teilen
+ for($k=0;$k ";
+ for ($j=1;$j<=$numberOfAnswers;$j++){ // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
+ $answer=$this->answerList[$value][$j]['answer'];
+ $answerNumber=$this->answerList[$value][$j]['a_id'];
+ //echo $this->answerList[$value][$j]['a_id'];
+ echo"";
+ }
+ echo"";
+ }
+ else if((strstr($array[$k],']'))){
+ $array[$k]=str_replace("]",'', $array[$k]); // Klammer entfernen
+ echo $array[$k];
+ }
+ else echo $array[$k];
+ }
+ echo " | ";
+ echo " | ";
+ echo "";
+ echo " | ";
+ }
+
+
+ function evaluateQuiz() {
+ echo" ";
+ echo " ";
echo " ";
-
+
$this->updateStatistic();
- $this->getTestResult();
- $this->createLearnProgress();
-
- }
-
- function evaluateSingleSelection($i,$value){
- for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++) { // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
- $answer=$this->answerList[$value][$j]['answer'];
- $answerNumber=$this->answerList[$value][$j]['a_id'];
- if($answer!=null) { // Wenn es eine Antwort gibt soll diese angezeigt werden
- echo "\n ";
- echo " | ";
- echo "";
- // Auswahl des Benutzers
- if(isset($this->selectedAnswers[$value]) && $this->selectedAnswers[$value]==$this->answerList[$value][$j]['a_id']) {
- echo"";
- } else {
- echo"";
- }
- echo " | ";
- //richtige Antworten
- echo "";
- if($this->answerList[$value][$j]['correct']==1) {
- echo"";
- $show_class="answer correct";
- } else {
- echo"";
- $show_class="answer false";
- }
- echo " | ";
- if ($answer=='true') echo" ".Class_Answer_09." | ";
- else if ($answer=='false') echo" ".Class_Answer_10." | ";
- else echo"$answer | ";
-
- echo " | ";
- echo" ";
- }
-
- if(isset($this->selectedAnswers[$value]) && isset($this->answerList[$value][$j]['correct']) &&
+ $this->getTestResult();
+ $this->createLearnProgress();
+
+ }
+
+ function evaluateSingleSelection($i,$value){
+ for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++) { // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
+ $answer=$this->answerList[$value][$j]['answer'];
+ $answerNumber=$this->answerList[$value][$j]['a_id'];
+ if($answer!=null) { // Wenn es eine Antwort gibt soll diese angezeigt werden
+ echo "\n ";
+ echo " | ";
+ echo "";
+ // Auswahl des Benutzers
+ if(isset($this->selectedAnswers[$value]) && $this->selectedAnswers[$value]==$this->answerList[$value][$j]['a_id']) {
+ echo"";
+ } else {
+ echo"";
+ }
+ echo " | ";
+ //richtige Antworten
+ echo "";
+ if($this->answerList[$value][$j]['correct']==1) {
+ echo"";
+ $show_class="answer correct";
+ } else {
+ echo"";
+ $show_class="answer false";
+ }
+ echo " | ";
+ if ($answer=='true') echo" ".Class_Answer_09." | ";
+ else if ($answer=='false') echo" ".Class_Answer_10." | ";
+ else echo"$answer | ";
+
+ echo " | ";
+ echo" ";
+ }
+
+ if (isset($this->selectedAnswers[$value]) && isset($this->answerList[$value][$j]['correct']) &&
$this->selectedAnswers[$value]==$this->answerList[$value][$j]['a_id'] && $this->answerList[$value][$j]['correct']==1) {
- $correct[]=1;
- }
- }
- $this->showDescription($i);
-
- if(!isset($correct)) $correct[]=0;
- $this->checkAnswers($correct,$value);
- }
-
- function evaluateMultipleChoice($i,$value) {
- for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++){ // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
- for($k=0;$k<$this->questionList[$i]['numberOfAnswers'];$k++){ // markieren welche Antworten der Benutzer ausgewählt hat
- if(isset($this->selectedAnswers [$value][$k]) && $this->selectedAnswers [$value][$k]!=null){ // wenn die Antwort nicht null ist
- if($this->selectedAnswers [$value][$k]==$this->answerList[$value][$j]['a_id'])$checked [$j]=1;
- else if(!isset($checked[$j]) || !$checked [$j]) $checked [$j]=0;
- }
- }
- }
- for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++){ // antworten die der Benutzer ausewählt hat ausgeben
- echo "\n ";
- echo " | ";
- echo "";
- $answer=$this->answerList[$value][$j]['answer'];
- $answerNumber=$this->answerList[$value][$j]['a_id'];
- if (!isset($checked[$j])) $checked[$j] = 0;
- if($checked[$j]==1) echo"";
- else if ($checked[$j]==0) echo"";
- echo " | ";
- //richtige Antworten ausgeben
- echo "";
- if($this->answerList[$value][$j]['correct']==1) {
- echo"";
- $show_class = "answer correct";
- } else {
- echo"";
- $show_class = "answer false";
- }
- echo " | ";
- echo" $answer | ";
- echo " | ";
- echo" ";
- if(($this->answerList[$value][$j]['correct']==1) && ($checked [$j]==1)){ //Prüfung auf Richtigkeit
- $correct[$j]=1;
- unset($this->answerList[$value][$j]);
- } else if(($this->answerList[$value][$j]['correct']==1)&& ($checked [$j]==0))$correct[$j]=0;
- else if(($this->answerList[$value][$j]['correct']==0) && ($checked [$j]==1))$correct[$j]=0;
- }
- $this->showDescription($i);
- $this->checkAnswers($correct,$value);
-
- }
-
+ $correct[]=1;
+ }
+ }
+ $this->showDescription($i);
+
+ if(!isset($correct)) $correct[]=0;
+ $this->checkAnswers($correct,$value);
+ }
+
+ function evaluateMultipleChoice($i,$value) {
+ for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++){ // Solange Schleife durchlaufen wie die maximale Anzahl der Antworten ist
+ for($k=0;$k<$this->questionList[$i]['numberOfAnswers'];$k++){ // markieren welche Antworten der Benutzer ausgewählt hat
+ if(isset($this->selectedAnswers [$value][$k]) && $this->selectedAnswers [$value][$k]!=null){ // wenn die Antwort nicht null ist
+ if($this->selectedAnswers [$value][$k]==$this->answerList[$value][$j]['a_id'])$checked [$j]=1;
+ else if(!isset($checked[$j]) || !$checked [$j]) $checked [$j]=0;
+ }
+ }
+ }
+ for ($j=1;$j<=$this->questionList[$i]['numberOfAnswers'];$j++){ // antworten die der Benutzer ausewählt hat ausgeben
+ echo "\n ";
+ echo " | ";
+ echo "";
+ $answer=$this->answerList[$value][$j]['answer'];
+ $answerNumber=$this->answerList[$value][$j]['a_id'];
+ if (!isset($checked[$j])) $checked[$j] = 0;
+ if($checked[$j]==1) echo"";
+ else if ($checked[$j]==0) echo"";
+ echo " | ";
+ //richtige Antworten ausgeben
+ echo "";
+ if($this->answerList[$value][$j]['correct']==1) {
+ echo"";
+ $show_class = "answer correct";
+ } else {
+ echo"";
+ $show_class = "answer false";
+ }
+ echo " | ";
+ echo" $answer | ";
+ echo " | ";
+ echo" ";
+ if(($this->answerList[$value][$j]['correct']==1) && ($checked [$j]==1)){ //Prüfung auf Richtigkeit
+ $correct[$j]=1;
+ unset($this->answerList[$value][$j]);
+ } else if(($this->answerList[$value][$j]['correct']==1)&& ($checked [$j]==0))$correct[$j]=0;
+ else if(($this->answerList[$value][$j]['correct']==0) && ($checked [$j]==1))$correct[$j]=0;
+ }
+ $this->showDescription($i);
+ $this->checkAnswers($correct,$value);
+
+ }
+
function evaluateFillInTheBlanks($i,$value,$question){
-
-
- $addSlashes= preg_quote($question, '[^]'); // Slash hinzufügen wenn KLammer gefunden wird
- $array=explode('\\',$addSlashes); // String teilen
- // Was Benutzer markiert hat
- for($k=0;$k answerList[$value]);$j++){ // antworten die der Benutzer ausewählt hat ausgeben
- $answer=$this->answerList[$value][$j]['answer']; // Amtwort wird zugewiesen
- if($this->selectedAnswers[$value][$k]==$this->answerList[$value][$j]['a_id']){
- echo " ";
- if(isset($this->answerList[$value][$j]['blank']) && $this->answerList[$value][$j]['blank']==$k) $correct[]=1;
- else $correct[]=0;
- break;
- }
- }
- } else if((strstr($array[$k],']'))){
- $array[$k]=str_replace("]",'', $array[$k]); // Klammer entfernen
+ $addSlashes= preg_quote($question, '[^]'); // Slash hinzufügen wenn KLammer gefunden wird
+ $array=explode('\\',$addSlashes); // String teilen
+ // Was Benutzer markiert hat
+ for($k=0;$kanswerList[$value]);$j++){ // antworten die der Benutzer ausewählt hat ausgeben
+ $answer=$this->answerList[$value][$j]['answer']; // Amtwort wird zugewiesen
+ if($this->selectedAnswers[$value][$k]==$this->answerList[$value][$j]['a_id']){
+ echo " ";
+ if(isset($this->answerList[$value][$j]['blank']) && $this->answerList[$value][$j]['blank']==$k) $correct[]=1;
+ else $correct[]=0;
+ break;
+ }
+ }
+ } else if((strstr($array[$k],']'))){
+ $array[$k]=str_replace("]",'', $array[$k]); // Klammer entfernen
+ echo $array[$k];
+ } else echo $array[$k];
+ }
+ echo " | ";
+ echo "";
+
+ echo "\n";
+ echo " | ";
+ echo "";
+
+ // Was richtig ist
+ $addSlashes= preg_quote($question, '[^]'); // Slash hinzufügen wenn KLammer gefunden wird
+ $array=explode('\\',$addSlashes); // String teilen
+ //echo" ";
+
+ for($k=0;$k";
+ } else if((strstr($array[$k],']'))) {
+ $array[$k]=str_replace("]",'', $array[$k]); // Klammer entfernen
echo $array[$k];
- } else echo $array[$k];
- }
- echo " | ";
- echo "
";
-
- echo "\n";
- echo " | ";
- echo "";
-
- // Was richtig ist
- $addSlashes= preg_quote($question, '[^]'); // Slash hinzufügen wenn KLammer gefunden wird
- $array=explode('\\',$addSlashes); // String teilen
- //echo" ";
-
- for($k=0;$k";
- } else if((strstr($array[$k],']'))) {
- $array[$k]=str_replace("]",'', $array[$k]); // Klammer entfernen
- echo $array[$k];
- } else echo $array[$k];
- }
- echo " | ";
- echo "
";
-
- $this->showDescription($i);
- $this->checkAnswers($correct,$value);
- }
-
-function checkAnswers($correct,$value) {
- $check = in_array(0, $correct); // Prüfen ob im Array der Wert 0 ist, denn dann wurde mindestens eine Antwort falsch beantwortet
- echo "\n";
- if(!$check)echo" | ";
- else {
- $this->wrongQuestions[]=$value;
- echo" | ";
- }
- echo "
";
-}
-
- function updateStatistic() {
- for($i=1;$i<=$this->questionLimit;$i++) {
- $sql="SELECT count FROM statistics WHERE q_id=".intval($this->questionList[$i]['q_id'])."";
- $query = mysql_query($sql);
- while($count=mysql_fetch_array($query ,MYSQL_BOTH )){
- $count=$count['count'];
- $count=$count+1;
- $sql_update="UPDATE statistics SET count=".intval($count)." WHERE q_id=".intval($this->questionList[$i]['q_id'])."";
- $query_update = mysql_query($sql_update);
- }
- }
- }
-
+ } else echo $array[$k];
+ }
+ echo "";
+ echo "";
+
+ $this->showDescription($i);
+ $this->checkAnswers($correct,$value);
+ }
+
+ function checkAnswers($correct,$value) {
+ $check = in_array(0, $correct); // Prüfen ob im Array der Wert 0 ist, denn dann wurde mindestens eine Antwort falsch beantwortet
+ echo "\n";
+ if(!$check)echo" | ";
+ else {
+ $this->wrongQuestions[]=$value;
+ echo" | ";
+ }
+ echo "
";
+ }
+
+ function updateStatistic() {
+ for($i=1;$i<=$this->questionLimit;$i++) {
+ $sql="SELECT count FROM statistics WHERE q_id=".intval($this->questionList[$i]['q_id'])."";
+ $query = mysql_query($sql);
+ while($count=mysql_fetch_array($query ,MYSQL_BOTH )){
+ $count=$count['count'];
+ $count=$count+1;
+ $sql_update="UPDATE statistics SET count=".intval($count)." WHERE q_id=".intval($this->questionList[$i]['q_id'])."";
+ $query_update = mysql_query($sql_update);
+ }
+ }
+ }
+
function createLearnProgress() { // Lernprogress erstellen
- $timestamp = time();
- $date= date("Y-m-d H:i:s" ,$timestamp); // aktuelles Datum und Uhrzeit berechnen
- $correctAnswers=$this->questionLimit-count($this->wrongQuestions);
- $wrongAnswers=count($this->wrongQuestions);
- $sql="INSERT INTO learnprogress (user_id,root,date,t_id,number,correct,wrong,percentage) VALUES ('".mysql_real_escape_string($_SESSION['profile']['id'])."','".mysql_real_escape_string($_SESSION['profile']['root'])."','$date',".intval($this->topicID).",".intval($this->questionLimit).",".intval($correctAnswers).",".intval($wrongAnswers).",".mysql_real_escape_string($this->percentTest).")";
- $query = mysql_query($sql);
- $this->lp_id = mysql_insert_id();
- $this->insertAnswersIncorrect();
- }
-
- function insertAnswersIncorrect(){
- foreach($this->wrongQuestions as $value){
- $sql="INSERT INTO answers_incorrect (lp_id,q_id) VALUES ( ".intval($this->lp_id).",".intval($value).")";
- $query = mysql_query($sql);
- }
- }
-
- function getTestResult(){
- $wrong=count($this->wrongQuestions);
- $correct=$this->questionLimit-$wrong;
- if($wrong==0)$percentTest=100;
- else if(($wrong>=$this->questionLimit) || ($this->questionLimit < 1))$percentTest=0;
- else $percentTest=($correct/$this->questionLimit)*100;
-
- $percentTest=round($percentTest, 2);
- $this->percentTest=$percentTest;
- if($this->rawToPass > 0 && $this->rawToPass <= $percentTest)$value="".Class_Quiz_08."";
- else $value="".Class_Quiz_09."";
-
- echo' '.Global_05." :
";
- global $questionlimit;
- $questionlimit =$this->questionLimit;
- echo" ".Class_Quiz_04." $correct / $this->questionLimit
";
- echo" ".Class_Quiz_05." $this->rawToPass % ";
- echo "
".Class_Quiz_06." ".$this->percentTest." % ".Class_Quiz_07." $value
";
- //createLearnProgress();
-
- if($this->rawToPass > 0 && $this->rawToPass <= $percentTest) {
- // Test has been passed, maybe a paper/PDF-certificate can be requested
- if ($_SERVER['SSL_CLIENT_S_DN_CN']=="CAcert WoT User") {
- // Sorry, we cannot issue certificates for anonymous users
- echo '
'.Class_Quiz_10_AnonymousCert."
";
- } else {
- echo "";
- }
- }
- }
-
- function showDescription($i){
- if(isset($_SESSION['values']['questionList'][$i]['description_text'])){
- // Ausgabe der Beschreibung
- echo "\n";
- echo " | ";
- echo"".$_SESSION['values']['questionList'][$i]['description_text']." | ";
- echo " | ";
- echo "
";
- }
- }
+ $timestamp = time();
+ $date= date("Y-m-d H:i:s" ,$timestamp); // aktuelles Datum und Uhrzeit berechnen
+ $correctAnswers=$this->questionLimit-count($this->wrongQuestions);
+ $wrongAnswers=count($this->wrongQuestions);
+ $passed=$this->testPassed;
+ $sql="INSERT INTO learnprogress (user_id,root,date,t_id,number,correct,wrong,percentage,passed)
+ VALUES ('".mysql_real_escape_string($_SESSION['profile']['id'])."',
+ '".mysql_real_escape_string($_SESSION['profile']['root'])."',
+ '$date',
+ ".intval($this->topicID).",
+ ".intval($this->questionLimit).",
+ ".intval($correctAnswers).",
+ ".intval($wrongAnswers).",
+ ".mysql_real_escape_string($this->percentTest).",
+ ".intval($passed).")";
+ $query = mysql_query($sql);
+ $this->lp_id = mysql_insert_id();
+ $this->insertAnswersIncorrect();
+ }
+
+ function insertAnswersIncorrect(){
+ foreach($this->wrongQuestions as $value){
+ $sql="INSERT INTO answers_incorrect (lp_id,q_id) VALUES ( ".intval($this->lp_id).",".intval($value).")";
+ $query = mysql_query($sql);
+ }
+ }
+
+ function getTestResult(){
+ $wrong=count($this->wrongQuestions);
+ $correct=$this->questionLimit-$wrong;
+ if($wrong==0)$percentTest=100;
+ else if(($wrong>=$this->questionLimit) || ($this->questionLimit < 1))$percentTest=0;
+ else $percentTest=($correct/$this->questionLimit)*100;
+
+ $percentTest=round($percentTest, 2);
+ $this->percentTest=$percentTest;
+ $this->testPassed=0;
+ if($this->rawToPass > 0 && $this->rawToPass <= $percentTest)$value="".Class_Quiz_08."";
+ else $value="".Class_Quiz_09."";
+
+ echo' '.Global_05." :
";
+ global $questionlimit;
+ $questionlimit =$this->questionLimit;
+ echo" ".Class_Quiz_04." $correct / $this->questionLimit
";
+ echo" ".Class_Quiz_05." $this->rawToPass % ";
+ echo "
".Class_Quiz_06." ".$this->percentTest." % ".Class_Quiz_07." $value
";
+ //createLearnProgress();
+
+ if($this->rawToPass > 0 && $this->rawToPass <= $percentTest) {
+ $this->testPassed=1;
+ // Test has been passed, maybe a paper/PDF-certificate can be requested
+ if ($_SERVER['SSL_CLIENT_S_DN_CN']=="CAcert WoT User") {
+ // Sorry, we cannot issue certificates for anonymous users
+ echo '
'.Class_Quiz_10_AnonymousCert."
";
+ } else {
+ echo "";
+ }
+ }
+ }
+
+ function showDescription($i){
+ if(isset($_SESSION['values']['questionList'][$i]['description_text'])){
+ // Ausgabe der Beschreibung
+ echo "\n";
+ echo " | ";
+ echo"".$_SESSION['values']['questionList'][$i]['description_text']." | ";
+ echo " | ";
+ echo "
";
+ }
+ }
}
?>
diff --git a/classes/progress.class.php b/classes/progress.class.php
index 72cf0b5..d4707af 100755
--- a/classes/progress.class.php
+++ b/classes/progress.class.php
@@ -7,6 +7,8 @@ class Progress
var $incorrect_answers;
var $percentArray;
var $maximum;
+ var $passed;
+ var $totalresult=array();
function Progress() {
$this->progress=array();
@@ -15,54 +17,62 @@ class Progress
$this->topic=0;
$this->lp_id=0;
$this->percentArray=array();
+ $this->passed=0;
}
-
+
function setTopic($t_id){
$this->topic=$t_id;
}
-
+
function setLp_id($lp_id){
- $this->lp_id=$lp_id;
+ $this->lp_id=$lp_id;
+ }
+
+ function setData($value){
+ $this->progress=$value;
}
-
- function setData($value){
- $this->progress=$value;
- }
function getProgress(){
- $sql= "SELECT lp_id,date,number,correct,wrong FROM learnprogress WHERE user_id='".mysql_real_escape_string($_SESSION['profile']['id'])."' AND t_id='".mysql_real_escape_string($this->topic)."' AND root ='".mysql_real_escape_string($_SESSION['profile']['root'])."' order by date";
- $query = mysql_query($sql) OR die(mysql_error());
- $i=1;
- while($progress =mysql_fetch_array($query,MYSQL_BOTH )){
+ $sql= "SELECT lp_id,date,number,correct,wrong, passed FROM learnprogress WHERE user_id='".mysql_real_escape_string($_SESSION['profile']['id'])."' AND t_id='".mysql_real_escape_string($this->topic)."' AND root ='".mysql_real_escape_string($_SESSION['profile']['root'])."' order by date";
+ $query = mysql_query($sql) OR die(mysql_error());
+ $i=1;
+ while($progress =mysql_fetch_array($query,MYSQL_BOTH )){
$this->progress[$i]['lp_id']=$progress['lp_id'];
$this->progress[$i]['date']=$progress['date'];
$this->progress[$i]['number']=$progress['number']; // in arra speichern
$this->progress[$i]['correct']=$progress['correct'];
$this->progress[$i]['wrong']=$progress['wrong'];
+ $this->progress[$i]['passed']=$progress['passed'];
$i++;
}
-
+
}
-
+
function count() {
- $numberOfTests=count($this->progress);
- return $numberOfTests;
+ $numberOfTests=count($this->progress);
+ return $numberOfTests;
}
-
+
function showTable() {
+ $this->totalresult['count']=0;
+ $this->totalresult['passed']=0;
if(count($this->progress)==0) echo "".Global_07."
";
else {
echo"
";
- echo"";
+ echo"";
echo "";
echo"".Global_10." | ";
echo"".Global_04." | ";
echo"".Class_Progress_01." | ";
echo"".Global_03." | ";
+ echo"".Statistic_04." | ";
echo " | ";
echo"
";
- for ($i=1;$i<=count($this->progress);$i++){
+ for ($i=1;$i<=count($this->progress);$i++){
+ if (1==$this->progress[$i]['passed']) {
+ $this->totalresult['passed']+=1;
+ }
echo "";
- echo"$i | ";
+ echo"$i | ";
echo"".$this->progress[$i]['date']." | ";
echo"".$this->progress[$i]['number']." | ";
if ($this->progress[$i]['number'] > 0) {
@@ -71,50 +81,62 @@ class Progress
$percent = 0;
}
$percent=round ($percent,2);
- echo"$percent % | ";
- echo" topic'> | ";
- echo "
";
- }
- echo"
";
+ echo "$percent % | ";
+ echo "".$this->getPassedImage($this->progress[$i]['passed'])." | ";
+ echo " topic'> | ";
+ echo "";
}
+ $this->totalresult['count']=$i-1;
+ echo "";
+ echo "".Statistic_04.' '.$this->totalresult['passed'].'/'.$this->totalresult['count']." | ";
+ echo "
\n";
+ echo"
";
+ if ($this->totalresult['passed'] > 0) {
+ echo "";
+ }
+ }
}
-
- function checkProgressData(){
+
+ function checkProgressData(){
if(count($this->progress)==0) echo "".Global_07."
";
else {
$percentArray=array();
$limit=count($this->progress);
- if($limit>$this->maximum){
- $k=($limit-$this->maximum)+1;
- $limit=($k+$this->maximum)-1;
- echo ''.Class_Progress_02." ".Class_Progress_03." $this->maximum ".Class_Progress_04.".
";
- } else $k=1;
- $j=0;
-
- for ($i=$k;$i<=$limit;$i++){
- if ($this->progress[$i]['number'] > 0) {
- $percent=($this->progress[$i]['correct']/$this->progress[$i]['number'])*100;
- } else {
- $percent=0;
+ if($limit>$this->maximum){
+ $k=($limit-$this->maximum)+1;
+ $limit=($k+$this->maximum)-1;
+ echo ''.Class_Progress_02." ".Class_Progress_03." $this->maximum ".Class_Progress_04.".
";
+ } else $k=1;
+ $j=0;
+
+ for ($i=$k;$i<=$limit;$i++){
+ if ($this->progress[$i]['number'] > 0) {
+ $percent=($this->progress[$i]['correct']/$this->progress[$i]['number'])*100;
+ } else {
+ $percent=0;
+ }
+ $this->percentArray[$j][]=$this->progress[$i]['date'];
+ $this->percentArray[$j][]=$percent;
+ $j++;
}
- $this->percentArray[$j][]=$this->progress[$i]['date'];
- $this->percentArray[$j][]=$percent;
- $j++;
- }
}
}
-
+
function showBalken(){
-
+
$this->checkProgressData();
$this->percentArray= serialize($this->percentArray);
$this->percentArray=base64_encode ($this->percentArray);
$titley=Global_15;
$titlex=Global_04;
- echo " \n";
+ echo "
\n";
echo "
";
- echo "
\n";
-
+ echo "
\n";
+
}
function showGraph(){
$this->checkProgressData();
@@ -122,91 +144,101 @@ class Progress
$this->percentArray=base64_encode ($this->percentArray);
$titley=Global_15;
$titlex=Global_04;
- echo " \n";
+ echo "
\n";
echo "
";
- echo "
\n";
-
+ echo "
\n";
+
}
-
+
function showPie(){
- echo " \n";
+ echo "
\n";
echo "
";
echo "
\n";
}
-
-
+
+
function getIncorrectAnswers()
{
$sql="SELECT q_id FROM answers_incorrect WHERE lp_id=".intval($this->lp_id)."";
$query = mysql_query($sql);
$i=1;
- while($incorrect_answers =mysql_fetch_array($query,MYSQL_BOTH ))
- {
- $this->incorrect_answers[$i]['q_id']=$incorrect_answers['q_id'];
- $i++;
- }
+ while($incorrect_answers =mysql_fetch_array($query,MYSQL_BOTH ))
+ {
+ $this->incorrect_answers[$i]['q_id']=$incorrect_answers['q_id'];
+ $i++;
+ }
$this->showIncorrectAnswers();
}
-
- function showIncorrectAnswers(){
- echo "
";
- }
-
- function getFIBQuestion($question){
- $addSlashes= preg_quote( $question, '[^]'); // Slash hinzufügen wenn KLammer gefunden wird
- $array=explode('\\',$addSlashes); // String teilen
- $questionText= $question;
- if(substr_count($question,"[")==substr_count($question,"]")) { // gleiche anzahl von Klammer auf und zu
- for($i=1;$i<=substr_count($question,"[");$i++){ // Wird solange durchlaufne wie Klammern vorhanden sind
- $beginPos = strpos($questionText, "["); // Anfangspunkt festlegen
- $endPos=strpos($questionText, "]"); // Endpunkt festlegen
- $length=(($endPos+1)-$beginPos) ; // Länge der Strings ermitteln
- $answer=substr ($questionText,$beginPos,$length );// den String zwischen den Klammern suchen
- $questionText=str_replace($answer,'(xxx)', $questionText); // gespeicherten Wert aus string löschen
- $answer=str_replace("]",'', $answer); // Klammer entfernen
- $key = array_search($answer, $array);
- $answer=str_replace("[",'', $answer); // Klammer entfernen
-
- }
- }
- return $questionText;
+ echo "";
}
- }
+
+ function getFIBQuestion($question){
+ $addSlashes= preg_quote( $question, '[^]'); // Slash hinzufügen wenn KLammer gefunden wird
+ $array=explode('\\',$addSlashes); // String teilen
+ $questionText= $question;
+ if(substr_count($question,"[")==substr_count($question,"]")) { // gleiche anzahl von Klammer auf und zu
+ for($i=1;$i<=substr_count($question,"[");$i++){ // Wird solange durchlaufne wie Klammern vorhanden sind
+ $beginPos = strpos($questionText, "["); // Anfangspunkt festlegen
+ $endPos=strpos($questionText, "]"); // Endpunkt festlegen
+ $length=(($endPos+1)-$beginPos) ; // Länge der Strings ermitteln
+ $answer=substr ($questionText,$beginPos,$length );// den String zwischen den Klammern suchen
+ $questionText=str_replace($answer,'(xxx)', $questionText); // gespeicherten Wert aus string löschen
+ $answer=str_replace("]",'', $answer); // Klammer entfernen
+ $key = array_search($answer, $array);
+ $answer=str_replace("[",'', $answer); // Klammer entfernen
+ }
+ }
+ return $questionText;
+ }
+
+ function getPassedImage($passed){
+ // returns the image depending on the status of a test result
+ $img="
";
+ if (0==$passed) {
+ $img="
";
+ }
+ if (1==$passed) {
+ $img="
";
+ }
+ return $img;
+ }
+ }
?>