2 /************************************************************************/
4 /************************************************************************/
5 /* Copyright (c) 2002-2008 by Greg Gay, Joel Kronenberg & Heidi Hazelton*/
6 /* Adaptive Technology Resource Centre / University of Toronto */
9 /* This program is free software. You can redistribute it and/or */
10 /* modify it under the terms of the GNU General Public License */
11 /* as published by the Free Software Foundation. */
12 /************************************************************************/
16 * RemoteLanguageManager
17 * Class for managing available languages as Language Objects.
19 * @author Joel Kronenberg
20 * @see Language.class.php
24 require_once(AT_INCLUDE_PATH.'classes/Language/LanguageParser.class.php');
25 require_once(AT_INCLUDE_PATH.'classes/Language/LanguagesParser.class.php');
27 class RemoteLanguageManager extends LanguageManager {
29 function RemoteLanguageManager() {
30 $version = str_replace('.','_',VERSION);
31 $language_xml = @file_get_contents('http://update.atutor.ca/languages/'.$version.'/languages.xml');
32 if ($language_xml === FALSE) {
34 $language_xml = @file_get_contents('http://update.atutor.ca/languages/1_5_3/languages.xml');
36 if ($language_xml !== FALSE) {
38 $languageParser = new LanguagesParser();
39 $languageParser->parse($language_xml);
41 $this->numLanguages = $languageParser->getNumLanguages();
43 for ($i = 0; $i < $this->numLanguages; $i++) {
44 $thisLanguage = new Language($languageParser->getLanguage($i));
46 $this->availableLanguages[$thisLanguage->getCode()][$thisLanguage->getCharacterSet()] =& $thisLanguage;
49 $this->numLanguages = 0;
50 $this->availableLanguages = array();
55 function fetchLanguage($language_code, $filename) {
56 $version = str_replace('.','_',VERSION);
58 $language_pack = @file_get_contents('http://update.atutor.ca/languages/' . $version . '/atutor_' . $version . '_' . $language_code . '.zip');
61 $fp = fopen($filename, 'wb+');
62 fwrite($fp, $language_pack, strlen($language_pack));
69 function import($language_code) {
70 $filename = tempnam(AT_CONTENT_DIR . 'import', $language_code);
71 if ($this->fetchLanguage($language_code, $filename)) {
72 parent::import($filename);