]> git.mxchange.org Git - friendica.git/blob - src/Module/Admin/Themes/Embed.php
Add admin/themes/{theme}/embed module
[friendica.git] / src / Module / Admin / Themes / Embed.php
1 <?php\r
2 \r
3 namespace Friendica\Module\Admin\Themes;\r
4 \r
5 use Friendica\Core\L10n;\r
6 use Friendica\Core\Renderer;\r
7 use Friendica\Core\System;\r
8 use Friendica\Core\Theme;\r
9 use Friendica\Module\BaseAdminModule;\r
10 use Friendica\Util\Strings;\r
11 \r
12 class Embed extends BaseAdminModule\r
13 {\r
14         public static function init()\r
15         {\r
16                 $a = self::getApp();\r
17 \r
18                 if ($a->argc > 2) {\r
19                         // @TODO: Replace with parameter from router\r
20                         $theme = $a->argv[2];\r
21                         $theme = Strings::sanitizeFilePathItem($theme);\r
22                         if (is_file("view/theme/$theme/config.php")) {\r
23                                 $a->setCurrentTheme($theme);\r
24                         }\r
25                 }\r
26         }\r
27 \r
28         public static function post()\r
29         {\r
30                 parent::post();\r
31 \r
32                 $a = self::getApp();\r
33 \r
34                 if ($a->argc > 2) {\r
35                         // @TODO: Replace with parameter from router\r
36                         $theme = $a->argv[2];\r
37                         $theme = Strings::sanitizeFilePathItem($theme);\r
38                         if (is_file("view/theme/$theme/config.php")) {\r
39                                 self::checkFormSecurityTokenRedirectOnError('/admin/themes/' . $theme . '/embed?mode=minimal', 'admin_theme_settings');\r
40 \r
41                                 require_once "view/theme/$theme/config.php";\r
42 \r
43                                 if (function_exists('theme_admin_post')) {\r
44                                         theme_admin_post($a);\r
45                                 }\r
46                         }\r
47 \r
48                         info(L10n::t('Theme settings updated.'));\r
49 \r
50                         if ($a->isAjax()) {\r
51                                 return;\r
52                         }\r
53 \r
54                         $a->internalRedirect('admin/themes/' . $theme . '/embed?mode=minimal');\r
55                 }\r
56         }\r
57 \r
58         public static function content()\r
59         {\r
60                 parent::content();\r
61 \r
62                 $a = self::getApp();\r
63 \r
64                 if ($a->argc > 2) {\r
65                         // @TODO: Replace with parameter from router\r
66                         $theme = $a->argv[2];\r
67                         $theme = Strings::sanitizeFilePathItem($theme);\r
68                         if (!is_dir("view/theme/$theme")) {\r
69                                 notice(L10n::t('Unknown theme.'));\r
70                                 return '';\r
71                         }\r
72 \r
73                         $admin_form = '';\r
74                         if (is_file("view/theme/$theme/config.php")) {\r
75                                 require_once "view/theme/$theme/config.php";\r
76 \r
77                                 if (function_exists('theme_admin')) {\r
78                                         $admin_form = theme_admin($a);\r
79                                 }\r
80                         }\r
81 \r
82                         $t = Renderer::getMarkupTemplate('admin/addons/embed.tpl');\r
83                         return Renderer::replaceMacros($t, [\r
84                                 '$action' => '/admin/themes/' . $theme . '/embed?mode=minimal',\r
85                                 '$form' => $admin_form,\r
86                                 '$form_security_token' => parent::getFormSecurityToken("admin_theme_settings"),\r
87                         ]);\r
88                 }\r
89 \r
90                 return '';\r
91         }\r
92 }