/** * Define some pages by default */ public static function defaults() { /** * Route App Pages (/app/{appname}/{page}) to according apps */ self::route("/app/[:appID]?/[**:page]?", function ($request) { $AppID = $request->appID; $GLOBALS['AppID'] = $AppID; $page = $request->page != "" ? "/{$request->page}" : "/"; /** * Check if App exists */ $App = new \Lobby\Apps($AppID); if ($App->exists && $App->isEnabled() && substr($page, 0, 7) != "/Admin/") { $class = $App->run(); $AppInfo = $App->info; /** * Set the title */ \Lobby::setTitle($AppInfo['name']); /** * Add the App item to the navbar */ \Lobby\UI\Panel::addTopItem("lobbyApp{$AppID}", array("text" => $AppInfo['name'], "href" => APP_URL, "position" => "left")); $page_response = $class->page($page); if ($page_response == "auto") { if ($page == "/") { $page = "/index"; } $GLOBALS['workspaceHTML'] = $class->inc("/src/Page{$page}.php"); } else { $GLOBALS['workspaceHTML'] = $page_response; } if ($GLOBALS['workspaceHTML'] == null) { ser(); } } else { ser(); } }); /** * Dashboard Page * The main Page. Add CSS & JS accordingly */ self::route("/", function () { \Lobby::setTitle("Dashboard"); \Lobby\UI\Themes::loadDashboard("head"); $GLOBALS['workspaceHTML'] = array("/includes/lib/core/Inc/dashboard.php"); }); /** * Administration */ self::route("/admin/app/[:appID]?/[**:page]?", function ($request) { $AppID = $request->appID; $GLOBALS['AppID'] = $AppID; $page = $request->page != "" ? "/Admin/{$request->page}" : "/Admin/index"; /** * Check if App exists */ $App = new \Lobby\Apps($AppID); if ($App->exists && $App->isEnabled()) { /** * Redirect /src/ files to App's Source in /contents folder */ $class = $App->run(); $AppInfo = $App->info; /** * Set the title */ \Lobby::setTitle($AppInfo['name']); /** * Add the App item to the navbar */ \Lobby\UI\Panel::addTopItem("lobbyApp{$AppID}", array("text" => "Admin > " . $AppInfo['name'], "href" => "/admin/app/{$AppID}", "position" => "left")); $page_response = $class->page($page); if ($page_response == "auto") { if ($page == "/") { $page = "/index"; } $GLOBALS['workspaceHTML'] = $class->inc("/src/Page{$page}.php"); } else { $GLOBALS['workspaceHTML'] = $page_response; } if ($GLOBALS['workspaceHTML'] === false || $GLOBALS['workspaceHTML'] == null) { ob_start(); ser("Error", "The app '<strong>{$AppID}</strong>' does not have an Admin Page"); $error = ob_get_contents(); ob_end_clean(); $GLOBALS['workspaceHTML'] = "<div class='contents'>" . $error . "</div>"; } } }); }
<table style="width: 100%;margin-top:5px"> <thead> <tr> <td>Name</td> <td>Version</td> <td>Description</td> <td>Actions</td> </tr> </thead> <tbody> <?php foreach ($Apps as $app => $null) { $App = new \Lobby\Apps($app); $data = $App->info; $appImage = !isset($data['image']) ? L_URL . "/includes/lib/core/Img/blank.png" : $data['image']; $enabled = $App->isEnabled(); ?> <tr <?php if (!$enabled) { echo 'style="background: #EEE;"'; } ?> > <td> <a href="<?php echo \Lobby::u("/admin/app/{$app}"); ?> "><?php echo $data['name']; ?> </a>
<?php require "../../../../load.php"; if (isset($_POST['s7c8csw91']) && isset($_POST['cx74e9c6a45']) && H::csrf()) { $AppID = $_POST['s7c8csw91']; // App ID $AjaxFile = urldecode($_POST['cx74e9c6a45']); // Ajax File Location $App = new \Lobby\Apps($AppID); if ($App->exists && $App->isEnabled()) { if ($AjaxFile == "") { ser(); } else { $AppClass = $App->run(); $html = $AppClass->page("/Ajax/{$AjaxFile}"); if ($html == "auto") { $html = $AppClass->inc("/src/Ajax/{$AjaxFile}"); } echo $html; } } }