|
|
@ -14,11 +14,11 @@ require_once __DIR__.'/../inc/global.inc.php'; |
|
|
|
api_protect_admin_script(); |
|
|
|
api_protect_admin_script(); |
|
|
|
|
|
|
|
|
|
|
|
$em = Database::getManager(); |
|
|
|
$em = Database::getManager(); |
|
|
|
|
|
|
|
$request = Container::getRequest(); |
|
|
|
$extraFieldRepo = Container::getExtraFieldRepository(); |
|
|
|
$extraFieldRepo = Container::getExtraFieldRepository(); |
|
|
|
$languageRepo = Container::getLanguageRepository(); |
|
|
|
$languageRepo = Container::getLanguageRepository(); |
|
|
|
|
|
|
|
|
|
|
|
$fieldId = (int) ($_REQUEST['id'] ?? 0); |
|
|
|
$fieldId = $request->query->getInt('extra_field'); |
|
|
|
|
|
|
|
|
|
|
|
/** @var ExtraField|null $extraField */ |
|
|
|
/** @var ExtraField|null $extraField */ |
|
|
|
$extraField = $extraFieldRepo->find($fieldId); |
|
|
|
$extraField = $extraFieldRepo->find($fieldId); |
|
|
@ -27,26 +27,32 @@ if (null === $extraField) { |
|
|
|
api_not_allowed(true); |
|
|
|
api_not_allowed(true); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$currentUrl = api_get_self().'?id='.$fieldId; |
|
|
|
$currentUrl = api_get_self().'?extra_field='.$fieldId; |
|
|
|
$qb = $languageRepo->getAllAvailable(); |
|
|
|
$languages = $languageRepo->getAllAvailable(true)->getQuery()->getResult(); |
|
|
|
$languages = $qb->getQuery()->getResult(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$form = new FormValidator('translate', 'POST', $currentUrl); |
|
|
|
$form = new FormValidator('translate', 'POST', $currentUrl); |
|
|
|
$form->addHidden('id', $fieldId); |
|
|
|
$form->addHidden('id', $fieldId); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$extraField->setLocale(Container::getParameter('locale')); |
|
|
|
|
|
|
|
$em->refresh($extraField); |
|
|
|
|
|
|
|
|
|
|
|
$form->addHeader($extraField->getDisplayText()); |
|
|
|
$form->addHeader($extraField->getDisplayText()); |
|
|
|
|
|
|
|
|
|
|
|
$repository = $em->getRepository(Translation::class); |
|
|
|
$translationsRepo = $em->getRepository(Translation::class); |
|
|
|
$translations = $repository->findTranslations($extraField); |
|
|
|
$translations = $translationsRepo->findTranslations($extraField); |
|
|
|
|
|
|
|
|
|
|
|
$defaults = []; |
|
|
|
$defaults = []; |
|
|
|
|
|
|
|
|
|
|
|
/** @var Language $language */ |
|
|
|
/** @var Language $language */ |
|
|
|
foreach ($languages as $language) { |
|
|
|
foreach ($languages as $language) { |
|
|
|
$iso = $language->getIsocode(); |
|
|
|
$iso = $language->getIsocode(); |
|
|
|
$variable = 'variable['.$iso.']'; |
|
|
|
$form->addText( |
|
|
|
$form->addText($variable, $language->getOriginalName().' ('.$iso.')', false); |
|
|
|
'language['.$language->getId().']', |
|
|
|
if (isset($translations[$iso]) && $translations[$iso]['displayText']) { |
|
|
|
$language->getOriginalName(), |
|
|
|
$defaults['variable['.$iso.']'] = $translations[$iso]['displayText']; |
|
|
|
false |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
if (!empty($translations[$iso]['displayText'])) { |
|
|
|
|
|
|
|
$defaults['language['.$language->getId().']'] = $translations[$iso]['displayText']; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -70,23 +76,20 @@ $interbreadcrumb[] = [ |
|
|
|
if ($form->validate()) { |
|
|
|
if ($form->validate()) { |
|
|
|
$values = $form->getSubmitValues(); |
|
|
|
$values = $form->getSubmitValues(); |
|
|
|
foreach ($languages as $language) { |
|
|
|
foreach ($languages as $language) { |
|
|
|
if (!isset($values['variable'][$language->getIsocode()])) { |
|
|
|
if (empty($values['language'][$language->getId()])) { |
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
$translation = $values['variable'][$language->getIsocode()]; |
|
|
|
|
|
|
|
if (empty($translation)) { |
|
|
|
|
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$extraField = $extraFieldRepo->find($fieldId); |
|
|
|
$translationsRepo->translate( |
|
|
|
$extraField |
|
|
|
$extraField, |
|
|
|
->setTranslatableLocale($language->getIsocode()) |
|
|
|
'displayText', |
|
|
|
->setDisplayText($translation) |
|
|
|
$language->getIsocode(), |
|
|
|
; |
|
|
|
$values['language'][$language->getId()] |
|
|
|
$em->persist($extraField); |
|
|
|
); |
|
|
|
$em->flush(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$em->flush(); |
|
|
|
|
|
|
|
|
|
|
|
Display::addFlash(Display::return_message(get_lang('Updated'))); |
|
|
|
Display::addFlash(Display::return_message(get_lang('Updated'))); |
|
|
|
api_location($currentUrl); |
|
|
|
api_location($currentUrl); |
|
|
|
} |
|
|
|
} |
|
|
|