1 | <?php |
||
2 | /* For licensing terms, see /license.txt */ |
||
3 | |||
4 | use Chamilo\CoreBundle\Component\Utils\ChamiloApi; |
||
5 | use Chamilo\CoreBundle\Entity\Language; |
||
6 | use Chamilo\CoreBundle\Entity\Skill; |
||
0 ignored issues
–
show
|
|||
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 = ChamiloApi::getLanguageVar( |
||
28 | $skill->getName(false), |
||
29 | 'Skill' |
||
30 | ); |
||
31 | $originalName = $skill->getName(false); |
||
32 | } elseif ($action === 'code') { |
||
33 | $variableLanguage = ChamiloApi::getLanguageVar( |
||
34 | $skill->getShortCode(false), |
||
35 | 'SkillCode' |
||
36 | ); |
||
37 | $originalName = $skill->getShortCode(false); |
||
38 | } |
||
39 | } |
||
40 | |||
41 | if (!$skill || empty($variableLanguage)) { |
||
42 | api_not_allowed(true); |
||
43 | } |
||
44 | |||
45 | if (empty($originalName)) { |
||
46 | Display::addFlash( |
||
47 | Display::return_message(get_lang('CanNotTranslate'), 'error') |
||
48 | ); |
||
49 | header('Location: '.api_get_path(WEB_CODE_PATH).'admin/skill_edit.php?id='.$skill->getId()); |
||
50 | exit; |
||
51 | } |
||
52 | |||
53 | $languageId = isset($_GET['sub_language']) ? intval($_GET['sub_language']) : 0; |
||
54 | |||
55 | $languages = $em |
||
56 | ->getRepository('ChamiloCoreBundle:Language') |
||
57 | ->findAllPlatformSubLanguages(); |
||
58 | |||
59 | $languagesOptions = [0 => get_lang('None')]; |
||
60 | |||
61 | /** @var Language $language */ |
||
62 | foreach ($languages as $language) { |
||
63 | $languagesOptions[$language->getId()] = $language->getOriginalName(); |
||
64 | } |
||
65 | |||
66 | $translateUrl = api_get_path(WEB_CODE_PATH).'admin/sub_language_ajax.inc.php?skill='.$skill->getId(); |
||
67 | |||
68 | $form = new FormValidator('new_lang_variable', 'POST', $translateUrl); |
||
69 | $form->addHeader(get_lang('AddWordForTheSubLanguage')); |
||
70 | $form->addText('variable_language', get_lang('LanguageVariable'), false); |
||
71 | $form->addText('original_name', get_lang('OriginalName'), false); |
||
72 | $form->addSelect( |
||
73 | 'sub_language', |
||
74 | [get_lang('SubLanguage'), get_lang('OnlyActiveSubLanguagesAreListed')], |
||
75 | $languagesOptions |
||
76 | ); |
||
77 | |||
78 | if ($languageId) { |
||
79 | $languageInfo = api_get_language_info($languageId); |
||
80 | $form->addText( |
||
81 | 'new_language', |
||
82 | [get_lang('Translation'), get_lang('IfThisTranslationExistsThisWillReplaceTheTerm')] |
||
83 | ); |
||
84 | $form->addHidden('file_id', 0); |
||
85 | $form->addHidden('id', $languageInfo['parent_id']); |
||
86 | $form->addHidden('sub', $languageInfo['id']); |
||
87 | $form->addHidden('sub_language_id', $languageInfo['id']); |
||
88 | $form->addHidden('redirect', true); |
||
89 | $form->addButtonSave(get_lang('Save')); |
||
90 | } |
||
91 | |||
92 | $form->setDefaults([ |
||
93 | 'variable_language' => '$'.$variableLanguage, |
||
94 | 'original_name' => $originalName, |
||
95 | 'sub_language' => $languageId, |
||
96 | 'new_language' => $action === 'code' ? $skill->getShortCode() : $skill->getName(), |
||
97 | ]); |
||
98 | $form->addRule('sub_language', get_lang('Required'), 'required'); |
||
99 | $form->freeze(['variable_language', 'original_name']); |
||
100 | |||
101 | $interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('PlatformAdmin')]; |
||
102 | $interbreadcrumb[] = ['url' => 'skill_list.php', 'name' => get_lang('ManageSkills')]; |
||
103 | |||
104 | $view = new Template(get_lang('AddWordForTheSubLanguage')); |
||
105 | $view->assign('form', $form->returnForm()); |
||
106 | $template = $view->get_template('extrafield/translate.tpl'); |
||
107 | $content = $view->fetch($template); |
||
108 | $view->assign('content', $content); |
||
109 | $view->display_one_col_template(); |
||
110 |
Let?s assume that you have a directory layout like this:
and let?s assume the following content of
Bar.php
:If both files
OtherDir/Foo.php
andSomeDir/Foo.php
are loaded in the same runtime, you will see a PHP error such as the following:PHP Fatal error: Cannot use SomeDir\Foo as Foo because the name is already in use in OtherDir/Foo.php
However, as
OtherDir/Foo.php
does not necessarily have to be loaded and the error is only triggered if it is loaded beforeOtherDir/Bar.php
, this problem might go unnoticed for a while. In order to prevent this error from surfacing, you must import the namespace with a different alias: