]> git.mxchange.org Git - friendica.git/blobdiff - src/App/Page.php
Refactor App\Module to App\ModuleController and rename properties
[friendica.git] / src / App / Page.php
index 97b70cf5c0940ebe2e477cd499d569d19967e4a0..f410f6aa2811ea7d39b3c3d97f020537f7882e6f 100644 (file)
@@ -26,8 +26,8 @@ use DOMDocument;
 use DOMXPath;
 use Friendica\App;
 use Friendica\Content\Nav;
-use Friendica\Core\Config\IConfig;
-use Friendica\Core\PConfig\IPConfig;
+use Friendica\Core\Config\Capability\IManageConfigValues;
+use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
 use Friendica\Core\Hook;
 use Friendica\Core\L10n;
 use Friendica\Core\Renderer;
@@ -190,15 +190,15 @@ class Page implements ArrayAccess
         * - Infinite scroll data
         * - head.tpl template
         *
-        * @param App      $app     The Friendica App instance
-        * @param Module   $module  The loaded Friendica module
-        * @param L10n     $l10n    The l10n language instance
-        * @param IConfig  $config  The Friendica configuration
-        * @param IPConfig $pConfig The Friendica personal configuration (for user)
+        * @param App                         $app     The Friendica App instance
+        * @param ModuleController            $module  The loaded Friendica module
+        * @param L10n                        $l10n    The l10n language instance
+        * @param IManageConfigValues         $config  The Friendica configuration
+        * @param IManagePersonalConfigValues $pConfig The Friendica personal configuration (for user)
         *
         * @throws HTTPException\InternalServerErrorException
         */
-       private function initHead(App $app, Module $module, L10n $l10n, IConfig $config, IPConfig $pConfig)
+       private function initHead(App $app, ModuleController $module, L10n $l10n, IManageConfigValues $config, IManagePersonalConfigValues $pConfig)
        {
                $interval = ((local_user()) ? $pConfig->get(local_user(), 'system', 'update_interval') : 40000);
 
@@ -257,6 +257,28 @@ class Page implements ArrayAccess
                ]) . $this->page['htmlhead'];
        }
 
+       /**
+        * Returns the complete URL of the current page, e.g.: http(s)://something.com/network
+        *
+        * Taken from http://webcheatsheet.com/php/get_current_page_url.php
+        */
+       private function curPageURL()
+       {
+               $pageURL = 'http';
+               if (!empty($_SERVER["HTTPS"]) && ($_SERVER["HTTPS"] == "on")) {
+                       $pageURL .= "s";
+               }
+       
+               $pageURL .= "://";
+       
+               if ($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443") {
+                       $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
+               } else {
+                       $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
+               }
+               return $pageURL;
+       }
+      
        /**
         * Initializes Page->page['footer'].
         *
@@ -277,8 +299,8 @@ class Page implements ArrayAccess
                // If you're just visiting, let javascript take you home
                if (!empty($_SESSION['visitor_home'])) {
                        $homebase = $_SESSION['visitor_home'];
-               } elseif (!empty($app->getNickname())) {
-                       $homebase = 'profile/' . $app->getNickname();
+               } elseif (!empty($app->getLoggedInUserNickname())) {
+                       $homebase = 'profile/' . $app->getLoggedInUserNickname();
                }
 
                if (isset($homebase)) {
@@ -290,9 +312,9 @@ class Page implements ArrayAccess
                 */
                if ($mode->isMobile() || $mode->isTablet()) {
                        if (isset($_SESSION['show-mobile']) && !$_SESSION['show-mobile']) {
-                               $link = 'toggle_mobile?address=' . urlencode(curPageURL());
+                               $link = 'toggle_mobile?address=' . urlencode($this->curPageURL());
                        } else {
-                               $link = 'toggle_mobile?off=1&address=' . urlencode(curPageURL());
+                               $link = 'toggle_mobile?off=1&address=' . urlencode($this->curPageURL());
                        }
                        $this->page['footer'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate("toggle_mobile_footer.tpl"), [
                                '$toggle_link' => $link,
@@ -315,26 +337,23 @@ class Page implements ArrayAccess
         * - module content
         * - hooks for content
         *
-        * @param Module $module The module
-        * @param Mode   $mode   The Friendica execution mode
+        * @param ModuleController $module The module
+        * @param Mode             $mode   The Friendica execution mode
         *
         * @throws HTTPException\InternalServerErrorException
         */
-       private function initContent(Module $module, Mode $mode)
+       private function initContent(ModuleController $module, Mode $mode)
        {
                $content = '';
 
                try {
-                       $moduleClass = $module->getClassName();
+                       $moduleClass = $module->getModule();
 
                        $arr = ['content' => $content];
-                       Hook::callAll($moduleClass . '_mod_content', $arr);
+                       Hook::callAll($moduleClass->getClassName() . '_mod_content', $arr);
                        $content = $arr['content'];
-                       $arr     = ['content' => call_user_func([$moduleClass, 'content'], $module->getParameters())];
-                       Hook::callAll($moduleClass . '_mod_aftercontent', $arr);
-                       $content .= $arr['content'];
                } catch (HTTPException $e) {
-                       $content = ModuleHTTPException::content($e);
+                       $content = (new ModuleHTTPException())->content($e);
                }
 
                // initialise content region
@@ -367,17 +386,17 @@ class Page implements ArrayAccess
        /**
         * Executes the creation of the current page and prints it to the screen
         *
-        * @param App      $app     The Friendica App
-        * @param BaseURL  $baseURL The Friendica Base URL
-        * @param Mode     $mode    The current node mode
-        * @param Module   $module  The loaded Friendica module
-        * @param L10n     $l10n    The l10n language class
-        * @param IConfig  $config  The Configuration of this node
-        * @param IPConfig $pconfig The personal/user configuration
+        * @param App                         $app     The Friendica App
+        * @param BaseURL                     $baseURL The Friendica Base URL
+        * @param Mode                        $mode    The current node mode
+        * @param ModuleController            $module  The loaded Friendica module
+        * @param L10n                        $l10n    The l10n language class
+        * @param IManageConfigValues         $config  The Configuration of this node
+        * @param IManagePersonalConfigValues $pconfig The personal/user configuration
         *
         * @throws HTTPException\InternalServerErrorException
         */
-       public function run(App $app, BaseURL $baseURL, Mode $mode, Module $module, L10n $l10n, Profiler $profiler, IConfig $config, IPConfig $pconfig)
+       public function run(App $app, BaseURL $baseURL, Mode $mode, ModuleController $module, L10n $l10n, Profiler $profiler, IManageConfigValues $config, IManagePersonalConfigValues $pconfig)
        {
                $moduleName = $module->getName();