示例#1
0
 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();
 }