source: Dev/trunk/classes/QuestionCreationDatabaseInterface.php @ 105

Last change on this file since 105 was 105, checked in by basvannuland, 14 years ago

New question interfaces

File size: 3.5 KB
RevLine 
[105]1<?php
2
3
4// Survey database interface class as intermediate for storing data from the site to the RDF database
5require_once 'rdfConstants.php';
6
7// Include RAP Library to write RDF files
8include(RDFAPI_INCLUDE_DIR . "RDFAPI.php");
9
10/**
11 * Description of QuestionCreationDatabaseInterface
12 *
13 * @author basvannuland
14 */
15class QuestionCreationDatabaseInterface {
16   
17    protected $questionRDFWriter;
18    protected $questionRDFReader;
19   
20    public function __construct()
21    {
22        $this->questionRDFWriter = new QuestionRDFWriter();
23        $this->questionRDFReader = new QuestionRDFReader();
24    }
25   
26    public function setQuestionInfo($question)
27    {
28        $qCode = $question['questionCode'.$qNumber];
29        $qTitle = $question['questionTitle'.$qNumber];
30        $qDescription = $question['questionDescription'.$qNumber];
31        $qType = $question['questionType'.$qNumber];
32
33        $qAnswers = array();
34        $aNumber = 1;
35        while (isset($question['ans'.$aNumber]))
36        {
37            $qAnswers[] = $question['ans'.$aNumber];
38
39            $aNumber++;
40        }
41
42        if($this->checkQuestionCodeExists($qCode))
43        {
44            return 'Question code (' . $qCode . ') already in use. Please try a new code.';
45        }
46        else {
47            $this->questionRDFWriter->createQuestion($qTitle,$qDescription,$qType,$qCode,"null",$qAnswers);
48            return 'Question saved';
49        }
50        $this->questionRDFWriter->saveQuestions();         
51    }
52   
53    public function getQuestionInfo($qCode)
54    {
55        $questionInfo - array();
56       
57        $questionTitleObject = $this->questionRDFReader->readQuestionTitle($qCode);
58        $questionInfo['questionTitle'] = $questionTitleObject[0]['?questionTitle']->label;
59
60        $questionDescriptionObject = $this->questionRDFReader->readQuestionDescription($qCode);
61        $questionInfo['questionDescription'] = $questionDescriptionObject[0]['?questionDescription']->label;
62
63        $questionTypeObject = $this->questionRDFReader->readQuestionType($qCode);
64        $questionInfo['questionType'] = $questionTypeObject[0]['?questionType']->label;
65
66        $resultAnswers = $this->questionRDFReader->readQuestionAnswers($qCode);
67
68        if ($resultAnswers != null)
69        {
70            for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++)
71            {
72                $questionInfo['ans'.$aNumber] = $resultAnswers[$aNumber-1]['?answerDescription']->label;
73            }
74        }
75    }
76   
77    public function getExistingQuestions()
78    {
79        $questions = array();
80
81        $resultQuestions = $this->questionRDFReader->readQuestionCodes();
82        foreach ($resultQuestions as $questionCodeObject)
83        {
84            $questionCode = $questionCodeObject[0]['?questionCode']->label;
85            $questionTitle = $this->questionRDFReader->readQuestionTitle($questionCode);
86            $questions[$questionCode] = $questionTitle[0]['?questionTitle']->label;
87        }
88
89        return $questions;
90    }
91   
92    public function checkQuestionCodeExists($qCode)
93    {
94        $result = false;
95
96        $questionCodes = $this->questionRDFReader->readQuestionCodes();
97       
98        if ($questionCodes != null)
99        {
100            foreach($questionCodes as $questionCode)
101            {
102                $code = $questionCode['?questionCode']->label;
103                if(!strcmp($code ,$qCode))
104                {
105                    $result = true;
106                    break;
107                }
108            }
109        }
110
111        return $result;
112    }
113}
114
115?>
Note: See TracBrowser for help on using the repository browser.