Einen schönen guten Abend Breadfish,
hier möchte ich nun mein UCP veröffentlichen, welches bis vor wenigen Tagen für German CrimeTime(Nein nicht das CrimeTime von Shain & BlackAce) von mir entwicklet wurde. Eine Live Ansicht könnt ihr, sofern gewünscht einmal bei GCT sehen http://cp.cops-robbers.de/(Zugangsmöglichkeit nur mit Account auf dem Server) oder auch auf meiner Demo Site http://demo.lukas-kaemmerling.de/ucp/(User: Demo; Passwort: demo). Das Design des UCPs wurde dem Forumsstil nachempfunden, ist allerdings komplett selber geschrieben. Es wird Bootstrap genutzt. Die Grafiken wurden von .ReeduZ erstellt, er hat mir die nötige Befähigung zum mitveröffentlichen seiner Werke gegeben.
Dieses User Control Panel befand sich zum Zeitpunkt der Stilllegung der Entwicklung in einer relativen frühen Phase. Es können, und werden noch Bugs auftreten & wahrscheinlich sind auch noch kleine Lücken drin, das kann man nunmal einfach nicht aussschließen
Die Datenbank liegt bei, ist allerdings bis auf einige DummyDaten komplett geleert. Im Ordner: core\config findet ihr eine system.config.php . Dort sind die MySQL Daten einzutragen.
Kurze Auflistung der Feautres:
- Keybinder API (Dokumentation [falls nicht gelöscht]: http://german-crimetime.de/boa…binder-api-dokumentation/ )
- Dynamisches Profil System für Gruppen & User ( core/config/profil.config.php)
- Mehrsprachen System (core/config/lang.config.php -> core/config/lang)
- OOP & einfache Möglichkeit Userdaten zu verwalten (Jedes Objekt hat eine feste Struktur -> core/libs/data_models/)
- View & Logik sind getrennt (Logik: core/libs/controller | core/libs/system )
- Eigenes Framework welches Daten in den richtigen Context lädt & eine Trennung der Schichten zulässt.
Nun das waren so im kurzen die Auflistung der Funktionen. Gibt natürlich auch noch die Standart Sachen, wie eigenen Nutzer bearbeiten, News schreiben, Wartungsmodus und co, das ist aber nicht erwähnenswert.
Und da ja eig ein Pastebin dabei sein muss, ich allerdings nicht das ganze Projekt Patebinnen kann hier die index.php
<?phpsession_start();$start = microtime();header('Content-Type: text/html; charset=utf-8');error_reporting(0);require_once("core/GCTCore.class.php");$config = GCTCore::getConfig();$page = @$_GET['p'];if (empty($page)) { $page = "home";}if (isset($_GET['lang'])) { setcookie("lang", @$_GET['lang']); $lang = @$_GET['lang'];} else { $lang = $_COOKIE['lang'];}if (empty($lang)) { $lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);}global $LANG;try{ GCTCore::initLanguageSystem($lang);} catch(Exception $ex){ SystemException::ShowException($ex);}GCTCore::LoadController("user", "user");?><!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>GCT-UCP</title> <link rel="stylesheet" type="text/css" href="bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="gct-style.css"> <script> (function(i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function() { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA*****-2', '*****e'); ga('send', 'pageview'); </script> </head> <body> <div id="gct-header"> <div class="gct-menu"> <ul> <li><a href="?p=home"><?php echo GCTCore::GetLangVar($LANG['Index']['Mainmenu']['Home']); ?></a></li> <?php if (isset($_SESSION['user_id']) && $_SESSION['user_id'] != "0") { ?> <li><a href="?p=user\profil"><?php echo GCTCore::GetLangVar($LANG['Index']['Mainmenu']['Profil']); ?></a></li> <?php } ?> <!--<li><a href="?p=member">Mitglieder</a></li>--> <li><a href="?p=server_stats"><?php echo GCTCore::GetLangVar($LANG['Index']['Mainmenu']['Stats']); ?></a></li> </ul> </div> <div class="gct-usermenu"> <ul> <li class="pull-left"><div class="btn-group"> <button type="button" class="btn btn-primary btn-xs"><?php echo GCTCore::GetLangVar($LANG['Index']['Mainmenu']['Speak']); ?></button> <button type="button" class="btn btn-primary dropdown-toggle btn-xs" data-toggle="dropdown"> <span class="caret"></span> <span class="sr-only">Toggle Dropdown</span> </button> <ul class="dropdown-menu" role="menu"> <?php for ($i = 0; $i < count($KONFIG['GCTCore']['Language']); $i++) { ?> <li><a href="?p=<?php echo $page; ?>&lang=<?php echo $KONFIG['GCTCore']['Language'][$i]['Filename']; ?>" class="pull-left"><?php echo GCTCore::GetIcon($KONFIG['GCTCore']['Language'][$i]['Icon'],"16","16") . $KONFIG['GCTCore']['Language'][$i]['Name']; ?></a></li> <?php } ?> </ul> </div> </li> <?php if (isset($_SESSION['user_id']) && $_SESSION['user_id'] != "0") { $user_data = User::GetData($_SESSION['user_id']); ?> <li><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Greeting']); ?> <?php echo $user_data->username; ?></li> <li><a href="?p=logout"><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Logout']); ?></a></li> <li><a href="?p=user\account\home"><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['AccountChange']); ?></a></li> <li><a href="?p=user\ts3"><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Teamspeak']); ?></a></li> <?php if ($user_data->api_access == "1") { ?> <li><a href="?p=api\home"><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Api']); ?></a></li> <?php } /* if ($user_data->leader == "1") { ?> <li><a href="?p=group\home">Leader Menü</a></li> <?php }*/ if ($user_data->admin != 0) { ?> <?php if ($user_data->admin >= $KONFIG['GCTCore']['Rights']['Suppanel']) { ?> <li><a href="?p=suppanel\home"><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Suppanel']); ?></a></li><?php } ?> <?php if ($user_data->admin >= $KONFIG['GCTCore']['Rights']['Adminpanel']) { ?><li><a href="?p=adminpanel\home"><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Adminpanel']); ?></a></li><?php } ?> <?php if ($user_data->title == "Teamleiter") { ?><li><a href="?p=devpanel\home"><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Devpanel']); ?></a></li><?php } } } else { ?> <li><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Greeting']); ?> <?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Guest']); ?></li> <li><a href="?p=login"><?php echo GCTCore::GetLangVar($LANG['Index']['Usermenu']['Login']); ?> </a></li> <?php } ?> </ul> </div> </div> <div id="gct-content"> <div class="gct-container"> <?php if ($config->maintancemode == 1) { ?> <div class="alert alert-warning"> <?php $replaces = array("arguments" => array("{maintancereason}"), "replaces" => array($config->maintancetext)); ?> <div class="pull-left"><?php echo GCTCore::GetIcon("noticeM"); ?></div><div class="center-block" style="padding-left:50px;"><?php echo GCTCore::GetLangVar($LANG['Index']['Maintance'],$replaces); ?></div> </div> <?php } if ($config->maintancemode == 0 OR isset($_SESSION['user_id'])) { $page = explode("",$page); ($page[1] !== null) ? ($page[2] !== null) ?$page = $page[0]."/".$page[1]."/".$page[2] :$page = $page[0]."/".$page[1] : $page = $page[0]; if (isset($_SESSION['user_id']) && $_SESSION['user_id'] != "0" OR $page == "login" OR $page == "server_stats" OR $page == "home" OR $page == "losepw") { if (file_exists("page/" . $page . ".page.php")) { require("page/" . $page . ".page.php"); } else { require("page/404.page.php"); } } else { ?> <div class="alert alert-warning"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <div class="pull-left"> <?php echo GCTCore::GetIcon("noticeM"); ?></div> <div class="center-block"><?php echo GCTCore::GetLangVar($LANG['Index']['OnlyLogin']); ?></div> </div> <?php require("page/home.page.php"); } } else { require("page/login.page.php"); } ?> <div class="clearfix"></div> </div> </div> <div style="clear:both;"></div> <div id="footer"> <?php echo $KONFIG['GCTCore']['Copyright']['All']; ?> Design: <?php echo $KONFIG['GCTCore']['Copyright']['Design']; ?> Programmierung:<?php echo $KONFIG['GCTCore']['Copyright']['Code']; ?> Version : <?php echo $KONFIG['GCTUCP']['Version'] ?> </div> <script src="https://code.jquery.com/jquery-1.10.2.min.js" async defer></script> <script src="http://statics.cops-robbers.de/js/bootstrap.min.js" async defer></script> </body></html><?php$end = microtime();$input = "[".($end-$start)."ms] [".$page."]";LogMaker::WriteInLog("index", $input);?>
Und zu guter letzt natürlich der Download des gesamten Paketes:
Klick
Und da es ja mein geschriebenes UCP ist, kann ich damit auch machen was ich will
Mit freundlichen Grüßen
$this->getUser();
Edit 1 & 2: Kleine Fehler behoben