parent
e31f89a720
commit
e89c2f3f39
@ -0,0 +1,75 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
$cidReset = true; |
||||
|
||||
require_once '../inc/global.inc.php'; |
||||
|
||||
api_protect_admin_script(); |
||||
|
||||
$em = Database::getManager(); |
||||
|
||||
$extraFieldInfo = null; |
||||
$variableLanguage = null; |
||||
$originalName = null; |
||||
|
||||
if (isset($_GET['extra_field'])) { |
||||
$extraFieldInfo = ExtraField::getInfoById($_GET['extra_field'], false); |
||||
$variableLanguage = '$' . api_underscore_to_camel_case($extraFieldInfo['variable']); |
||||
$originalName = $extraFieldInfo['display_text']; |
||||
} elseif (isset($_GET['extra_field_option'])) { |
||||
$extraFieldOptionInfo = ExtraFieldOption::getInfoById($_GET['extra_field_option'], false); |
||||
$variableLanguage = '$' . api_underscore_to_camel_case($extraFieldOptionInfo['display_text']); |
||||
$originalName = $extraFieldOptionInfo['display_text']; |
||||
} |
||||
|
||||
if (empty($extraFieldInfo) || empty($variableLanguage) || empty($originalName)) { |
||||
api_not_allowed(true); |
||||
} |
||||
|
||||
$languageId = isset($_GET['language']) ? intval($_GET['language']) : 0; |
||||
|
||||
$languages = $em |
||||
->getRepository('ChamiloCoreBundle:Language') |
||||
->findAllPlatformSubLanguages(); |
||||
|
||||
$languagesOptions = [0 => get_lang('None')]; |
||||
|
||||
foreach ($languages as $language) { |
||||
$languagesOptions[$language->getId()] = $language->getOriginalName(); |
||||
} |
||||
|
||||
$translateUrl = api_get_path(WEB_CODE_PATH) . 'admin/sub_language_ajax.inc.php'; |
||||
|
||||
$form = new FormValidator('new_lang_variable', 'POST', $translateUrl); |
||||
$form->addHeader(get_lang('AddWordForTheSubLanguage')); |
||||
$form->addText('variable_language', get_lang('LanguageVariable'), false); |
||||
$form->addText('original_name', get_lang('OriginalName'), false); |
||||
$form->addSelect('language', get_lang('Language'), $languagesOptions); |
||||
|
||||
if ($languageId) { |
||||
$languageInfo = api_get_language_info($languageId); |
||||
|
||||
$form->addText('new_language', get_lang('SubLanguage')); |
||||
$form->addHidden('file_id', 0); |
||||
$form->addHidden('id', $languageInfo['parent_id']); |
||||
$form->addHidden('sub', $languageInfo['id']); |
||||
$form->addHidden('sub_language_id', $languageInfo['id']); |
||||
$form->addHidden('redirect', true); |
||||
$form->addButtonSave(get_lang('Save')); |
||||
} |
||||
|
||||
$form->setDefaults([ |
||||
'variable_language' => $variableLanguage, |
||||
'original_name' => $originalName, |
||||
'language' => $languageId |
||||
]); |
||||
$form->addRule('language', get_lang('Required'), 'required'); |
||||
$form->freeze(['variable_language', 'original_name']); |
||||
|
||||
$view = new Template(get_lang('AddWordForTheSubLanguage')); |
||||
$view->assign('form', $form->returnForm()); |
||||
$template = $view->get_template('extrafield/translate.tpl'); |
||||
$content = $view->fetch($template); |
||||
$view->assign('content', $content); |
||||
$view->display_one_col_template(); |
@ -0,0 +1,8 @@ |
||||
{{ form }} |
||||
<script> |
||||
$(document).on('ready', function () { |
||||
$('select[name="language"]').on('change', function () { |
||||
location.href += '&language=' + this.value; |
||||
}); |
||||
}); |
||||
</script> |
@ -0,0 +1,28 @@ |
||||
<?php |
||||
/* For licensing terms, see /license.txt */ |
||||
|
||||
namespace Chamilo\CoreBundle\Entity\Repository; |
||||
|
||||
use Doctrine\ORM\EntityRepository; |
||||
|
||||
class LanguageRepository extends EntityRepository |
||||
{ |
||||
|
||||
/** |
||||
* Get all the sub languages that are made available by the admin. |
||||
* @return array |
||||
*/ |
||||
public function findAllPlatformSubLanguages() |
||||
{ |
||||
$qb = $this->createQueryBuilder('l'); |
||||
$qb->select('l') |
||||
->where( |
||||
$qb->expr()->eq('l.available', true) |
||||
) |
||||
->andWhere( |
||||
$qb->expr()->isNotNull('l.parent') |
||||
); |
||||
|
||||
return $qb->getQuery()->getResult(); |
||||
} |
||||
} |
Loading…
Reference in new issue