From fe7405754e841ce22f1080746fadc65511642bfe Mon Sep 17 00:00:00 2001 From: Partydragen Date: Fri, 8 Mar 2024 20:56:52 +0100 Subject: [PATCH] Add option to change default homepage --- .../Default/core/general_settings.tpl | 9 ++--- index.php | 12 +++++-- modules/Core/language/en_UK.json | 3 +- modules/Core/pages/panel/general_settings.php | 35 ++++++++++--------- 4 files changed, 32 insertions(+), 27 deletions(-) diff --git a/custom/panel_templates/Default/core/general_settings.tpl b/custom/panel_templates/Default/core/general_settings.tpl index 473b7d5c15..d104be9095 100644 --- a/custom/panel_templates/Default/core/general_settings.tpl +++ b/custom/panel_templates/Default/core/general_settings.tpl @@ -98,12 +98,9 @@
diff --git a/index.php b/index.php index 06d7af5f23..79461a9160 100644 --- a/index.php +++ b/index.php @@ -89,8 +89,16 @@ require(ROOT_PATH . '/404.php'); } else { // Homepage - $pages->setActivePage($pages->getPageByURL('/')); - require(ROOT_PATH . '/modules/Core/pages/index.php'); + $homepage = $pages->getPageByURL(Settings::get('default_homepage')); + if ($homepage != null) { + $pages->setActivePage($homepage); + require(implode(DIRECTORY_SEPARATOR, [ROOT_PATH, 'modules', $homepage['module'], $homepage['file']])); + } else { + $pages->setActivePage($pages->getPageByURL('/')); + require(ROOT_PATH . '/modules/Core/pages/index.php'); + } + + Settings::get('default_homepage'); } die(); } diff --git a/modules/Core/language/en_UK.json b/modules/Core/language/en_UK.json index cc1b0ea6f6..86c57b4ffb 100644 --- a/modules/Core/language/en_UK.json +++ b/modules/Core/language/en_UK.json @@ -286,8 +286,7 @@ "admin/header": "Header", "admin/header_required": "Header is required.", "admin/home_custom_content": "Home Custom Content", - "admin/homepage_news": "News", - "admin/homepage_type": "Homepage Type", + "admin/default_homepage": "Default Homepage", "admin/hook_created": "Hook created successfully.", "admin/hook_deleted": "Hook deleted successfully.", "admin/hook_edited": "Hook edited successfully", diff --git a/modules/Core/pages/panel/general_settings.php b/modules/Core/pages/panel/general_settings.php index a999da77af..14c99caead 100644 --- a/modules/Core/pages/panel/general_settings.php +++ b/modules/Core/pages/panel/general_settings.php @@ -110,17 +110,8 @@ $errors = [$e->getMessage()]; } - // Portal - if ($_POST['homepage'] === 'portal') { - $home_type = 'portal'; - } else if ($_POST['homepage'] === 'news') { - $home_type = 'news'; - } else if ($_POST['homepage'] === 'custom') { - $home_type = 'custom'; - } - // TODO allow to select a custom page to use content as homepage - - Settings::set('home_type', $home_type); + // Default Homepage + Settings::set('default_homepage', $_POST['homepage']); // Private profile Settings::set('private_profile', $_POST['privateProfile'] ? '1' : '0'); @@ -228,6 +219,18 @@ $displaynames = Settings::get('displaynames'); $method = Settings::get('login_method'); +$homepage_pages = []; +foreach ($pages->returnPages() as $key => $page) { + if (str_contains($key, '/panel/') || str_contains($key, '/queries/') || str_contains($key, '/user/')) { + continue; + } + + $homepage_pages[] = [ + 'value' => $key, + 'module' => $page['module'] + ]; +} + $smarty->assign([ 'PARENT_PAGE' => PARENT_PAGE, 'DASHBOARD' => $language->get('admin', 'dashboard'), @@ -257,11 +260,9 @@ 'DEFAULT_TIMEZONE' => $language->get('admin', 'default_timezone'), 'DEFAULT_TIMEZONE_LIST' => Util::listTimezones(), 'DEFAULT_TIMEZONE_VALUE' => $timezone, - 'HOMEPAGE_TYPE' => $language->get('admin', 'homepage_type'), - 'HOMEPAGE_NEWS' => $language->get('admin', 'homepage_news'), - 'HOMEPAGE_PORTAL' => $language->get('admin', 'portal'), - 'HOMEPAGE_CUSTOM' => $language->get('admin', 'custom_content'), - 'HOMEPAGE_VALUE' => Settings::get('home_type'), + 'HOMEPAGE_TYPE' => $language->get('admin', 'default_homepage'), + 'HOMEPAGE_PAGES' => $homepage_pages, + 'HOMEPAGE_VALUE' => Settings::get('default_homepage'), 'USE_FRIENDLY_URLS' => $language->get('admin', 'use_friendly_urls'), 'USE_FRIENDLY_URLS_VALUE' => Config::get('core.friendly'), 'USE_FRIENDLY_URLS_HELP' => $language->get('admin', 'use_friendly_urls_help', [ @@ -298,7 +299,7 @@ 'ENABLE_AUTO_LANGUAGE' => $language->get('admin', 'enable_auto_language'), 'AUTO_LANGUAGE_HELP' => $language->get('admin', 'auto_language_help'), 'REQUIRE_STAFFCP_TFA' => $language->get('admin', 'require_two_factor_for_staffcp'), - 'REQUIRE_STAFFCP_TFA_VALUE' => Settings::get('require_staffcp_tfa'), + 'REQUIRE_STAFFCP_TFA_VALUE' => Settings::get('require_staffcp_tfa') ]); $template->onPageLoad();