source: Dev/trunk/classes/SurveyDatabaseInterface.php @ 30

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

added uid to data return

File size: 3.2 KB
Line 
1<?php
2// Survey class as intermediate for storing data from the site to the RDF database
3require 'rdfConstants.php';
4
5// Include RAP Library to write RDF files
6define("RDFAPI_INCLUDE_DIR", "rdfapi/");
7include(RDFAPI_INCLUDE_DIR . "RDFAPI.php");
8
9
10
11class SurveyDatabaseInterface
12{               
13        protected $surveyRDFWriter;
14        protected $surveyRDFReader;
15 
16
17    public function __construct($surveyID=null)
18    {
19                if($surveyID == null)
20                        $surveyUID = md5( uniqid(rand(), true) );
21                else
22                        $surveyUID = $surveyID;
23                                       
24                $this->surveyRDFWriter = new SurveyRDFWriter($surveyUID);
25                $this->surveyRDFReader = new SurveyRDFReader($surveyUID);
26    }
27               
28        public function __destruct()
29        {
30                echo "Destroyed";
31        }
32       
33        public function setSurveyInfo($survey)
34        {
35                $sTitle = $survey['surveyTitle'];
36                $sDescription = $survey['surveyDescription'];
37               
38                $this->surveyRDFWriter->createSurvey($sTitle,$sDescription);
39               
40                $qNumber = 1;
41                while (isset($survey['questionTitle'.$qNumber]))
42                {
43                        $qTitle = $survey['questionTitle'.$qNumber];
44                        $qDescription = $survey['questionDescription'.$qNumber];
45                        $qType = $survey['questionType'.$qNumber];
46                       
47                        $qAnswers = array();
48                        $aNumber = 1;
49                        while (isset($survey['q'.$qNumber.'ans'.$aNumber]))
50                        {
51                                $aArray = array();
52                                $aArray['Title'] = $survey['q'.$qNumber.'ans'.$aNumber];
53                                $aArray['Description'] = 'answerDescription'.$aNumber;
54                                $qAnswers[] = $aArray;
55                               
56                                $aNumber++;
57                        }
58                       
59                        $this->surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qAnswers);
60                       
61                        $qNumber++;
62                }
63
64                $this->surveyRDFWriter->saveSurvey();
65        }
66       
67        public function getSurveyInfo()
68        {
69                $surveyInfo = array();
70               
71                $resultSurvey = $this->surveyRDFReader->getSurveyInfo();
72               
73                $surveyInfo['surveyID'] = substr($resultSurvey[0][0]['?uid'],9,strlen($resultSurvey[0][0]['?uid'])-11);
74                $surveyInfo['surveyTitle'] = substr($resultSurvey[0][0]['?title'],9,strlen($resultSurvey[0][0]['?title'])-11);
75                $surveyInfo['surveyDescription'] = substr($resultSurvey[0][0]['?description'],9,strlen($resultSurvey[0][0]['?description'])-11);
76                                                                       
77                for($qNumber = 1;$qNumber<=sizeof($resultSurvey[1][0]);$qNumber++)
78                {
79                        $surveyInfo['questionTitle'.$qNumber] = substr($resultSurvey[1][0][$qNumber-1]['?questionTitle'],9,strlen($resultSurvey[1][0][$qNumber-1]['?questionTitle'])-11);
80                        $surveyInfo['questionDescription'.$qNumber] = substr($resultSurvey[1][1][$qNumber-1]['?questionDescription'],9,strlen($resultSurvey[1][1][$qNumber-1]['?questionDescription'])-11);
81                        $surveyInfo['questionType'.$qNumber] = substr($resultSurvey[1][2][$qNumber-1]['?questionType'],9,strlen($resultSurvey[1][2][$qNumber-1]['?questionType'])-11);
82                        $questionID = substr($resultSurvey[1][3][$qNumber-1]['?questionID'],9,strlen($resultSurvey[1][3][$qNumber-1]['?questionID'])-11);
83                       
84                        $resultAnswers = $this->surveyRDFReader->readSurveyAnswers($questionID);
85                                               
86                        if ($resultAnswers != null)
87                        {
88                                for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++)
89                                {
90                                        $surveyInfo['q'.$qNumber.'ans'.$aNumber] = substr($resultAnswers[$aNumber-1]['?answerTitle'],9,strlen($resultAnswers[$aNumber-1]['?answerTitle'])-11);
91                                }
92                        }
93                }
94                               
95                return $surveyInfo;
96        }
97
98}
99?>
Note: See TracBrowser for help on using the repository browser.