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