Passed
Push — 1.11.x ( bce6cd...c146d9 )
by Angel Fernando Quiroz
12:25
created

main/admin/skill_edit.php (1 issue)

1
<?php
2
/* For licensing terms, see /license.txt */
3
4
/**
5
 * Skill edit form.
6
 *
7
 * @author Angel Fernando Quiroz Campos <[email protected]>
8
 *
9
 * @package chamilo.admin
10
 */
11
$cidReset = true;
12
13
require_once __DIR__.'/../inc/global.inc.php';
14
15
$this_section = SECTION_PLATFORM_ADMIN;
16
17
api_protect_admin_script();
18
Skill::isAllowed();
19
20
$interbreadcrumb[] = ['url' => 'index.php', 'name' => get_lang('PlatformAdmin')];
21
$interbreadcrumb[] = ['url' => 'skill_list.php', 'name' => get_lang('ManageSkills')];
22
23
/* Process data */
24
$skillId = isset($_REQUEST['id']) ? (int) $_REQUEST['id'] : 0;
25
26
$objSkill = new Skill();
27
$objGradebook = new Gradebook();
28
$skillInfo = $objSkill->getSkillInfo($skillId);
29
30
if (empty($skillInfo)) {
31
    api_not_allowed(true);
32
}
33
34
$allGradebooks = $objGradebook->find('all');
35
36
$skillDefaultInfo = [
37
    'id' => $skillInfo['id'],
38
    'name' => $skillInfo['name'],
39
    'short_code' => $skillInfo['short_code'],
40
    'description' => $skillInfo['description'],
41
    'parent_id' => $skillInfo['extra']['parent_id'],
42
    'criteria' => $skillInfo['criteria'],
43
    'gradebook_id' => [],
44
];
45
46
foreach ($skillInfo['gradebooks'] as $gradebook) {
47
    $skillDefaultInfo['gradebook_id'][] = $gradebook['id'];
48
}
49
50
$gradebookList = [];
51
foreach ($allGradebooks as $gradebook) {
0 ignored issues
show
Comprehensibility Bug introduced by
$gradebook is overwriting a variable from outer foreach loop.
Loading history...
52
    $gradebookList[$gradebook['id']] = $gradebook['name'];
53
}
54
55
/* Form */
56
$editForm = new FormValidator('skill_edit');
57
$editForm->addHeader(get_lang('SkillEdit'));
58
$returnParams = $objSkill->setForm($editForm, $skillInfo);
59
60
$jquery_ready_content = $returnParams['jquery_ready_content'];
61
62
// the $jquery_ready_content variable collects all functions that will be load
63
// in the $(document).ready javascript function
64
if (!empty($jquery_ready_content)) {
65
    $htmlHeadXtra[] = '<script>
66
    $(function () {
67
        '.$jquery_ready_content.'
68
    });
69
    </script>';
70
}
71
72
$editForm->setDefaults($skillDefaultInfo);
73
if ($editForm->validate()) {
74
    $skillValues = $editForm->getSubmitValues();
75
    $updated = $objSkill->edit($skillValues);
76
77
    $extraFieldValue = new ExtraFieldValue('skill');
78
    $extraFieldValue->saveFieldValues($skillValues);
79
80
    if ($updated) {
81
        Display::addFlash(
82
            Display::return_message(
83
                get_lang('TheSkillHasBeenUpdated'),
84
                'success'
85
            )
86
        );
87
    } else {
88
        Display::addFlash(
89
            Display::return_message(
90
                get_lang('CannotUpdateSkill'),
91
                'error'
92
            )
93
        );
94
    }
95
96
    header('Location: '.api_get_path(WEB_CODE_PATH).'admin/skill_list.php');
97
    exit;
98
}
99
100
$toolbar = $objSkill->getToolBar();
101
102
/* view */
103
$tpl = new Template(get_lang('SkillEdit'));
104
$tpl->assign('content', $toolbar.$editForm->returnForm());
105
$tpl->display_one_col_template();
106