]> git.mxchange.org Git - friendica.git/commitdiff
Move theme determination after full module run
authorHypolite Petovan <hypolite@mrpetovan.com>
Sun, 6 Oct 2019 15:18:51 +0000 (11:18 -0400)
committerHypolite Petovan <hypolite@mrpetovan.com>
Sun, 6 Oct 2019 15:18:51 +0000 (11:18 -0400)
src/App.php
src/App/Module.php
src/App/Page.php

index c7305c8c1dd40e0abcba0ac36df862040fb41449..1f623c0cfeb8565c5101b8e80b3a203376004e73 100644 (file)
@@ -587,7 +587,11 @@ class App
         *
         * This probably should change to limit the size of this monster method.
         *
-        * @param App\Module $module The determined module
+        * @param App\Module     $module The determined module
+        * @param App\Router     $router
+        * @param PConfiguration $pconfig
+        * @throws HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        public function runFrontend(App\Module $module, App\Router $router, PConfiguration $pconfig)
        {
@@ -733,8 +737,7 @@ class App
                        $module = $module->determineClass($this->args, $router, $this->config);
 
                        // Let the module run it's internal process (init, get, post, ...)
-                       $module->run($this->l10n, $this, $this->logger, $this->getCurrentTheme(), $_SERVER, $_POST);
-
+                       $module->run($this->l10n, $this, $this->logger, $_SERVER, $_POST);
                } catch (HTTPException $e) {
                        ModuleHTTPException::rawContent($e);
                }
index 5ef4093600d589ac20d4dcd901468b3b54699070..9a24c55544199635cde4a956577070491ce6519f 100644 (file)
@@ -138,7 +138,7 @@ class Module
         *
         * @return Module The determined module of this call
         *
-        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \Exception
         */
        public function determineClass(Arguments $args, Router $router, Core\Config\Configuration $config)
        {
@@ -186,13 +186,12 @@ class Module
         * @param Core\L10n\L10n  $l10n         The L10n instance
         * @param App             $app          The whole Friendica app (for method arguments)
         * @param LoggerInterface $logger       The Friendica logger
-        * @param string          $currentTheme The chosen theme
         * @param array           $server       The $_SERVER variable
         * @param array           $post         The $_POST variables
         *
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public function run(Core\L10n\L10n $l10n, App $app, LoggerInterface $logger, string $currentTheme, array $server, array $post)
+       public function run(Core\L10n\L10n $l10n, App $app, LoggerInterface $logger, array $server, array $post)
        {
                if ($this->printNotAllowedAddon) {
                        info($l10n->t("You must be logged in to use addons. "));
@@ -232,17 +231,6 @@ class Module
                // This endpoint doesn't need any theme initialization or other comparable stuff.
                call_user_func([$this->module_class, 'rawContent']);
 
-               // Load current theme info after module has been initialized as theme could have been set in module
-               $theme_info_file = 'view/theme/' . $currentTheme . '/theme.php';
-               if (file_exists($theme_info_file)) {
-                       require_once $theme_info_file;
-               }
-
-               if (function_exists(str_replace('-', '_', $currentTheme) . '_init')) {
-                       $func = str_replace('-', '_', $currentTheme) . '_init';
-                       $func($app);
-               }
-
                if ($server['REQUEST_METHOD'] === 'POST') {
                        Core\Hook::callAll($this->module . '_mod_post', $post);
                        call_user_func([$this->module_class, 'post']);
index 0bccbd73963cf440078a95f6e018b6d68a12596a..ea94f9cfef6a73ba37d7bdc08c206ec243447924 100644 (file)
@@ -364,6 +364,18 @@ class Page implements ArrayAccess
                 */
                $this->initContent($module, $mode);
 
+               // Load current theme info after module has been initialized as theme could have been set in module
+               $currentTheme = $app->getCurrentTheme();
+               $theme_info_file = 'view/theme/' . $currentTheme . '/theme.php';
+               if (file_exists($theme_info_file)) {
+                       require_once $theme_info_file;
+               }
+
+               if (function_exists(str_replace('-', '_', $currentTheme) . '_init')) {
+                       $func = str_replace('-', '_', $currentTheme) . '_init';
+                       $func($app);
+               }
+
                /* Create the page head after setting the language
                 * and getting any auth credentials.
                 *