cfg['dir'] . "/www/files_dir/" . $main->cfg['usr'] . "/xml/quiz.xml"; $xml = $main->xml->connect($file); $content =& $xml[0]['children'][0]; $ipod =& $xml[0]['children'][1]; $introduction =& $xml[0]['children'][2]; $questions = array( 'verbal' => array( 'count' => count($xml[0]['children'][3]['children']), 'items' =>& $xml[0]['children'][3]['children'], ), 'numerical' => array( 'count' => count($xml[0]['children'][4]['children']), 'items' =>& $xml[0]['children'][4]['children'], ), 'abstract' => array( 'count' => count($xml[0]['children'][5]['children']), 'items' =>& $xml[0]['children'][5]['children'], ), 'general' => array( 'count' => count($xml[0]['children'][6]['children']), 'items' =>& $xml[0]['children'][6]['children'], ), ); $results =& $xml[0]['children'][7]; $quiz = array(); if (!$request['step']) { $quiz['content'] = array( 'text' =>& $content, 'ipod' =>& $ipod ); $_SESSION['questions'] = array( ); } elseif ($request['step'] <= 10) { $type = "verbal"; } elseif ($request['step'] <= 17) { $type = "numerical"; } elseif ($request['step'] <= 24) { $type = "abstract"; } elseif ($request['step'] <= 29) { $type = "general"; } else { $quiz['content'] = array( 'text' =>& $content, 'ipod' =>& $ipod ); } if ( $request['step'] > 0 && $request['step'] <= 29 ) { $question = $this->get_question($type, $questions[$type]); $quiz['content'] = array( 'question' =>& $question ); } $main->core->debug->dump($quiz); return array( 'id' => $module_id, 'content' =>& $quiz ); } function get_question($type, $questions) { global $main, $_SESSION; do { $random_question = rand(1, $questions['count']); } while ($_SESSION['questions'][$type]['taken'][$random_question]); $_SESSION['questions'][$type]['taken'][$random_question] = array( ); return array( 'number' => $random_question, 'item' => $questions['items'][($random_question - 1)] ); } } ?>