예제 #1
0
 /**
  * Installs the selected languages.
  */
 protected function installLanguage()
 {
     $this->initDB();
     foreach (self::$selectedLanguages as $language) {
         // get language.xml file name
         $filename = TMP_DIR . 'install/lang/' . $language . '.xml';
         // check the file
         if (!file_exists($filename)) {
             throw new SystemException("unable to find language file '" . $filename . "'");
         }
         // open the file
         $xml = new XML();
         $xml->load($filename);
         // import xml
         LanguageEditor::importFromXML($xml, 0);
     }
     // set default language
     $language = LanguageFactory::getInstance()->getLanguageByCode(in_array(self::$selectedLanguageCode, self::$selectedLanguages) ? self::$selectedLanguageCode : self::$selectedLanguages[0]);
     LanguageFactory::getInstance()->makeDefault($language->languageID);
     // rebuild language cache
     LanguageCacheBuilder::getInstance()->reset();
     // go to next step
     $this->gotoNextStep('createUser');
 }
예제 #2
0
 /**
  * @see	\wcf\form\IForm::validate()
  */
 public function validate()
 {
     parent::validate();
     // check file
     if (!file_exists($this->filename)) {
         throw new UserInputException('languageFile');
     }
     // try to import
     try {
         // open xml document
         $xml = new XML();
         $xml->load($this->filename);
         // import xml document
         $this->language = LanguageEditor::importFromXML($xml, -1);
     } catch (SystemException $e) {
         throw new UserInputException($this->importField, $e->getMessage());
     }
 }
예제 #3
0
 /**
  * Installs the selected languages.
  */
 protected function installLanguage()
 {
     $this->initDB();
     foreach (self::$selectedLanguages as $language) {
         // get language.xml file name
         $filename = TMP_DIR . 'install/lang/' . $language . '.xml';
         // check the file
         if (!file_exists($filename)) {
             throw new SystemException("unable to find language file '" . $filename . "'");
         }
         // open the file
         $xml = new XML();
         $xml->load($filename);
         // import xml
         LanguageEditor::importFromXML($xml, 0);
     }
     // set default language
     $language = LanguageFactory::getInstance()->getLanguageByCode(in_array(self::$selectedLanguageCode, self::$selectedLanguages) ? self::$selectedLanguageCode : self::$selectedLanguages[0]);
     LanguageFactory::getInstance()->makeDefault($language->languageID);
     // assign all languages to package id 0
     $sql = "SELECT\tlanguageID\n\t\t\tFROM\twcf" . WCF_N . "_language";
     $statement = self::getDB()->prepareStatement($sql);
     $statement->execute();
     $languages = array();
     while ($row = $statement->fetchArray()) {
         $languages[] = $row['languageID'];
     }
     if (count($languages) > 0) {
         $sql = "INSERT INTO\twcf" . WCF_N . "_language_to_package\n\t\t\t\t\t\t(languageID)\n\t\t\t\tVALUES\t\t(?)";
         $statement = self::getDB()->prepareStatement($sql);
         foreach ($languages as $languageID) {
             $statement->execute(array($languageID));
         }
     }
     // rebuild language cache
     CacheHandler::getInstance()->clearResource('languages');
     // go to next step
     $this->gotoNextStep('createUser');
 }
예제 #4
0
	/**
	 * @see	wcf\form\Form::validate()
	 */
	public function validate() {
		parent::validate();
		
		if ($this->mode == 'copy') {
			// language code
			if (empty($this->languageCode)) {
				throw new UserInputException('languageCode');
			}
			
			// 
			if (LanguageFactory::getInstance()->getLanguageByCode($this->languageCode)) {
				throw new UserInputException('languageCode', 'notUnique');
			}
			
			// source language id
			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');
			}
		}
		else {
			// check file
			if (!file_exists($this->filename)) {
				throw new UserInputException('languageFile');
			}
			
			// try to import
			try {
				// open xml document
				$xml = new XML();
				$xml->load($this->filename);
				
				// import xml document
				$this->language = LanguageEditor::importFromXML($xml, PACKAGE_ID);
			}
			catch (SystemException $e) {
				throw new UserInputException($this->importField, $e->getMessage());
			}
		}
	}