|
| 1 | +<?php |
| 2 | +/* For licensing terms, see /license.txt */ |
| 3 | + |
| 4 | +use \Chamilo\CoreBundle\Entity\ExtraField; |
| 5 | +use Chamilo\CoreBundle\Entity\Skill; |
| 6 | +use Chamilo\CoreBundle\Entity\Language; |
| 7 | + |
| 8 | +$cidReset = true; |
| 9 | + |
| 10 | +require_once __DIR__.'/../inc/global.inc.php'; |
| 11 | + |
| 12 | +api_protect_admin_script(); |
| 13 | + |
| 14 | +$em = Database::getManager(); |
| 15 | + |
| 16 | +$skill = null; |
| 17 | +$extraFieldOption = null; |
| 18 | +$variableLanguage = null; |
| 19 | +$originalName = null; |
| 20 | +$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'name'; |
| 21 | + |
| 22 | +if (isset($_GET['skill'])) { |
| 23 | + /** @var Skill $skill */ |
| 24 | + $skill = $em->find('ChamiloCoreBundle:Skill', intval($_GET['skill'])); |
| 25 | + |
| 26 | + if ($action === 'name') { |
| 27 | + $variableLanguage = '$Skill'.api_underscore_to_camel_case( |
| 28 | + str_replace(' ', '_', $skill->getName(false)) |
| 29 | + ); |
| 30 | + $originalName = $skill->getName(false); |
| 31 | + } elseif ($action === 'code') { |
| 32 | + $variableLanguage = '$SkillCode'.api_underscore_to_camel_case( |
| 33 | + str_replace(' ', '_', $skill->getShortCode(false)) |
| 34 | + ); |
| 35 | + $originalName = $skill->getShortCode(false); |
| 36 | + } |
| 37 | +} |
| 38 | + |
| 39 | +if (!$skill || empty($variableLanguage)) { |
| 40 | + api_not_allowed(true); |
| 41 | +} |
| 42 | + |
| 43 | +if (empty($originalName)) { |
| 44 | + Display::addFlash( |
| 45 | + Display::return_message(get_lang('CanNotTranslate'), 'error') |
| 46 | + ); |
| 47 | + header('Location: '.api_get_path(WEB_CODE_PATH).'admin/skill_edit.php?id='.$skill->getId()); |
| 48 | + exit; |
| 49 | +} |
| 50 | + |
| 51 | +$languageId = isset($_GET['sub_language']) ? intval($_GET['sub_language']) : 0; |
| 52 | + |
| 53 | +$languages = $em |
| 54 | + ->getRepository('ChamiloCoreBundle:Language') |
| 55 | + ->findAllPlatformSubLanguages(); |
| 56 | + |
| 57 | +$languagesOptions = [0 => get_lang('None')]; |
| 58 | + |
| 59 | +/** @var Language $language */ |
| 60 | +foreach ($languages as $language) { |
| 61 | + $languagesOptions[$language->getId()] = $language->getOriginalName(); |
| 62 | +} |
| 63 | + |
| 64 | +$translateUrl = api_get_path(WEB_CODE_PATH).'admin/sub_language_ajax.inc.php?skill='.$skill->getId(); |
| 65 | + |
| 66 | +$form = new FormValidator('new_lang_variable', 'POST', $translateUrl); |
| 67 | +$form->addHeader(get_lang('AddWordForTheSubLanguage')); |
| 68 | +$form->addText('variable_language', get_lang('LanguageVariable'), false); |
| 69 | +$form->addText('original_name', get_lang('OriginalName'), false); |
| 70 | +$form->addSelect('sub_language', [get_lang('SubLanguage'), get_lang('OnlyActiveSubLanguagesAreListed')], $languagesOptions); |
| 71 | + |
| 72 | +if ($languageId) { |
| 73 | + $languageInfo = api_get_language_info($languageId); |
| 74 | + |
| 75 | + $form->addText('new_language', [get_lang('Translation'), get_lang('IfThisTranslationExistsThisWillReplaceTheTerm')]); |
| 76 | + $form->addHidden('file_id', 0); |
| 77 | + $form->addHidden('id', $languageInfo['parent_id']); |
| 78 | + $form->addHidden('sub', $languageInfo['id']); |
| 79 | + $form->addHidden('sub_language_id', $languageInfo['id']); |
| 80 | + $form->addHidden('redirect', true); |
| 81 | + $form->addButtonSave(get_lang('Save')); |
| 82 | +} |
| 83 | + |
| 84 | +$form->setDefaults([ |
| 85 | + 'variable_language' => $variableLanguage, |
| 86 | + 'original_name' => $originalName, |
| 87 | + 'sub_language' => $languageId, |
| 88 | + 'new_language' => $action === 'code' ? $skill->getShortCode() : $skill->getName() |
| 89 | +]); |
| 90 | +$form->addRule('sub_language', get_lang('Required'), 'required'); |
| 91 | +$form->freeze(['variable_language', 'original_name']); |
| 92 | + |
| 93 | +$interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('PlatformAdmin')]; |
| 94 | +$interbreadcrumb[] = ['url' => 'skill_list.php', 'name' => get_lang('ManageSkills')]; |
| 95 | + |
| 96 | +$view = new Template(get_lang('AddWordForTheSubLanguage')); |
| 97 | +$view->assign('form', $form->returnForm()); |
| 98 | +$template = $view->get_template('extrafield/translate.tpl'); |
| 99 | +$content = $view->fetch($template); |
| 100 | +$view->assign('content', $content); |
| 101 | +$view->display_one_col_template(); |
0 commit comments