Ignore:
Timestamp:
07/29/11 14:51:06 (14 years ago)
Author:
basvannuland
Message:

updates to the database system. ao New file structure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/classes/SurveyDatabaseInterface.php

    r45 r62  
    1010class SurveyDatabaseInterface
    1111{               
    12         protected $surveyRDFWriter;
    13         protected $surveyRDFReader;
    14  
     12    protected $surveyRDFWriter;
     13    protected $surveyRDFReader;
     14
    1515
    1616    public function __construct($surveyID)
    1717    {
    18                 if($surveyID == null)
    19                         $surveyUID = md5( uniqid(rand(), true) );
    20                 else
    21                         $surveyUID = $surveyID;
    22                                        
    23                 $this->surveyRDFWriter = new SurveyRDFWriter($surveyUID);
    24                 $this->surveyRDFReader = new SurveyRDFReader($surveyUID);
     18        if($surveyID == null)
     19            $surveyUID = md5( uniqid(rand(), true) );
     20        else
     21            $surveyUID = $surveyID;
     22
     23        $this->surveyRDFWriter = new SurveyRDFWriter($surveyUID);
     24        $this->surveyRDFReader = new SurveyRDFReader($surveyUID);
    2525    }
    26        
    27         public function setSurveyInfo($survey)
    28         {
    29                 $sTitle = $survey['surveyTitle'];
    30                 $sDescription = $survey['surveyDescription'];
    31                
    32                 $this->surveyRDFWriter->createSurvey($sTitle,$sDescription);
    33                
    34                 $qNumber = 1;
    35                 while (isset($survey['questionTitle'.$qNumber]))
    36                 {
    37                         $qTitle = $survey['questionTitle'.$qNumber];
    38                         $qDescription = $survey['questionDescription'.$qNumber];
    39                         $qType = $survey['questionType'.$qNumber];
    40                         if (isset($survey['questionID'.$qNumber]))
    41                                 $qID = $survey['questionID'.$qNumber];
    42                         else
    43                                 $qID = md5( uniqid(rand(), true) );
    44                        
    45                         $qAnswers = array();
    46                         $aNumber = 1;
    47                         while (isset($survey['q'.$qNumber.'ans'.$aNumber]))
    48                         {
    49                                 $aArray = array();
    50                                 $aArray['Title'] = $survey['q'.$qNumber.'ans'.$aNumber];
    51                                 $aArray['Description'] = 'answerDescription'.$aNumber;
    52                                 $qAnswers[] = $aArray;
    53                                
    54                                 $aNumber++;
    55                         }
    56                        
    57                         $this->surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qID,$qAnswers);
    58                        
    59                         $qNumber++;
    60                 }
    6126
    62                 $this->surveyRDFWriter->saveSurvey();
    63         }
    64        
    65         public function getSurveyInfo()
    66         {
    67                 $surveyInfo = array();
    68                
    69                 $resultSurvey = $this->surveyRDFReader->getSurveyInfo();
    70                
    71                 $surveyInfo['surveyID'] = substr($resultSurvey[0][0]['?uid'],9,strlen($resultSurvey[0][0]['?uid'])-11);
    72                 $surveyInfo['surveyTitle'] = substr($resultSurvey[0][0]['?title'],9,strlen($resultSurvey[0][0]['?title'])-11);
    73                 $surveyInfo['surveyDescription'] = substr($resultSurvey[0][0]['?description'],9,strlen($resultSurvey[0][0]['?description'])-11);
    74                                                                        
    75                 for($qNumber = 1;$qNumber<=sizeof($resultSurvey[1][0]);$qNumber++)
    76                 {
    77                         $surveyInfo['questionID'.$qNumber] = substr($resultSurvey[1][3][$qNumber-1]['?questionID'],9,strlen($resultSurvey[1][3][$qNumber-1]['?questionID'])-11);
    78                         $surveyInfo['questionTitle'.$qNumber] = substr($resultSurvey[1][0][$qNumber-1]['?questionTitle'],9,strlen($resultSurvey[1][0][$qNumber-1]['?questionTitle'])-11);
    79                         $surveyInfo['questionDescription'.$qNumber] = substr($resultSurvey[1][1][$qNumber-1]['?questionDescription'],9,strlen($resultSurvey[1][1][$qNumber-1]['?questionDescription'])-11);
    80                         $surveyInfo['questionType'.$qNumber] = substr($resultSurvey[1][2][$qNumber-1]['?questionType'],9,strlen($resultSurvey[1][2][$qNumber-1]['?questionType'])-11);
    81                                                
    82                         $resultAnswers = $this->surveyRDFReader->readSurveyAnswers($surveyInfo['questionID'.$qNumber]);
    83                                                
    84                         if ($resultAnswers != null)
    85                         {
    86                                 for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++)
    87                                 {
    88                                         $surveyInfo['q'.$qNumber.'ans'.$aNumber] = substr($resultAnswers[$aNumber-1]['?answerTitle'],9,strlen($resultAnswers[$aNumber-1]['?answerTitle'])-11);
    89                                 }
    90                         }
    91                 }
    92                
    93                 return $surveyInfo;
    94         }
     27    public function setSurveyInfo($survey)
     28    {
     29        $sTitle = $survey['surveyTitle'];
     30        $sDescription = $survey['surveyDescription'];
    9531
    96         public function getExistingSurveys()
    97         {
    98                 $surveyIDs = array();
    99                 $surveys = array();
    100        
    101                 if($handle = opendir('data/surveys/'))
    102                 {
    103                         while (false !== ($file = readdir($handle))) {
    104                                 if(strstr($file, 'survey_'))
    105                                         $surveyIDs[] = substr($file,7,strlen($file)-11);
    106                         }
    107                 }
    108                
    109                 foreach($surveyIDs as $surveyID)
    110                 {
    111                         $surveyTitle = $this->surveyRDFReader->getSurveyTitleByID($surveyID);
    112                         $surveys[$surveyID] = substr($surveyTitle[0]['?title'],9,strlen($surveyTitle[0]['?title'])-11);
    113                 }
    114                
    115                 return $surveys;
    116         }
    117        
     32        $this->surveyRDFWriter->createSurvey($sTitle,$sDescription);
     33
     34        $sUserID = "Creator";
     35
     36        $this->surveyRDFWriter->setUserData($sUserID);
     37
     38        $qNumber = 1;
     39        while (isset($survey['questionTitle'.$qNumber]))
     40        {
     41            $qTitle = $survey['questionTitle'.$qNumber];
     42            $qDescription = $survey['questionDescription'.$qNumber];
     43            $qType = $survey['questionType'.$qNumber];
     44            if (isset($survey['questionID'.$qNumber]))
     45                $qID = $survey['questionID'.$qNumber];
     46            else
     47                $qID = md5( uniqid(rand(), true) );
     48
     49            $qAnswers = array();
     50            $aNumber = 1;
     51            while (isset($survey['q'.$qNumber.'ans'.$aNumber]))
     52            {
     53                $aArray = array();
     54                $aArray['Title'] = 'q'.$qNumber.'ans'.$aNumber;
     55                $aArray['Description'] = $survey['q'.$qNumber.'ans'.$aNumber];
     56                $qAnswers[] = $aArray;
     57
     58                $aNumber++;
     59            }
     60
     61            $this->surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qID,$qAnswers);
     62
     63            $qNumber++;
     64        }
     65
     66        $this->surveyRDFWriter->saveSurvey();
     67    }
     68
     69    public function getSurveyInfo()
     70    {
     71        $surveyInfo = array();
     72
     73        $resultSurvey = $this->surveyRDFReader->getSurveyInfo();
     74
     75        $surveyInfo['surveyID'] = substr($resultSurvey[0][0]['?uid'],9,strlen($resultSurvey[0][0]['?uid'])-11);
     76        $surveyInfo['surveyTitle'] = substr($resultSurvey[0][0]['?title'],9,strlen($resultSurvey[0][0]['?title'])-11);
     77        $surveyInfo['surveyDescription'] = substr($resultSurvey[0][0]['?description'],9,strlen($resultSurvey[0][0]['?description'])-11);
     78        $surveyInfo['surveyCreator'] = substr($resultSurvey[0][0]['?creator'],9,strlen($resultSurvey[0][0]['?creator'])-11);
     79
     80        for($qNumber = 1;$qNumber<=sizeof($resultSurvey[1][0]);$qNumber++)
     81        {
     82            $surveyInfo['questionID'.$qNumber] = substr($resultSurvey[1][3][$qNumber-1]['?questionID'],9,strlen($resultSurvey[1][3][$qNumber-1]['?questionID'])-11);
     83            $surveyInfo['questionTitle'.$qNumber] = substr($resultSurvey[1][0][$qNumber-1]['?questionTitle'],9,strlen($resultSurvey[1][0][$qNumber-1]['?questionTitle'])-11);
     84            $surveyInfo['questionDescription'.$qNumber] = substr($resultSurvey[1][1][$qNumber-1]['?questionDescription'],9,strlen($resultSurvey[1][1][$qNumber-1]['?questionDescription'])-11);
     85            $surveyInfo['questionType'.$qNumber] = substr($resultSurvey[1][2][$qNumber-1]['?questionType'],9,strlen($resultSurvey[1][2][$qNumber-1]['?questionType'])-11);
     86
     87            $resultAnswers = $this->surveyRDFReader->readSurveyAnswers($surveyInfo['questionID'.$qNumber]);
     88
     89            if ($resultAnswers != null)
     90            {
     91                for($aNumber = 1;$aNumber<=sizeof($resultAnswers);$aNumber++)
     92                {
     93                    $surveyInfo['q'.$qNumber.'ans'.$aNumber] = substr($resultAnswers[$aNumber-1]['?answerDescription'],9,strlen($resultAnswers[$aNumber-1]['?answerDescription'])-11);
     94                }
     95            }
     96        }
     97
     98        return $surveyInfo;
     99    }
     100
     101    public function getExistingSurveys()
     102    {
     103        $surveyIDs = array();
     104        $surveys = array();
     105
     106        if($handle = opendir('data/surveys/'))
     107        {
     108            while (false !== ($file = readdir($handle))) {
     109                if(strstr($file, 'survey_') && strstr($file, '.rdf'))
     110                    $surveyIDs[] = substr($file,7,strlen($file)-11);
     111            }
     112        }
     113
     114        foreach($surveyIDs as $surveyID)
     115        {
     116            $surveyTitle = $this->surveyRDFReader->getSurveyTitleByID($surveyID);
     117            $surveys[$surveyID] = substr($surveyTitle[0]['?title'],9,strlen($surveyTitle[0]['?title'])-11);
     118        }
     119
     120        return $surveys;
     121    }
     122
    118123}
    119124?>
Note: See TracChangeset for help on using the changeset viewer.