remove old readme
[atutor.git] / docs / mods / _core / languages / classes / RemoteLanguageManager.class.php
1 <?php
2 /************************************************************************/
3 /* ATutor                                                                                                                               */
4 /************************************************************************/
5 /* Copyright (c) 2002-2010                                              */
6 /* Inclusive Design Institute                                           */
7 /* http://atutor.ca                                                     */
8 /* This program is free software. You can redistribute it and/or        */
9 /* modify it under the terms of the GNU General Public License          */
10 /* as published by the Free Software Foundation.                        */
11 /************************************************************************/
12 // $Id$
13
14 /**
15 * RemoteLanguageManager
16 * Class for managing available languages as Language Objects.
17 * @access       public
18 * @author       Joel Kronenberg
19 * @see          Language.class.php
20 * @package      Language
21 */
22
23 require_once(AT_INCLUDE_PATH.'../mods/_core/languages/classes/LanguageParser.class.php');
24 require_once(AT_INCLUDE_PATH.'../mods/_core/languages/classes/LanguagesParser.class.php');
25
26 class RemoteLanguageManager extends LanguageManager {
27
28         function RemoteLanguageManager() {
29                 $version = str_replace('.','_',VERSION);
30                 $language_xml = @file_get_contents('http://update.atutor.ca/languages/'.$version.'/languages.xml');
31                 if ($language_xml === FALSE) {
32                         // fix for bug #2896
33                         $language_xml = @file_get_contents('http://update.atutor.ca/languages/1_5_3/languages.xml');
34                 }
35                 if ($language_xml !== FALSE) {
36
37                         $languageParser = new LanguagesParser();
38                         $languageParser->parse($language_xml);
39
40                         $this->numLanguages = $languageParser->getNumLanguages();
41
42                         for ($i = 0; $i < $this->numLanguages; $i++) {
43                                 $thisLanguage = new Language($languageParser->getLanguage($i));
44
45                                 $this->availableLanguages[$thisLanguage->getCode()][$thisLanguage->getCharacterSet()] = $thisLanguage;
46                         }
47                 } else {
48                         $this->numLanguages = 0;
49                         $this->availableLanguages = array();
50                 }
51         }
52
53         // public
54         function fetchLanguage($language_code, $filename) {
55                 $version = str_replace('.','_',VERSION);
56
57                 $language_pack = @file_get_contents('http://update.atutor.ca/languages/' . $version . '/atutor_' . $version . '_' . $language_code . '.zip');
58
59                 if ($language_pack) {
60                         $fp = fopen($filename, 'wb+');
61                         fwrite($fp, $language_pack, strlen($language_pack));
62
63                         return TRUE;
64                 }
65                 return FALSE;
66         }
67
68         function import($language_code) {
69                 $filename = tempnam(AT_CONTENT_DIR . 'import', $language_code);
70                 if ($this->fetchLanguage($language_code, $filename)) {
71                         parent::import($filename);
72                 }
73         }
74 }
75
76 ?>