public function getConfig() { $languages = array(); foreach ($this->languageService->loadLanguages() as $language) { $languages[] = array('id' => $language->id, 'name' => $language->name, 'languageCode' => $language->languageCode, 'enabled' => $language->enabled); } return $languages; }
/** * 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); }
protected function getSelectionChoices() { $choices = []; foreach ($this->languageService->loadLanguages() as $language) { $choices[$language->languageCode] = $language->name; } return $choices; }
public function testProcessUpdate() { $existingLanguage = new Language(); $updatedLanguage = new Language(); $data = new LanguageUpdateData(['language' => $existingLanguage, 'name' => 'update']); $event = new FormActionEvent($this->getMock('\\Symfony\\Component\\Form\\FormInterface'), $data, 'foo'); $this->languageService->expects($this->once())->method('updateLanguageName')->with($existingLanguage, 'update')->willReturn($updatedLanguage); $this->languageService->expects($this->once())->method('enableLanguage')->with($existingLanguage)->willReturn($updatedLanguage); $this->processor->processUpdate($event); self::assertSame($updatedLanguage, $data->language); }
/** * @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); }
/** * Checks if the passed value is valid. * * @param LanguageCreateStruct $value The value that should be validated * @param Constraint|UniqueFieldDefinitionIdentifier $constraint The constraint for the validation * * @api */ public function validate($value, Constraint $constraint) { if (!$value instanceof LanguageCreateStruct) { return; } try { $language = $this->languageService->loadLanguage($value->languageCode); if ($language->id == $value->getId()) { return; } $this->context->buildViolation($constraint->message)->atPath('language_code')->setParameter('%language_code%', $value->languageCode)->addViolation(); } catch (NotFoundException $e) { // Do nothing } }
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); }
/** * Displays the edit form and processes it once submitted. * * @param \Symfony\Component\HttpFoundation\Request $request * @param mixed $languageId * * @return \Symfony\Component\HttpFoundation\Response */ public function editAction(Request $request, $languageId = null) { $language = $languageId ? $this->languageService->loadLanguageById($languageId) : new Language(['languageCode' => '__new__' . md5(microtime(true)), 'name' => 'New language']); $languageData = (new LanguageMapper())->mapToFormData($language); $actionUrl = $this->generateUrl('admin_languageedit', ['languageId' => $languageId]); $form = $this->createForm(new LanguageType(), $languageData); $form->handleRequest($request); if ($form->isValid()) { $this->actionDispatcher->dispatchFormAction($form, $languageData, $form->getClickedButton() ? $form->getClickedButton()->getName() : null); if ($response = $this->actionDispatcher->getResponse()) { return $response; } return $this->redirectAfterFormPost($actionUrl); } return $this->render('eZPlatformUIBundle:Language:edit.html.twig', ['form' => $form->createView(), 'actionUrl' => $actionUrl, 'language' => $languageData]); }
/** * Instantiates an object to be used for creating languages * * @return \eZ\Publish\API\Repository\Values\Content\LanguageCreateStruct */ public function newLanguageCreateStruct() { return $this->service->newLanguageCreateStruct(); }
/** * Returns the current language object * * @return array */ public function getDefaultLangCode() { return $this->languageService->getDefaultLanguageCode(); }