/** * Test for the number of maximum language that can be created. * * @see \eZ\Publish\API\Repository\LanguageService::createLanguage() * * @depends eZ\Publish\API\Repository\Tests\LanguageServiceTest::testNewLanguageCreateStruct * * @expectedException \RuntimeException * @expectedExceptionMessage Maximum number of languages reached! */ public function testCreateMaximumLanguageLimit() { $languageCreate = $this->languageService->newLanguageCreateStruct(); $languageCreate->enabled = true; $languageCreate->name = "Bad Language"; $languageCreate->languageCode = "lan-ER"; $this->languageService->createLanguage($languageCreate); }
/** * @inheritdoc */ public function visit(TreeNodeInterface $node, &$data) { $languages = $this->languageService->loadLanguages(); $existingLanguageCodes = []; foreach ($languages as $language) { $existingLanguageCodes[] = $language->languageCode; } // If language already exists, skip it if (in_array($data['language_code'], $existingLanguageCodes)) { return; } $struct = $this->languageService->newLanguageCreateStruct(); $this->fillValueObject($struct, $data); $this->languageService->createLanguage($struct); }
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); }
/** * Creates the a new Language in the content repository * * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException If user does not have access to content translations * @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException if the languageCode already exists * * @param \eZ\Publish\API\Repository\Values\Content\LanguageCreateStruct $languageCreateStruct * * @return \eZ\Publish\API\Repository\Values\Content\Language */ public function createLanguage(LanguageCreateStruct $languageCreateStruct) { $returnValue = $this->service->createLanguage($languageCreateStruct); $this->signalDispatcher->emit(new CreateLanguageSignal(array('languageId' => $returnValue->id))); return $returnValue; }