]> git.mxchange.org Git - friendica.git/blob - src/Module/Admin/Features.php
Use DBA::fetchFirst instead of DBA::p for aggregate query in Module\Admin\Federation
[friendica.git] / src / Module / Admin / Features.php
1 <?php\r
2 \r
3 namespace Friendica\Module\Admin;\r
4 \r
5 use Friendica\Content\Feature;\r
6 use Friendica\Core\Config;\r
7 use Friendica\Core\L10n;\r
8 use Friendica\Core\Renderer;\r
9 use Friendica\Module\BaseAdminModule;\r
10 \r
11 class Features extends BaseAdminModule\r
12 {\r
13         public static function post()\r
14         {\r
15                 parent::post();\r
16 \r
17                 parent::checkFormSecurityTokenRedirectOnError('/admin/features', 'admin_manage_features');\r
18 \r
19                 $features = Feature::get(false);\r
20 \r
21                 foreach ($features as $fname => $fdata) {\r
22                         foreach (array_slice($fdata, 1) as $f) {\r
23                                 $feature = $f[0];\r
24                                 $feature_state = 'feature_' . $feature;\r
25                                 $featurelock = 'featurelock_' . $feature;\r
26 \r
27                                 if (!empty($_POST[$feature_state])) {\r
28                                         $val = intval($_POST[$feature_state]);\r
29                                 } else {\r
30                                         $val = 0;\r
31                                 }\r
32                                 Config::set('feature', $feature, $val);\r
33 \r
34                                 if (!empty($_POST[$featurelock])) {\r
35                                         Config::set('feature_lock', $feature, $val);\r
36                                 } else {\r
37                                         Config::delete('feature_lock', $feature);\r
38                                 }\r
39                         }\r
40                 }\r
41 \r
42                 self::getApp()->internalRedirect('admin/features');\r
43         }\r
44 \r
45         public static function content()\r
46         {\r
47                 parent::content();\r
48 \r
49                 $arr = [];\r
50                 $features = Feature::get(false);\r
51 \r
52                 foreach ($features as $fname => $fdata) {\r
53                         $arr[$fname] = [];\r
54                         $arr[$fname][0] = $fdata[0];\r
55                         foreach (array_slice($fdata, 1) as $f) {\r
56                                 $set = Config::get('feature', $f[0], $f[3]);\r
57                                 $arr[$fname][1][] = [\r
58                                         ['feature_' . $f[0], $f[1], $set, $f[2], [L10n::t('Off'), L10n::t('On')]],\r
59                                         ['featurelock_' . $f[0], L10n::t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [L10n::t('Off'), L10n::t('On')]]\r
60                                 ];\r
61                         }\r
62                 }\r
63 \r
64                 $tpl = Renderer::getMarkupTemplate('admin/features.tpl');\r
65                 $o = Renderer::replaceMacros($tpl, [\r
66                         '$form_security_token' => parent::getFormSecurityToken("admin_manage_features"),\r
67                         '$title' => L10n::t('Manage Additional Features'),\r
68                         '$features' => $arr,\r
69                         '$submit' => L10n::t('Save Settings'),\r
70                 ]);\r
71 \r
72                 return $o;\r
73         }\r
74 }