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;
* - 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);
]) . $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'].
*
// If you're just visiting, let javascript take you home
if (!empty($_SESSION['visitor_home'])) {
$homebase = $_SESSION['visitor_home'];
- } elseif (!empty($app->getUserNickname())) {
- $homebase = 'profile/' . $app->getUserNickname();
+ } elseif (!empty($app->getLoggedInUserNickname())) {
+ $homebase = 'profile/' . $app->getLoggedInUserNickname();
}
if (isset($homebase)) {
*/
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,
* - 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'];
+ $content .= $module->getModule()->content();
} catch (HTTPException $e) {
- $content = ModuleHTTPException::content($e);
+ $content = (new ModuleHTTPException())->content($e);
}
// initialise content region
/**
* 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();