Changeset 31 for Dev


Ignore:
Timestamp:
07/21/11 17:36:04 (14 years ago)
Author:
basvannuland
Message:

new classes for survey answers writing and reading
added idtags as part of info

Location:
Dev/trunk
Files:
3 added
4 edited

Legend:

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

    r28 r31  
    2525                $this->surveyRDFReader = new SurveyRDFReader($surveyUID);
    2626    }
    27                
    28         public function __destruct()
    29         {
    30                 echo "Destroyed";
    31         }
    3227       
    3328        public function setSurveyInfo($survey)
     
    4439                        $qDescription = $survey['questionDescription'.$qNumber];
    4540                        $qType = $survey['questionType'.$qNumber];
     41                        if (isset($survey['questionID'.$qNumber]))
     42                                $qID = $survey['questionID'.$qNumber];
     43                        else
     44                                $qID = md5( uniqid(rand(), true) );
    4645                       
    4746                        $qAnswers = array();
     
    5756                        }
    5857                       
    59                         $this->surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qAnswers);
     58                        $this->surveyRDFWriter->addQuestion($qTitle,$qDescription,$qType,$qID,$qAnswers);
    6059                       
    6160                        $qNumber++;
     
    7776                for($qNumber = 1;$qNumber<=sizeof($resultSurvey[1][0]);$qNumber++)
    7877                {
     78                        $surveyInfo['questionID'.$qNumber] = substr($resultSurvey[1][3][$qNumber-1]['?questionID'],9,strlen($resultSurvey[1][3][$qNumber-1]['?questionID'])-11);
    7979                        $surveyInfo['questionTitle'.$qNumber] = substr($resultSurvey[1][0][$qNumber-1]['?questionTitle'],9,strlen($resultSurvey[1][0][$qNumber-1]['?questionTitle'])-11);
    8080                        $surveyInfo['questionDescription'.$qNumber] = substr($resultSurvey[1][1][$qNumber-1]['?questionDescription'],9,strlen($resultSurvey[1][1][$qNumber-1]['?questionDescription'])-11);
    8181                        $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);
     82                                               
     83                        $resultAnswers = $this->surveyRDFReader->readSurveyAnswers($surveyInfo['questionID'.$qNumber]);
    8584                                               
    8685                        if ($resultAnswers != null)
     
    9291                        }
    9392                }
    94                                
     93               
    9594                return $surveyInfo;
    9695        }
    9796
     97        public function getExistingSurveys()
     98        {
     99                $surveyIDs = array();
     100                $surveys = array();
     101       
     102                if($handle = opendir('surveys/'))
     103                {
     104                        while (false !== ($file = readdir($handle))) {
     105                                if(strstr($file, 'survey_'))
     106                                        $surveyIDs[] = substr($file,0,strlen($file)-4);
     107                        }
     108                }
     109               
     110                foreach($surveyIDs as $surveyID)
     111                {
     112                        $surveyTitle = $this->surveyRDFReader->getSurveyTitleByID($surveyID);
     113                        $surveys[$surveyID] = substr($surveyTitle[0]['?title'],9,strlen($surveyTitle[0]['?title'])-11);
     114                }
     115               
     116                return $surveys;
     117        }
    98118}
    99119?>
  • Dev/trunk/classes/SurveyRDFReader.php

    r28 r31  
    148148                return $result;
    149149        }
     150       
     151        public function getSurveyTitleByID($surveyID)
     152        {
     153                echo $surveyID.'<br/>';
     154               
     155        // Create empty MemModel
     156                $factory = new ModelFactory();
     157                $tempmodel= $factory->getDefaultModel();
     158                $tempmodel->load('surveys/'.$surveyID.'.rdf');
     159               
     160                $querystring = '
     161                        PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
     162                        PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
     163                        SELECT  ?title
     164                        WHERE   
     165                        {
     166                                _survey         predicates:resource_type        resources:survey ;
     167                                                        predicates:title                        ?title 
     168                        }';
     169                       
     170                $result = $tempmodel->sparqlQuery($querystring);
     171                               
     172                return $result;
     173        }
    150174}
    151175
  • Dev/trunk/classes/SurveyRDFWriter.php

    r28 r31  
    4444        }
    4545       
    46         public function addQuestion($qTitle,$qDescription,$qType,$qAnswers)
     46        public function addQuestion($qTitle,$qDescription,$qType,$qID,$qAnswers)
    4747        {
    48                 $questionID = md5( uniqid(rand(), true) );
     48                $questionID = $qID;
    4949                $resourceQuestion = new Resource(QUESTION.'/'.$questionID);
    5050                               
  • Dev/trunk/rdfConstants.php

    r28 r31  
    66define('SURVEYTOOL_RESOURCES_NAMESPACE',SURVEYTOOL_NAMESPACE . 'resources/');
    77define('SURVEYTOOL_PREDICATES_NAMESPACE',SURVEYTOOL_NAMESPACE . 'predicates/');
    8 define('SURVEYTOOL_QTYPES_NAMESPACE',SURVEYTOOL_NAMESPACE . 'qtypes/');
    98
    109// Resource used for RDF triples
    1110define('SURVEY',SURVEYTOOL_RESOURCES_NAMESPACE . 'survey');
    12 define('PERSON',SURVEYTOOL_RESOURCES_NAMESPACE . 'person');
    1311define('QUESTION',SURVEYTOOL_RESOURCES_NAMESPACE . 'question');
    1412define('ANSWER',SURVEYTOOL_RESOURCES_NAMESPACE . 'answer');
    15 define('QUESTION_TYPE',SURVEYTOOL_RESOURCES_NAMESPACE . 'question_type');
     13define('USER',SURVEYTOOL_RESOURCES_NAMESPACE . 'user');
    1614
    1715// Predicates used for RDF triples
    1816define('UID',SURVEYTOOL_PREDICATES_NAMESPACE . 'uid');
    1917define('CREATOR',SURVEYTOOL_PREDICATES_NAMESPACE . 'creator');
     18define('NAME',SURVEYTOOL_PREDICATES_NAMESPACE . 'name');
    2019define('TITLE',SURVEYTOOL_PREDICATES_NAMESPACE . 'title');
    2120define('DESCRIPTION',SURVEYTOOL_PREDICATES_NAMESPACE . 'description');
     
    2726define('SCALE',SURVEYTOOL_PREDICATES_NAMESPACE . 'scale');
    2827define('ANSWERED',SURVEYTOOL_PREDICATES_NAMESPACE . 'answered');
    29 
    30 // Arry with types of survey questions
    31 $questionTypes = array(
    32     'SHORT_TEXT'=> SURVEYTOOL_QTYPES_NAMESPACE . 'short_text',
    33     'LONG_TEXT' => SURVEYTOOL_QTYPES_NAMESPACE . 'long_text'
    34 );
     28define('RESPONDENT',SURVEYTOOL_PREDICATES_NAMESPACE . 'respondent');
    3529
    3630?>
Note: See TracChangeset for help on using the changeset viewer.