]> git.mxchange.org Git - friendica.git/blob - src/Module/Admin/Addons/Details.php
Fix EOL and EOF in Admin modules
[friendica.git] / src / Module / Admin / Addons / Details.php
1 <?php
2
3 namespace Friendica\Module\Admin\Addons;
4
5 use Friendica\Content\Text\Markdown;
6 use Friendica\Core\Addon;
7 use Friendica\Core\L10n;
8 use Friendica\Core\Renderer;
9 use Friendica\Module\BaseAdminModule;
10 use Friendica\Util\Strings;
11
12 class Details extends BaseAdminModule
13 {
14         public static function post()
15         {
16                 parent::post();
17
18                 $a = self::getApp();
19
20                 if ($a->argc > 2) {
21                         // @TODO: Replace with parameter from router
22                         $addon = $a->argv[2];
23                         $addon = Strings::sanitizeFilePathItem($addon);
24                         if (is_file('addon/' . $addon . '/' . $addon . '.php')) {
25                                 include_once 'addon/' . $addon . '/' . $addon . '.php';
26                                 if (function_exists($addon . '_addon_admin_post')) {
27                                         $func = $addon . '_addon_admin_post';
28                                         $func($a);
29                                 }
30
31                                 $a->internalRedirect('admin/addons/' . $addon);
32                         }
33                 }
34
35                 $a->internalRedirect('admin/addons');
36         }
37
38         public static function content()
39         {
40                 parent::content();
41
42                 $a = self::getApp();
43
44                 $addons_admin = Addon::getAdminList();
45
46                 if ($a->argc > 2) {
47                         // @TODO: Replace with parameter from router
48                         $addon = $a->argv[2];
49                         $addon = Strings::sanitizeFilePathItem($addon);
50                         if (!is_file("addon/$addon/$addon.php")) {
51                                 notice(L10n::t('Item not found.'));
52                                 $a->internalRedirect('admin/addons');
53                         }
54
55                         if (defaults($_GET, 'action', '') == 'toggle') {
56                                 parent::checkFormSecurityTokenRedirectOnError('/admin/addons', 'admin_themes', 't');
57
58                                 // Toggle addon status
59                                 if (Addon::isEnabled($addon)) {
60                                         Addon::uninstall($addon);
61                                         info(L10n::t('Addon %s disabled.', $addon));
62                                 } else {
63                                         Addon::install($addon);
64                                         info(L10n::t('Addon %s enabled.', $addon));
65                                 }
66
67                                 Addon::saveEnabledList();
68
69                                 $a->internalRedirect('admin/addons/' . $addon);
70                         }
71
72                         // display addon details
73                         if (Addon::isEnabled($addon)) {
74                                 $status = 'on';
75                                 $action = L10n::t('Disable');
76                         } else {
77                                 $status = 'off';
78                                 $action = L10n::t('Enable');
79                         }
80
81                         $readme = null;
82                         if (is_file("addon/$addon/README.md")) {
83                                 $readme = Markdown::convert(file_get_contents("addon/$addon/README.md"), false);
84                         } elseif (is_file("addon/$addon/README")) {
85                                 $readme = '<pre>' . file_get_contents("addon/$addon/README") . '</pre>';
86                         }
87
88                         $admin_form = '';
89                         if (array_key_exists($addon, $addons_admin)) {
90                                 require_once "addon/$addon/$addon.php";
91                                 $func = $addon . '_addon_admin';
92                                 $func($a, $admin_form);
93                         }
94
95                         $t = Renderer::getMarkupTemplate('admin/addons/details.tpl');
96
97                         return Renderer::replaceMacros($t, [
98                                 '$title' => L10n::t('Administration'),
99                                 '$page' => L10n::t('Addons'),
100                                 '$toggle' => L10n::t('Toggle'),
101                                 '$settings' => L10n::t('Settings'),
102                                 '$baseurl' => $a->getBaseURL(true),
103
104                                 '$addon' => $addon,
105                                 '$status' => $status,
106                                 '$action' => $action,
107                                 '$info' => Addon::getInfo($addon),
108                                 '$str_author' => L10n::t('Author: '),
109                                 '$str_maintainer' => L10n::t('Maintainer: '),
110
111                                 '$admin_form' => $admin_form,
112                                 '$function' => 'addons',
113                                 '$screenshot' => '',
114                                 '$readme' => $readme,
115
116                                 '$form_security_token' => parent::getFormSecurityToken('admin_themes'),
117                         ]);
118                 }
119
120                 $a->internalRedirect('admin/addons');
121         }
122 }