added link to RL projects
This commit is contained in:
parent
a49371c3dd
commit
bb02be7daa
29 changed files with 325 additions and 36 deletions
|
|
@ -3,7 +3,7 @@
|
|||
> **Module:** `Panel/modules/addonsmanager`
|
||||
> **Status:** Phase 1 complete — UI/language cleanup, category map, VARCHAR(32) migration, installer documentation
|
||||
> **Branch:** Panel-unstable
|
||||
> **Maintained by:** WDS (GSP is a heavily customized fork of OGP)
|
||||
> **Maintained by:** Runlevel Systems (GSP is a heavily customized fork of OGP)
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<?php
|
||||
/*
|
||||
*
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
|
||||
*
|
||||
* Server Content Installer (module: addonsmanager, page: addons)
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<?php
|
||||
/*
|
||||
*
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
|
||||
*
|
||||
* Admin page: Server Content Manager (module: addonsmanager)
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/*
|
||||
*
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
|
||||
*
|
||||
* Module: addonsmanager → Server Content Manager
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/*
|
||||
*
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
|
||||
*
|
||||
* Monitor button: Server Content (module: addonsmanager)
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/*
|
||||
*
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
|
||||
*
|
||||
* Server Content Category Map
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/*
|
||||
*
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by WDS)
|
||||
* GSP - Game Server Panel (a heavily customized fork of OGP maintained by Runlevel Systems)
|
||||
*
|
||||
* User page: Server Content (module: addonsmanager, page: user_addons)
|
||||
* ─────────────────────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ require_once(dirname(__DIR__) . '/billing_bootstrap.php');
|
|||
<a href="<?php echo htmlspecialchars(function_exists('billing_url') ? billing_url('privacy.php') : 'privacy.php', ENT_QUOTES, 'UTF-8'); ?>">Privacy</a> |
|
||||
<a href="<?php echo htmlspecialchars(function_exists('billing_url') ? billing_url('tos.php') : 'tos.php', ENT_QUOTES, 'UTF-8'); ?>">TOS</a> |
|
||||
<a href="<?php echo htmlspecialchars(function_exists('billing_url') ? billing_url('server_status.php') : 'server_status.php', ENT_QUOTES, 'UTF-8'); ?>">Server Status</a> |
|
||||
<a href="https://worlddomination.dev" target="_blank" rel="noopener">Worlddomination.dev</a>
|
||||
<a href="https://runlevelsystems.com/" target="_blank" rel="noopener noreferrer">Runlevel Systems</a>
|
||||
|
||||
</div>
|
||||
<div class="last-updated" style="color:#999;font-size:0.9em;">
|
||||
|
|
|
|||
|
|
@ -40,3 +40,109 @@
|
|||
height:18px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.dragbox.bloc.rounded {
|
||||
background: linear-gradient(180deg, rgba(10, 18, 32, 0.92) 0%, rgba(14, 25, 45, 0.94) 100%);
|
||||
border: 1px solid rgba(77, 160, 255, 0.18);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 14px 32px rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
|
||||
.dragbox.bloc.rounded > h4,
|
||||
.dashboard-promo-card > h4,
|
||||
.dashboard-secondary-card > h4 {
|
||||
margin: 0 0 12px;
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 1px solid rgba(77, 160, 255, 0.18);
|
||||
color: #e6f0ff;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
|
||||
.dragbox-content {
|
||||
padding: 4px 2px 2px;
|
||||
color: #d2def4;
|
||||
}
|
||||
|
||||
.dashboard-service-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
gap: 16px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.dashboard-promo-card,
|
||||
.dashboard-secondary-card {
|
||||
padding: 18px 20px;
|
||||
background: linear-gradient(180deg, rgba(12, 22, 40, 0.94) 0%, rgba(8, 16, 29, 0.96) 100%);
|
||||
border: 1px solid rgba(77, 160, 255, 0.2);
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 16px 36px rgba(0, 0, 0, 0.24);
|
||||
}
|
||||
|
||||
.dashboard-promo-card {
|
||||
border-left: 3px solid #48c4f5;
|
||||
}
|
||||
|
||||
.dashboard-promo-card p,
|
||||
.dashboard-secondary-card p {
|
||||
margin: 0 0 12px;
|
||||
color: #d2def4;
|
||||
}
|
||||
|
||||
.dashboard-card-note {
|
||||
color: #9fb5d8;
|
||||
}
|
||||
|
||||
.dashboard-cta-button,
|
||||
.dashboard-support-link {
|
||||
display: inline-block;
|
||||
padding: 10px 16px;
|
||||
border-radius: 6px;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.dashboard-cta-button {
|
||||
background: linear-gradient(180deg, #5ac7f7 0%, #2f9fde 100%);
|
||||
border: 1px solid rgba(107, 214, 255, 0.55);
|
||||
color: #04111f;
|
||||
}
|
||||
|
||||
.dashboard-cta-button:hover,
|
||||
.dashboard-cta-button:focus {
|
||||
color: #04111f;
|
||||
text-decoration: none;
|
||||
box-shadow: 0 0 0 3px rgba(90, 199, 247, 0.18);
|
||||
}
|
||||
|
||||
.dashboard-support-link {
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border: 1px solid rgba(255, 255, 255, 0.12);
|
||||
color: #f0f5ff;
|
||||
}
|
||||
|
||||
.dashboard-support-link:hover,
|
||||
.dashboard-support-link:focus {
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
box-shadow: 0 0 0 3px rgba(90, 199, 247, 0.12);
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
.dashboard-service-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 430px) {
|
||||
.dashboard-promo-card,
|
||||
.dashboard-secondary-card {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.dashboard-cta-button,
|
||||
.dashboard-support-link {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ require_once('includes/lib_remote.php');
|
|||
function exec_ogp_module()
|
||||
{
|
||||
global $db, $settings, $loggedInUserInfo;
|
||||
|
||||
$projectRequestUrl = htmlspecialchars(gsp_project_request_url(), ENT_QUOTES, 'UTF-8');
|
||||
|
||||
$isAdmin = $db->isAdmin($_SESSION['user_id']);
|
||||
$user_id = $_SESSION['user_id'];
|
||||
|
|
@ -85,7 +87,7 @@ function exec_ogp_module()
|
|||
|
||||
// Support Resources quick link
|
||||
$title[4] = 'Support Resources';
|
||||
$content[4] ='Need help? Visit the support section to open tickets or review documentation.';
|
||||
$content[4] ='Need routine help? Use the support section for tickets, service problems, documentation, and troubleshooting with existing features.';
|
||||
$href[4] = 'home.php?m=tickets';
|
||||
|
||||
// Support
|
||||
|
|
@ -142,6 +144,20 @@ function exec_ogp_module()
|
|||
foreach ((array)$colhtml as $html)
|
||||
echo $html.'</div>';
|
||||
}
|
||||
|
||||
echo "<div class='dashboard-service-grid'>
|
||||
<div class='dashboard-promo-card'>
|
||||
<h4>CUSTOM SERVER DEVELOPMENT</h4>
|
||||
<p>Need something beyond the standard server options? Our developers can customize, repair, automate, or extend your game server with mods, scripts, integrations, migrations, and server-specific tools.</p>
|
||||
<p class='dashboard-card-note'>Tell us what you want to build or improve, and we will review the request with you.</p>
|
||||
<a class='dashboard-cta-button' href='{$projectRequestUrl}'>Request Custom Development</a>
|
||||
</div>
|
||||
<div class='dashboard-secondary-card'>
|
||||
<h4>Support and Troubleshooting</h4>
|
||||
<p>Use support when something is broken, you need routine troubleshooting, or you need help with the features already included with your service.</p>
|
||||
<a class='dashboard-support-link' href='home.php?m=tickets'>Open Support Resources</a>
|
||||
</div>
|
||||
</div>";
|
||||
|
||||
// Server Status Link - Available to all users
|
||||
echo "<div style='margin-top:20px;'>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* OGP - Open Game Panel
|
||||
* Copyright (C) 2008 - 2018 The OGP Development Team
|
||||
* GSP / WDS customisation — Migrate replaces the old Clone feature.
|
||||
* GSP / Runlevel Systems customisation — Migrate replaces the old Clone feature.
|
||||
*
|
||||
* This page lets an admin copy all files from one game server to another
|
||||
* server of the SAME game type, using rsync (Linux) or robocopy (Windows
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ Panel/modules/website/
|
|||
config/
|
||||
config.example.php
|
||||
pricing.php
|
||||
services.php
|
||||
```
|
||||
|
||||
## URL helpers
|
||||
|
|
@ -123,9 +124,40 @@ Alternate front-controller approach:
|
|||
- `billing_base_url`
|
||||
- `panel_url`
|
||||
- `login_url`
|
||||
- Runlevel Systems company and project-request URLs
|
||||
- support links
|
||||
3. Keep any environment-specific config out of Git
|
||||
|
||||
## Runlevel Systems Project Request Integration
|
||||
|
||||
The website keeps its custom-development CTA URL centralized in:
|
||||
|
||||
- `Panel/modules/website/config/services.php`
|
||||
|
||||
Optional overrides can be placed in:
|
||||
|
||||
- `Panel/modules/website/config/config.php`
|
||||
- `Panel/modules/website/config/config.local.php`
|
||||
|
||||
The current project request URL is:
|
||||
|
||||
- `https://runlevelsystems.com/start-project.php`
|
||||
|
||||
Homepage CTA location:
|
||||
|
||||
- `Panel/modules/website/pages/home.php`
|
||||
|
||||
Shared footer branding location:
|
||||
|
||||
- `Panel/modules/website/includes/footer.php`
|
||||
|
||||
The public wording distinguishes between ordinary support and project work:
|
||||
|
||||
- support is for troubleshooting, service issues, and existing features
|
||||
- project requests are for custom scripts, mods, integrations, automation, migrations, dashboards, and GSP feature work
|
||||
|
||||
Use the shared config values instead of scattering the Runlevel Systems URL or company name through templates.
|
||||
|
||||
## Pricing and Platform Reference
|
||||
|
||||
Internal pricing planning remains in:
|
||||
|
|
|
|||
|
|
@ -20,6 +20,15 @@ return [
|
|||
'panel_url' => 'https://panel.iaregamer.com/',
|
||||
'login_url' => 'https://panel.iaregamer.com/',
|
||||
|
||||
'company' => [
|
||||
'name' => 'Runlevel Systems',
|
||||
'url' => 'https://runlevelsystems.com/',
|
||||
'copyright' => "\u{00A9} 2026 Runlevel Systems",
|
||||
],
|
||||
'services' => [
|
||||
'project_request_url' => 'https://runlevelsystems.com/start-project.php',
|
||||
],
|
||||
|
||||
// Optional support links.
|
||||
'discord_url' => 'https://discord.gg/replace-me',
|
||||
'support_url' => 'https://gameservers.world/support',
|
||||
|
|
|
|||
12
Panel/modules/website/config/services.php
Normal file
12
Panel/modules/website/config/services.php
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'company' => [
|
||||
'name' => 'Runlevel Systems',
|
||||
'url' => 'https://runlevelsystems.com/',
|
||||
'copyright' => "\u{00A9} 2026 Runlevel Systems",
|
||||
],
|
||||
'services' => [
|
||||
'project_request_url' => 'https://runlevelsystems.com/start-project.php',
|
||||
],
|
||||
];
|
||||
|
|
@ -16,6 +16,7 @@ ini_set('display_errors', '0');
|
|||
$websiteConfig = [];
|
||||
$websiteConfigFiles = [
|
||||
WEBSITE_CONFIG_DIR . '/pricing.php',
|
||||
WEBSITE_CONFIG_DIR . '/services.php',
|
||||
WEBSITE_CONFIG_DIR . '/config.php',
|
||||
WEBSITE_CONFIG_DIR . '/config.local.php',
|
||||
];
|
||||
|
|
@ -40,6 +41,14 @@ $websiteDefaults = [
|
|||
'billing_base_url' => '/billing',
|
||||
'panel_url' => 'https://panel.iaregamer.com/',
|
||||
'login_url' => 'https://panel.iaregamer.com/',
|
||||
'company' => [
|
||||
'name' => 'Runlevel Systems',
|
||||
'url' => 'https://runlevelsystems.com/',
|
||||
'copyright' => "\u{00A9} 2026 Runlevel Systems",
|
||||
],
|
||||
'services' => [
|
||||
'project_request_url' => 'https://runlevelsystems.com/start-project.php',
|
||||
],
|
||||
'discord_url' => null,
|
||||
'support_url' => null,
|
||||
'support_email' => null,
|
||||
|
|
@ -445,6 +454,15 @@ function website_fetch_services(int $limit = 0): array
|
|||
|
||||
function website_custom_project_url(): string
|
||||
{
|
||||
$services = website_config('services', []);
|
||||
$projectUrl = '';
|
||||
if (is_array($services)) {
|
||||
$projectUrl = trim((string)($services['project_request_url'] ?? ''));
|
||||
}
|
||||
if ($projectUrl !== '') {
|
||||
return $projectUrl;
|
||||
}
|
||||
|
||||
$supportUrl = trim((string)website_config('support_url', ''));
|
||||
if ($supportUrl !== '') {
|
||||
return $supportUrl;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,10 @@ declare(strict_types=1);
|
|||
$discordUrl = trim((string)website_config('discord_url', ''));
|
||||
$supportUrl = trim((string)website_config('support_url', ''));
|
||||
$supportEmail = trim((string)website_config('support_email', ''));
|
||||
$company = website_config('company', []);
|
||||
$companyName = trim((string)($company['name'] ?? 'Runlevel Systems'));
|
||||
$companyUrl = trim((string)($company['url'] ?? 'https://runlevelsystems.com/'));
|
||||
$companyCopyright = trim((string)($company['copyright'] ?? "\u{00A9} 2026 Runlevel Systems"));
|
||||
?>
|
||||
</main>
|
||||
<footer class="site-footer">
|
||||
|
|
@ -15,7 +19,8 @@ $supportEmail = trim((string)website_config('support_email', ''));
|
|||
<span><?= website_escape(website_config('site_name')) ?></span>
|
||||
</a>
|
||||
<p class="footer-copy"><?= website_escape(website_config('site_tagline')) ?></p>
|
||||
<p class="footer-copy">Hosting is provided by Gameservers.World. Development, integration, and infrastructure expertise come from Runlevel Systems.</p>
|
||||
<p class="footer-copy">Hosting is provided by Gameservers.World. Development, integration, and infrastructure expertise come from <?= website_escape($companyName) ?>.</p>
|
||||
<p class="footer-copy"><a href="<?= website_escape($companyUrl) ?>" target="_blank" rel="noopener noreferrer"><?= website_escape($companyCopyright) ?></a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h2>Explore</h2>
|
||||
|
|
|
|||
|
|
@ -143,6 +143,23 @@ $platformBackupNote = trim((string)($platform['daily_backups_note'] ?? ''));
|
|||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="cta-panel cta-panel-inline">
|
||||
<div>
|
||||
<div class="kicker">Runlevel Systems</div>
|
||||
<h2>Need More Than Standard Hosting?</h2>
|
||||
<p>Gameservers.World is backed by Runlevel Systems developers. We can help customize your server with mods, scripts, integrations, automation, migrations, and features built around your community.</p>
|
||||
<p>We host the server. We can also help build what runs on it.</p>
|
||||
</div>
|
||||
<div class="stack-actions">
|
||||
<a class="button button-primary" href="<?= website_escape($customProjectUrl) ?>">Request Custom Development</a>
|
||||
<a class="button button-secondary" href="<?= website_escape(website_url('support.php')) ?>">Support and Troubleshooting</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<div class="section-heading">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue