public $filename = '';
/**
- * import field
- * @var string
+ * language object
+ * @var Language
*/
- public $importField = 'languageFile';
+ public $language;
/**
- * language object
- * @var \wcf\data\language\Language
+ * list of available languages
+ * @var Language[]
*/
- public $language = null;
+ public $languages = [];
/**
- * import language file
- * @var string
+ * source language object
+ * @var Language
*/
- public $languageFile = '';
+ public $sourceLanguage;
/**
- * list of available languages
- * @var Language[]
+ * source language id
+ * @var integer
*/
- public $languages = [];
+ public $sourceLanguageID = 0;
/**
* @inheritDoc
public function readFormParameters() {
parent::readFormParameters();
- // import
- if (isset($_POST['languageFile']) && !empty($_POST['languageFile'])) {
- $this->languageFile = $_POST['languageFile'];
- $this->filename = $_POST['languageFile'];
- }
if (isset($_FILES['languageUpload']) && !empty($_FILES['languageUpload']['tmp_name'])) {
- $this->importField = 'languageUpload';
$this->filename = $_FILES['languageUpload']['tmp_name'];
}
+ if (isset($_POST['sourceLanguageID'])) $this->sourceLanguageID = intval($_POST['sourceLanguageID']);
}
/**
// check file
if (!file_exists($this->filename)) {
- throw new UserInputException('languageFile');
+ throw new UserInputException('languageUpload');
+ }
+
+ if (empty($this->sourceLanguageID)) {
+ throw new UserInputException('sourceLanguageID');
+ }
+
+ // get language
+ $this->sourceLanguage = LanguageFactory::getInstance()->getLanguage($this->sourceLanguageID);
+ if (!$this->sourceLanguage->languageID) {
+ throw new UserInputException('sourceLanguageID');
}
// try to import
$xml->load($this->filename);
// import xml document
- $this->language = LanguageEditor::importFromXML($xml, -1);
+ $this->language = LanguageEditor::importFromXML($xml, -1, $this->sourceLanguage);
}
catch (SystemException $e) {
- throw new UserInputException($this->importField, $e->getMessage());
+ throw new UserInputException('languageUpload', $e->getMessage());
}
}
WCF::getTPL()->assign('success', true);
}
+ /**
+ * @inheritDoc
+ */
+ public function readData() {
+ parent::readData();
+
+ $this->languages = LanguageFactory::getInstance()->getLanguages();
+ }
+
/**
* @inheritDoc
*/
WCF::getTPL()->assign([
'languages' => $this->languages,
- 'languageFile' => $this->languageFile
+ 'sourceLanguageID' => $this->sourceLanguageID
]);
}