Issues (2160)

main/extrafield/translate.php (1 issue)

1
<?php
2
/* For licensing terms, see /license.txt */
3
4
use Chamilo\CoreBundle\Entity\ExtraField;
0 ignored issues
show
This use statement conflicts with another class in this namespace, ExtraField. Consider defining an alias.

Let?s assume that you have a directory layout like this:

.
|-- OtherDir
|   |-- Bar.php
|   `-- Foo.php
`-- SomeDir
    `-- Foo.php

and let?s assume the following content of Bar.php:

// Bar.php
namespace OtherDir;

use SomeDir\Foo; // This now conflicts the class OtherDir\Foo

If both files OtherDir/Foo.php and SomeDir/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 before OtherDir/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:

// Bar.php
namespace OtherDir;

use SomeDir\Foo as SomeDirFoo; // There is no conflict anymore.
Loading history...
5
6
$cidReset = true;
7
8
require_once __DIR__.'/../inc/global.inc.php';
9
10
api_protect_admin_script();
11
12
$em = Database::getManager();
13
14
$extraField = null;
15
$extraFieldOption = null;
16
$variableLanguage = null;
17
$originalName = null;
18
19
if (isset($_GET['extra_field'])) {
20
    $extraField = $em->find('ChamiloCoreBundle:ExtraField', intval($_GET['extra_field']));
21
    $variableLanguage = '$'.api_underscore_to_camel_case($extraField->getVariable());
22
    $originalName = $extraField->getDisplayText(false);
23
} elseif (isset($_GET['extra_field_option'])) {
24
    $extraFieldOption = $em->find('ChamiloCoreBundle:ExtraFieldOptions', intval($_GET['extra_field_option']));
25
    $extraField = $extraFieldOption->getField();
26
    $variableLanguage = '$'.ExtraFieldOption::getLanguageVariable($extraFieldOption->getDisplayText());
27
    $originalName = $extraFieldOption->getDisplayText(false);
28
}
29
30
if (!$extraField || empty($variableLanguage) || empty($originalName)) {
31
    api_not_allowed(true);
32
}
33
34
$languageId = isset($_GET['sub_language']) ? (int) $_GET['sub_language'] : 0;
35
36
$languages = $em
37
    ->getRepository('ChamiloCoreBundle:Language')
38
    ->findAllPlatformSubLanguages();
39
40
$languagesOptions = [0 => get_lang('None')];
41
42
foreach ($languages as $language) {
43
    $languagesOptions[$language->getId()] = $language->getOriginalName();
44
}
45
46
$translateUrl = api_get_path(WEB_CODE_PATH).'admin/sub_language_ajax.inc.php';
47
48
$form = new FormValidator('new_lang_variable', 'POST', $translateUrl);
49
$form->addHeader(get_lang('AddWordForTheSubLanguage'));
50
$form->addText('variable_language', get_lang('LanguageVariable'), false);
51
$form->addText('original_name', get_lang('OriginalName'), false);
52
$form->addSelect(
53
    'sub_language',
54
    [get_lang('SubLanguage'), get_lang('OnlyActiveSubLanguagesAreListed')],
55
    $languagesOptions
56
);
57
58
if ($languageId) {
59
    $languageInfo = api_get_language_info($languageId);
60
    $form->addText(
61
        'new_language',
62
        [get_lang('Translation'), get_lang('IfThisTranslationExistsThisWillReplaceTheTerm')]
63
    );
64
    $form->addHidden('file_id', 0);
65
    $form->addHidden('id', $languageInfo['parent_id']);
66
    $form->addHidden('sub', $languageInfo['id']);
67
    $form->addHidden('sub_language_id', $languageInfo['id']);
68
    $form->addHidden('redirect', true);
69
    $form->addHidden('extra_field_type', $extraField->getExtraFieldType());
70
    $form->addButtonSave(get_lang('Save'));
71
}
72
73
$form->setDefaults([
74
    'variable_language' => $variableLanguage,
75
    'original_name' => $originalName,
76
    'sub_language' => $languageId,
77
]);
78
$form->addRule('sub_language', get_lang('Required'), 'required');
79
$form->freeze(['variable_language', 'original_name']);
80
81
$interbreadcrumb[] = ['url' => api_get_path(WEB_CODE_PATH).'admin', 'name' => get_lang('Administration')];
82
83
switch ($extraField->getExtraFieldType()) {
84
    case ExtraField::USER_FIELD_TYPE:
85
        $interbreadcrumb[] = [
86
            'url' => api_get_path(WEB_CODE_PATH).'admin/extra_fields.php?type=user',
87
            'name' => get_lang('UserFields'),
88
        ];
89
        break;
90
    case ExtraField::COURSE_FIELD_TYPE:
91
        $interbreadcrumb[] = [
92
            'url' => api_get_path(WEB_CODE_PATH).'admin/extra_fields.php?type=course',
93
            'name' => get_lang('CourseFields'),
94
        ];
95
        break;
96
    case ExtraField::SESSION_FIELD_TYPE:
97
        $interbreadcrumb[] = [
98
            'url' => api_get_path(WEB_CODE_PATH).'admin/extra_fields.php?type=session',
99
            'name' => get_lang('SessionFields'),
100
        ];
101
        break;
102
}
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