public static function getStudyChunk($studyName) { //Provide complete data for a single study: $sId = DataProvider::getStudyId($studyName); //The representation that will be returned: return array('study' => DataProvider::getStudy($studyName), 'families' => DataProvider::getFamilies($sId), 'regions' => DataProvider::getRegions($studyName), 'regionLanguages' => DataProvider::getRegionLanguages($studyName), 'languages' => DataProvider::getLanguages($studyName), 'words' => DataProvider::getWords($studyName), 'meaningGroupMembers' => DataProvider::getMeaningGroupMembers($sId), 'transcriptions' => DataProvider::getTranscriptions($studyName), 'defaults' => DataProvider::getDefaults($sId)); }
//Making sure necessary GET parameters exist if (!array_key_exists('study', $_GET)) { die('Missing GET parameter: study'); } if (!array_key_exists('languages', $_GET)) { die('Missing GET parameter: languages'); } if (!array_key_exists('words', $_GET)) { die('Missing GET parameter: words'); } //Languages to work with: $languages = array(); foreach (explode(',', $_GET['languages']) as $lIx) { $languages[$lIx] = true; } foreach (DataProvider::getLanguages($_GET['study']) as $l) { $lIx = $l['LanguageIx']; if (array_key_exists($lIx, $languages)) { $languages[$lIx] = $l; } } //Words to work with: $words = array(); foreach (explode(',', $_GET['words']) as $wIx) { $words[$wIx] = true; } foreach (DataProvider::getWords($_GET['study']) as $w) { $wIx = $w['IxElicitation'] . $w['IxMorphologicalInstance']; if (array_key_exists($wIx, $words)) { $words[$wIx] = $w; }