-
Notifications
You must be signed in to change notification settings - Fork 75
Expand file tree
/
Copy pathcontainer.form.php
More file actions
82 lines (77 loc) · 3.02 KB
/
container.form.php
File metadata and controls
82 lines (77 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
/**
* -------------------------------------------------------------------------
* Fields plugin for GLPI
* -------------------------------------------------------------------------
*
* LICENSE
*
* This file is part of Fields.
*
* Fields is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Fields is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Fields. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @copyright Copyright (C) 2013-2023 by Fields plugin team.
* @license GPLv2 https://www.gnu.org/licenses/gpl-2.0.html
* @link https://github.com/pluginsGLPI/fields
* -------------------------------------------------------------------------
*/
include('../../../inc/includes.php');
if (empty($_GET['id'])) {
$_GET['id'] = '';
}
$container = new PluginFieldsContainer();
if (isset($_POST['add'])) {
$container->check(-1, CREATE, $_POST);
$newID = $container->add($_POST);
Html::redirect(PLUGINFIELDS_WEB_DIR . "/front/container.form.php?id=$newID");
} elseif (isset($_POST['delete'])) {
$container->check($_POST['id'], DELETE);
$ok = $container->delete($_POST);
Html::redirect(PLUGINFIELDS_WEB_DIR . '/front/container.php');
} elseif (isset($_REQUEST['purge'])) {
$container->check($_REQUEST['id'], PURGE);
$container->delete($_REQUEST, true);
Html::redirect(PLUGINFIELDS_WEB_DIR . '/front/container.php');
} elseif (isset($_POST['update'])) {
$container->check($_POST['id'], UPDATE);
$container->update($_POST);
Html::back();
} elseif (isset($_POST['update_fields_values'])) {
$right = PluginFieldsProfile::getRightOnContainer($_SESSION['glpiactiveprofile']['id'], $_POST['plugin_fields_containers_id']);
if ($right > READ) {
$containerID = $_POST['plugin_fields_containers_id'];
$data = [];
foreach ($_REQUEST as $key => $value) {
// if key starts with plugin_fields_<containerID>_ remove the prefix
if (strpos($key, "plugin_fields_{$containerID}_") === 0) {
$new_key = substr($key, strlen("plugin_fields_{$containerID}_"));
$data[$new_key] = $value;
} else {
$data[$key] = $value;
}
}
$container->updateFieldsValues($_REQUEST, $_REQUEST['itemtype'], false);
}
Html::back();
} else {
Html::header(
__('Additional fields', 'fields'),
$_SERVER['PHP_SELF'],
'config',
'pluginfieldsmenu',
'fieldscontainer',
);
$container->display(['id' => $_GET['id']]);
Html::footer();
}