public function processUpdate(FormActionEvent $event) { /** @var \EzSystems\RepositoryForms\Data\Language\LanguageUpdateData|\EzSystems\RepositoryForms\Data\Language\LanguageCreateData $languageData */ $languageData = $event->getData(); if ($languageData->isNew()) { $language = $this->languageService->createLanguage($languageData); } else { // As there is no update struct for language service, we first update name if it has changed $language = $languageData->language; if ($languageData->name !== $language->name) { $language = $this->languageService->updateLanguageName($language, $languageData->name); } // check if we should enable / disable language if ($languageData->enabled !== $language->enabled) { if ($languageData->enabled) { $language = $this->languageService->enableLanguage($language); } else { $language = $this->languageService->disableLanguage($language); } } } $languageData->setLanguage($language); }
/** * Changes the name of the language in the content repository * * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If user does not have access to content translations * * @param \eZ\Publish\API\Repository\Values\Content\Language $language * @param string $newName * * @return \eZ\Publish\API\Repository\Values\Content\Language */ public function updateLanguageName(Language $language, $newName) { $returnValue = $this->service->updateLanguageName($language, $newName); $this->signalDispatcher->emit(new UpdateLanguageNameSignal(array('languageId' => $language->id, 'newName' => $newName))); return $returnValue; }