X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FAdmin%2FThemes%2FEmbed.php;h=1eb3018d56235e4ae98021a9025975724c561b80;hb=561aba18e3a230c0912ad9483c6df43cc40e09d6;hp=50ecff9322c42387794bed12dc44465e76f1eb3d;hpb=a3028e69aa98bc0197285116fb6cebeb89cd23de;p=friendica.git diff --git a/src/Module/Admin/Themes/Embed.php b/src/Module/Admin/Themes/Embed.php index 50ecff9322..1eb3018d56 100644 --- a/src/Module/Admin/Themes/Embed.php +++ b/src/Module/Admin/Themes/Embed.php @@ -1,93 +1,102 @@ . + * + */ namespace Friendica\Module\Admin\Themes; +use Friendica\App; +use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\DI; use Friendica\Module\BaseAdmin; +use Friendica\Module\Response; +use Friendica\Util\Profiler; use Friendica\Util\Strings; +use Psr\Log\LoggerInterface; class Embed extends BaseAdmin { - public static function init(array $parameters = []) + /** @var App */ + protected $app; + /** @var App\Mode */ + protected $mode; + + public function __construct(App $app, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, App\Mode $mode, array $server, array $parameters = []) { - $a = DI::app(); - - if ($a->argc > 2) { - // @TODO: Replace with parameter from router - $theme = $a->argv[2]; - $theme = Strings::sanitizeFilePathItem($theme); - if (is_file("view/theme/$theme/config.php")) { - $a->setCurrentTheme($theme); - } + parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); + + $this->app = $app; + $this->mode = $mode; + + $theme = Strings::sanitizeFilePathItem($this->parameters['theme']); + if (is_file("view/theme/$theme/config.php")) { + $this->app->setCurrentTheme($theme); } } - public static function post(array $parameters = []) + protected function post(array $request = [], array $post = []) { - parent::post($parameters); - - $a = DI::app(); + self::checkAdminAccess(); - if ($a->argc > 2) { - // @TODO: Replace with parameter from router - $theme = $a->argv[2]; - $theme = Strings::sanitizeFilePathItem($theme); - if (is_file("view/theme/$theme/config.php")) { + $theme = Strings::sanitizeFilePathItem($this->parameters['theme']); + if (is_file("view/theme/$theme/config.php")) { + require_once "view/theme/$theme/config.php"; + if (function_exists('theme_admin_post')) { self::checkFormSecurityTokenRedirectOnError('/admin/themes/' . $theme . '/embed?mode=minimal', 'admin_theme_settings'); - - require_once "view/theme/$theme/config.php"; - - if (function_exists('theme_admin_post')) { - theme_admin_post($a); - } - } - - info(DI::l10n()->t('Theme settings updated.')); - - if (DI::mode()->isAjax()) { - return; + theme_admin_post($this->app); } + } - DI::baseUrl()->redirect('admin/themes/' . $theme . '/embed?mode=minimal'); + if ($this->mode->isAjax()) { + return; } + + $this->baseUrl->redirect('admin/themes/' . $theme . '/embed?mode=minimal'); } - public static function content(array $parameters = []) + protected function content(array $request = []): string { - parent::content($parameters); + parent::content(); - $a = DI::app(); - - if ($a->argc > 2) { - // @TODO: Replace with parameter from router - $theme = $a->argv[2]; - $theme = Strings::sanitizeFilePathItem($theme); - if (!is_dir("view/theme/$theme")) { - notice(DI::l10n()->t('Unknown theme.')); - return ''; - } + $theme = Strings::sanitizeFilePathItem($this->parameters['theme']); + if (!is_dir("view/theme/$theme")) { + notice($this->t('Unknown theme.')); + return ''; + } - $admin_form = ''; - if (is_file("view/theme/$theme/config.php")) { - require_once "view/theme/$theme/config.php"; + $admin_form = ''; + if (is_file("view/theme/$theme/config.php")) { + require_once "view/theme/$theme/config.php"; - if (function_exists('theme_admin')) { - $admin_form = theme_admin($a); - } + if (function_exists('theme_admin')) { + $admin_form = theme_admin($this->app); } - - // Overrides normal theme style include to strip user param to show embedded theme settings - Renderer::$theme['stylesheet'] = 'view/theme/' . $theme . '/style.pcss'; - - $t = Renderer::getMarkupTemplate('admin/addons/embed.tpl'); - return Renderer::replaceMacros($t, [ - '$action' => '/admin/themes/' . $theme . '/embed?mode=minimal', - '$form' => $admin_form, - '$form_security_token' => parent::getFormSecurityToken("admin_theme_settings"), - ]); } - return ''; + // Overrides normal theme style include to strip user param to show embedded theme settings + Renderer::$theme['stylesheet'] = 'view/theme/' . $theme . '/style.pcss'; + + $t = Renderer::getMarkupTemplate('admin/addons/embed.tpl'); + return Renderer::replaceMacros($t, [ + '$action' => '/admin/themes/' . $theme . '/embed?mode=minimal', + '$form' => $admin_form, + '$form_security_token' => self::getFormSecurityToken("admin_theme_settings"), + ]); } }