Projekt

Obecné

Profil

Stáhnout (3.7 KB) Statistiky
| Větev: | Tag: | Revize:
1
<?php
2
require_once("./functions/dictionary.php");
3

    
4
class TestParser {
5

    
6
    private $text;
7

    
8
    function __construct($text) {
9
        $this->text = $text;
10
        
11
    }
12
    
13
    function getParsedText() {
14
        $parsed = '';
15
        //pr($this->text);
16
        //$found = ereg ( "^(([^\{]*)\{([^\}]*)\})*([^\{]*)" , $this->text, $tokens);
17
        $text = $this->text;
18
        
19
        while(ereg('\{', $text)) {
20
            $found = ereg ( "^([^\{]*)\{([^\}]*)\}(.*)" , $text, $tokens);
21
            $parsed .= $tokens[1];
22
            $parsed .= $this->buildSelect($tokens[2]);
23
            $text = $tokens[3];
24
        }
25
        $parsed .= $text;
26
        
27
        return $parsed;
28
    }
29
    
30
    function buildSelect($selectString) {
31
        $select = '';
32
        $pole = split('/', $selectString);
33
        
34
        shuffle($pole);//zamichame!!!
35
        
36
        $select .= '<select name="test[]" class="arabic">';
37
        $pocitadlo = 0;
38
        $select .= '<option value="0">Vyberte</option>';
39
        foreach($pole as $polozka) {
40
            $select .= '<option value="'.$polozka.'">'.$polozka.'</option>';
41
            $pocitadlo ++;
42
        }
43
        $select .= '</select>';
44
        
45
        
46
        return $select;
47
    }
48
    
49
    function getCorrectedTest($answers) {
50
         $parsed = '';
51
        $text = $this->text;
52
        
53
        //pr($answers);
54
        
55
        $pocitadlo = 0;
56
        while(ereg('\{', $text)) {
57
            $found = ereg ( "^([^\{]*)\{([^\}]*)\}(.*)" , $text, $tokens);
58
            $parsed .= $tokens[1];
59
            $parsed .= $this->buildAnswer($tokens[2], $answers[$pocitadlo]);
60
            $text = $tokens[3];
61
            $pocitadlo ++;
62
        }
63
        $parsed .= $text;
64
        
65
        return $parsed;
66
    }
67
    
68
    function buildAnswer($selectString, $odpoved) {
69
        $answer = '';
70
        $pole = split('/', $selectString);
71
        
72
        //pr('pole 0');
73
        //pr($pole[0]);
74
        //pr('odpoved');
75
        //pr($odpoved);
76
        $spravne = $pole[0];
77
        
78
        if($pole[0] == $odpoved) {
79
            $answer .= ' <span style="color:green">'.$spravne.'</span> ';
80
        }
81
        else {
82
            $answer .= ' <span style="color:red">'.$odpoved.' </span> <span style="color:green">('.$spravne.')</span> ';
83
        }
84
        
85
        return $answer;
86
    }
87

    
88
}
89

    
90
function get_test_chooser($source) {
91
  require_once("./classes/db.php");
92
  $spojeni = new DB_Sql();
93
  $dotaz  = "SELECT * FROM test WHERE source = '$source' ";
94
  $radky = $spojeni->query($dotaz);
95
  $navrat = " ";
96
  
97
  while ($spojeni->next_record()) {
98
    $navrat .= "  <a href=\"examination.php?nav_id=do_test&test=".$spojeni->Record['IDtest']."\"> lekce ".$spojeni->Record['lection'].": ".$spojeni->Record['title']."  </a> <br/>";
99
  }
100
  $navrat .= '';
101
  return $navrat;
102
}
103

    
104
function get_test($test_id) {
105
    require_once("./classes/db.php");
106
  $spojeni = new DB_Sql();
107
  $dotaz  = "SELECT * FROM test WHERE \"IDtest\" = '".pg_escape_string($test_id)."' LIMIT 1 ";
108
  $radky = $spojeni->query($dotaz);
109
  
110
  $spojeni->next_record();
111
  
112
  return $spojeni->Record;
113
}
114

    
115
function get_tests_by_category($category_id) {
116
  require_once("./classes/db.php");
117
  $spojeni = new DB_Sql();
118
  $dotaz  = "SELECT * FROM test WHERE \"test_category_id\" = '".pg_escape_string($category_id)."' ";
119
  $radky = $spojeni->query($dotaz);
120
  
121
  $data = array();
122
  
123
  while ($spojeni->next_record()) {
124
    $data[] = $spojeni->Record;
125
  }
126
  
127
  return $data;
128

    
129
}
130

    
131
function test_form($text) {
132
    $form = '';
133
    
134
    $parser = new TestParser($text);
135
    
136
    $form .= $parser->getParsedText();
137
    
138
    return $form;
139
}
140

    
141
function check_test($text, $odpovedi) {
142
    $form = '';
143
    
144
    $parser = new TestParser($text);
145
    
146
    $form .= $parser->getCorrectedTest($odpovedi);
147
    
148
    return $form;
149
}
150

    
151

    
152

    
(12-12/13)