/** * @see \wcf\system\importer\IImporter::import() */ public function import($oldID, array $data, array $additionalData = array()) { // get user id $data['userID'] = ImportHandler::getInstance()->getNewID('com.woltlab.wcf.user', $data['userID']); // get news id if (is_numeric($oldID)) { $news = new News($oldID); if (!$news->newsID) { $data['newsID'] = $oldID; } } // get news categories $categoryIDs = array(); if (!empty($additionalData['categories'])) { foreach ($additionalData['categories'] as $oldCategoryID) { $newCategoryID = ImportHandler::getInstance()->getNewID('de.voolia.news.category', $oldCategoryID); if ($newCategoryID) { $categoryIDs[] = $newCategoryID; } } } // work-around for unknown username if (empty($data['username'])) { $user = new User($data['userID']); $data['username'] = $user->username; } // get language by languageCode if (!empty($additionalData['languageCode'])) { if (($language = LanguageFactory::getInstance()->getLanguageByCode($additionalData['languageCode'])) !== null) { $data['languageID'] = $language->languageID; } } // create news $news = NewsEditor::create($data); $newsEditor = new NewsEditor($news); // save the tags from news entry if (!empty($additionalData['tags'])) { TagEngine::getInstance()->addObjectTags('de.voolia.news.entry', $news->newsID, $additionalData['tags'], $news->languageID ?: LanguageFactory::getInstance()->getDefaultLanguageID()); } // update news categories $newsEditor->updateCategoryIDs($categoryIDs); ImportHandler::getInstance()->saveNewID('de.voolia.news.entry', $oldID, $news->newsID); return $news->newsID; }