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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
<?php
/**
* configuration.php - model class for the configuration
*
* @author Nico Müller <nico.mueller@uni-oldenburg.de>
* @author Michael Riehemann <michael.riehemann@uni-oldenburg.de>
* @license GPL2 or any later version
* @category Stud.IP
* @package admin
* @since 2.0
*/
class ConfigurationModel
{
/*
* Get all config-files
*/
public static function getConfig($section = null, $name = null)
{
$config = Config::get();
$allconfigs = [];
foreach ($config->getFields('global', $section, $name) as $field) {
$metadata = $config->getMetadata($field);
$metadata['value'] = $config->$field;
$allconfigs[$metadata['section']][] = $metadata;
}
ksort($allconfigs, SORT_NATURAL | SORT_FLAG_CASE);
return $allconfigs;
}
/**
* Search the configuration from the config or give all parameters
*
* @param Range $range
* @param string $limit_to Limit entries to certain range type
* @return array()
*/
public static function searchConfiguration(Range $range = null)
{
$config = Config::get();
$allconfigs = [];
if ($range && !$range->isNew()) {
foreach ($range->getConfiguration() as $field => $value) {
$data = $config->getMetadata($field) ?: [
'field' => $field,
'type' => 'string',
'description' => 'missing in table `config`',
];
$data['value'] = $value;
$data['fullname'] = $range->getFullname();
$allconfigs[] = $data;
}
} else {
foreach ($config->getFields($range ? $range->getRangeType() : 'range') as $field) {
$metadata = $config->getMetadata($field);
$metadata['value'] = $config->$field;
$allconfigs[] = $metadata;
}
}
usort($allconfigs, function ($a, $b) {
return strcmp($a['field'], $b['field']);
});
return $allconfigs;
}
/**
* Show the range configuration for one parameter
*
* @param Range $range
* @return array
*/
public static function showConfiguration(Range $range, $field)
{
$data = Config::get()->getMetadata($field) ?: [
'field' => $field,
'type' => 'string',
'description' => 'missing in table `config`',
];
$data['value'] = $range->getConfiguration()->$field;
$data['fullname'] = $range->getFullname();
return $data;
}
/**
* Show all information for one configuration parameter
*
* @param string $field
*/
public static function getConfigInfo($field)
{
$config = Config::get();
$metadata = $config->getMetadata($field);
$metadata['value'] = $config->$field;
return $metadata;
}
}
|