From 26fd3364acad86c73748cd69459ebb9dc7553948 Mon Sep 17 00:00:00 2001 From: Frank Harris Date: Thu, 18 Jun 2026 15:16:45 -0500 Subject: [PATCH] website --- Panel/modules/website/README.md | 40 +++++++++-- Panel/modules/website/assets/css/site.css | 67 ++++++++++++++++- Panel/modules/website/assets/js/site.js | 16 ++++- Panel/modules/website/includes/footer.php | 19 ++--- Panel/modules/website/includes/navigation.php | 55 +++++++++----- Panel/modules/website/pages/home.php | 38 +++------- .../modules/website/pages/panel_features.php | 71 +++++++++++++++++++ Panel/modules/website/panel_features.php | 15 ++++ docs/modules/website.md | 54 +++++++++++--- 9 files changed, 302 insertions(+), 73 deletions(-) create mode 100644 Panel/modules/website/pages/panel_features.php create mode 100644 Panel/modules/website/panel_features.php diff --git a/Panel/modules/website/README.md b/Panel/modules/website/README.md index d6d3a310..8e0a3bf7 100644 --- a/Panel/modules/website/README.md +++ b/Panel/modules/website/README.md @@ -45,6 +45,7 @@ Panel/modules/website/ webhook.php pricing.php locations.php + panel_features.php support.php doc_asset.php api/ @@ -68,6 +69,7 @@ Panel/modules/website/ documentation.php pricing.php locations.php + panel_features.php support.php config/ config.example.php @@ -88,19 +90,47 @@ The website uses a central bootstrap instead of scattered relative paths. ## Navigation and homepage -The shared header keeps the main navigation short: +The shared header separates public navigation, account access, and action links. + +Primary navigation: - Home - Game Servers +- Pricing +- Locations +- Panel Features - Documentation - Support -- Account/Login + +Account area: + +- logged out: Login, Create Account, Cart +- logged in: My Account, My Orders, My Servers, Cart, Logout +- staff-only: Staff Dashboard + +Action links: + - Custom Projects - Control Panel -Pricing and locations pages can remain available through the footer or direct -links, but the public homepage carries concise pricing and location summaries so -the desktop and mobile menus stay focused. +`Panel Features` is an informational website page. `Control Panel` is the +external link that opens the operational GSP Panel at the configured Panel URL. + +The homepage should not duplicate the header Control Panel action with extra +promotional Control Panel blocks. Pricing and location summaries on the homepage +must use customer-facing sales language rather than internal planning notes. + +Footer placement: + +- one modest `Control Panel` link under account/services +- one `Panel Features` informational link in the explore links + +## Public copy policy + +Public website copy must never repeat developer instructions, prompt wording, +acceptance criteria, task rationale, or statements explaining where content +belongs. Internal requirements must be translated into polished customer-facing +language before they appear on public pages. ## Billing, database, and staff behavior diff --git a/Panel/modules/website/assets/css/site.css b/Panel/modules/website/assets/css/site.css index 35a37af7..b0c755a3 100644 --- a/Panel/modules/website/assets/css/site.css +++ b/Panel/modules/website/assets/css/site.css @@ -133,10 +133,48 @@ textarea { flex-wrap: nowrap; align-items: center; justify-content: flex-end; + gap: 12px; + min-width: 0; +} + +.nav-section { + display: flex; + align-items: center; + gap: 10px; + min-width: 0; +} + +.nav-inline-group { + display: flex; + align-items: center; gap: 6px; min-width: 0; } +.nav-section-public { + flex: 1 1 auto; + min-width: 0; +} + +.nav-section-account, +.nav-section-actions { + flex: 0 0 auto; +} + +.nav-account-inline, +.nav-actions-inline { + justify-content: flex-end; +} + +.nav-section-label { + display: none; + color: #b8cae5; + font-size: 0.76rem; + font-weight: 800; + letter-spacing: 0.06em; + text-transform: uppercase; +} + .nav-link { padding: 9px 10px; border-radius: 6px; @@ -1066,6 +1104,21 @@ textarea { flex-direction: column; align-items: stretch; padding-top: 12px; + gap: 16px; + } + + .nav-section { + display: grid; + gap: 8px; + } + + .nav-inline-group { + display: grid; + gap: 6px; + } + + .nav-section-label { + display: block; } .nav-link { @@ -1075,8 +1128,7 @@ textarea { } .account-menu { - border-top: 1px solid var(--line); - padding-top: 8px; + padding-top: 0; } .account-menu summary { @@ -1092,12 +1144,23 @@ textarea { border-radius: 0; background: transparent; box-shadow: none; + gap: 2px; } .account-menu-link { min-height: 42px; } + .nav-section-account .nav-inline-group, + .nav-section-actions .nav-inline-group { + justify-content: stretch; + } + + .nav-section-actions { + padding-top: 4px; + border-top: 1px solid var(--line); + } + .nav-action-secondary, .nav-action-primary { justify-content: center; diff --git a/Panel/modules/website/assets/js/site.js b/Panel/modules/website/assets/js/site.js index 966b893a..b98b3be4 100644 --- a/Panel/modules/website/assets/js/site.js +++ b/Panel/modules/website/assets/js/site.js @@ -11,8 +11,22 @@ document.addEventListener('DOMContentLoaded', () => { const expanded = toggle.getAttribute('aria-expanded') === 'true'; toggle.setAttribute('aria-expanded', expanded ? 'false' : 'true'); menu.classList.toggle('is-open', !expanded); + if (accountMenu && window.matchMedia('(max-width: 820px)').matches && expanded) { + accountMenu.open = false; + } + }); + + document.addEventListener('click', (event) => { + if (!menu.classList.contains('is-open')) { + return; + } + if (toggle.contains(event.target) || menu.contains(event.target)) { + return; + } + toggle.setAttribute('aria-expanded', 'false'); + menu.classList.remove('is-open'); if (accountMenu && window.matchMedia('(max-width: 820px)').matches) { - accountMenu.open = !expanded; + accountMenu.open = false; } }); }); diff --git a/Panel/modules/website/includes/footer.php b/Panel/modules/website/includes/footer.php index 981d30b3..fa006311 100644 --- a/Panel/modules/website/includes/footer.php +++ b/Panel/modules/website/includes/footer.php @@ -27,22 +27,23 @@ $currentUser = website_current_user();

Explore

-

Customer Access

+

Account and Services

-

Need Help?

+

Help and Projects

+ + + + diff --git a/Panel/modules/website/pages/home.php b/Panel/modules/website/pages/home.php index bcf65e1c..d9356b4b 100644 --- a/Panel/modules/website/pages/home.php +++ b/Panel/modules/website/pages/home.php @@ -25,7 +25,6 @@ $locationSummary = ['USA East', 'USA Central', 'USA West', 'Europe'];
View Game Servers Discuss a Custom Server - Open Control Panel
@@ -106,50 +105,31 @@ $locationSummary = ['USA East', 'USA Central', 'USA West', 'Europe'];
Pricing summary
-

Prices belong on the order page.

-

Actual prices are reflected on each server order page. Standard slot-based servers start at $ per slot, and most standard plans use a -slot minimum.

+

Flexible hosting for different communities.

+

Choose a game, player capacity, region, and available options for the server you want to run. Standard slot-based hosting starts at $ per slot, with most standard plans beginning at slots.

Selected lightweight legacy servers may start around $ per month.

-

+

-
Locations summary
-

Regional hosting options.

-

Locations are summarized here so visitors can get oriented without another sales page.

+
Locations
+

Hosting locations for your players.

+

Select from available regions in the United States and Europe when you configure a server. Availability can vary by game and current capacity.

-

Final availability depends on the selected game, resource needs, and current capacity.

+
-
-
-
-
- GSP control panel preview background -
-
-
-
GSP control
-

Manage servers through the GSP control panel.

-

Start, stop, and restart servers. Edit configuration files, review logs, run supported content workflows, schedule tasks, and manage operational work from the panel.

-
- -
-
-
-
-
diff --git a/Panel/modules/website/pages/panel_features.php b/Panel/modules/website/pages/panel_features.php new file mode 100644 index 00000000..f136052d --- /dev/null +++ b/Panel/modules/website/pages/panel_features.php @@ -0,0 +1,71 @@ + +
+
+

Server management without unnecessary complexity.

+

Manage your hosted game servers from a browser with tools for everyday controls, configuration, content workflows, and practical maintenance. Available options can vary by game, but the goal stays the same: straightforward control without guesswork.

+
+
+ +
+
+
+
+

Everyday Server Controls

+

Start, stop, and restart servers from one account, with clear status feedback and direct access to the server homes assigned to you.

+
+
+

Files and Configuration

+

Edit common configuration files, work with available file-management tools, and use FTP access where your service and game setup support it.

+
+
+

Monitoring and Status

+

Review current server state, logs, and operational details without relying on a separate machine or remote desktop session just to check what happened.

+
+
+
+
+ +
+
+
+
+
Content workflows
+

Mods and server content

+

Install supported server content, run scripted content installers, and use dedicated Workshop workflows where the game configuration provides them.

+
+
+
Maintenance
+

Scheduling and routine tasks

+

Use available scheduling tools for server actions and maintenance workflows, so restarts, updates, and recurring tasks do not have to be handled by hand every time.

+
+
+
Support
+

Help when you need it

+

If a game needs custom configuration, legacy hosting knowledge, or a more unusual setup, support and development help are available instead of leaving you with a stock panel and no follow-through.

+
+
+
Browser access
+

Designed for day-to-day use

+

Common controls stay available from desktop and mobile browsers, with one account linking your website orders and the servers assigned to you.

+
+
+
+
+ +
+
+
+
+

Ready to see what you can run?

+

Browse the current game-server catalog or open the control panel if you already have a hosted server with us.

+
+ +
+
+
diff --git a/Panel/modules/website/panel_features.php b/Panel/modules/website/panel_features.php new file mode 100644 index 00000000..e82de15b --- /dev/null +++ b/Panel/modules/website/panel_features.php @@ -0,0 +1,15 @@ + 'panel-features', + 'pageTitle' => 'Panel Features - Gameservers.World', + 'metaDescription' => 'See what the Gameservers.World control panel lets you manage from your browser, including server controls, files, configuration, scheduling, content workflows, and status tools.', + 'canonicalPath' => 'panel_features.php', + ] +); diff --git a/docs/modules/website.md b/docs/modules/website.md index 495484ad..2d441260 100644 --- a/docs/modules/website.md +++ b/docs/modules/website.md @@ -93,26 +93,59 @@ name, platform, price, slot range, image status, and location count visible. ## Navigation -Website footer account links are state-aware: +The shared header uses one responsive navigation implementation for every public +page. -- logged out: `Account Login`, `Order a Server`, `Control Panel` -- logged in: `My Account`, `Order a Server`, `Control Panel`, `My Servers`, `Log Out` -- staff-only links appear only for Panel admin users and still enforce website staff authorization server-side +Primary links: -The shared header uses one responsive navigation bar: +- Home +- Game Servers +- Pricing +- Locations +- Panel Features +- Documentation +- Support -- primary links: Home, Game Servers, Documentation, Support -- account menu: Login/Create Account/Cart or My Account/My Orders/My Servers/Cart/Staff Dashboard/Logout -- action links: Custom Projects and Control Panel +Account area: -Pricing and locations remain available as website pages and footer links, but they -are summarized on the homepage instead of being prominent main navigation items. +- logged out: Login, Create Account, Cart +- logged in: My Account, My Orders, My Servers, Cart, Logout +- staff-only: Staff Dashboard + +Right-side actions: + +- Custom Projects +- Control Panel + +`Panel Features` is a website information page that explains the customer +benefits of the GSP Panel. `Control Panel` is the direct external action that +opens the operational Panel at the configured Panel URL. + +The footer should contain only one modest `Control Panel` link. Public pages, +especially the homepage, must not repeat Control Panel promotions unnecessarily. Control Panel links point directly to the configured Panel domain. `My Servers` opens a website customer page that summarizes website orders and links to the Panel for live server controls. Staff Dashboard opens the website sales/billing staff area, not Panel activity logging. +## Public Copy Policy + +Public website copy must never repeat developer instructions, prompt wording, +acceptance criteria, task rationale, or explanations about where content belongs. +Internal requirements must be translated into polished customer-facing language. + +Avoid public wording such as: + +- "belongs on" +- "summarized here" +- "visitors can get oriented" +- "another sales page" +- "as requested" +- "this section was moved" + +Use direct customer-facing language instead. + ## Deployment Recommended: @@ -132,6 +165,7 @@ Recommended: - `docs.php` - `pricing.php` - `locations.php` +- `panel_features.php` - `support.php` - `login.php` - `register.php`