Hallo Retrotown,
CloudCMS lautet der Name meines aktuellsten Development Projekt. Nachdem das von mir programmierte HolyCMS mittlerweile im Umlauf gekommen ist und es überwiegend positive Kommentare ernte, möchte ich nun eine zu 100% selbstständige Version programmieren. Das CloudCMS legt Wert auf ein Habbotreu gehaltenes Design. Gesteuert wird ein Großteil des CMS mit dem ACP, weswegen auch Webmarketing-Funktionen, wie wir sie zum Beispiel in WBB kennen, im ACP änderbar sind. Eine Liste mit folgenden Funktionen gebe ich gerne heraus.
- Gäste-Startseite ( Login und Verlinkung zur Registration )
- Formular für Accounterstellung.
- E-mail Bestätigung ( Freiwillige Bestätigung )
- Startseite mit Blogfunktionen ( Wichtigste Informationen, Newsvorschau, Eventvorschau )
- News mit Feedback Optionen ( Kommentarfunktion, Newsbewertung )
- Community Seite ( Diesmal entsprechende Seiten für die Community )
- Shop Seite ( Premium-Shop, Custom Shop, Shop )
- Premium Forum.
- User-Profil mit Statistiken.
- Feedback Inhalte zum Hotel.
- Bewertungs Inhalte zum Hotel.
Es wird hierbei auf Sicherheit und saubere Codes geachtet. Erwartet kein dickes OOP CMS mit großen Systemen. as CMS wird mit einfachen Codes geschrieben, so dass jeder es bedienen und ändern kann. Feedback ist sehr gerne erwünscht, vor allem in der Aufbauphase. Falls ihr Funktionen kennt, die relevant sind, wäre ich überaus erfreut, wenn ihr mir eure Ideen präsentiert. Da ich aktuell in anderen Projekten vertreten bin, die meine technische Unterstützung benötigen, wird die Aufbauphase genutzt, um möglichst viel Feedback einzufordern.
Screens
Spoiler anzeigen
Snippets
Spoiler anzeigen
<?php
class Connection {
protected static $connection;
public function __construct() {
self::$connection = mysqli_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA);
self::$connection->query("SET NAMES 'utf-8'");
}
public static function getConnection() {
if(!self::$connection) {
new Connection();
}
return self::$connection;
}
}
?>
Alles anzeigen
?php
class UserManager {
public $loadedUsers = array();
private $connection;
public function __construct(Connection $connection) {
$this->connection = $connection;
}
public function getUserByUsername($username) {
if(isset($this->loadedUsers[$username])) {
return $this->loadedUsers[$username];
} else {
$result = $this->connection->query("SELECT * FROM users WHERE id = '".$this->connection->real_escape_string($username)."'") or die($this->connection->error);
if($result->num_rows > 0) {
$row = $result->fetch_object();
$this->loadedUsers[$row->username] = new User($row, $this->connection);
return $this->loadedUsers[$row->username];
} else {
echo 'Username nicht gefunden';
return false;
}
}
}
public function verifyLogin($username, $password){
if(!empty($username) AND !empty($password))
{
$result = $this->connection->query("SELECT * FROM users WHERE username = '".$this->connection->real_escape_string($username)."' AND password = '".md5($this->connection->real_escape_string($password))."'");
if($result->num_rows > 0)
{
$userdata = $result->fetch_object();
$_SESSION['userID'] = $userdata->id;
$_SESSION['mail'] = $userdata->mail;
$_SESSION['taler'] = $userdata->credits;
$_SESSION['pixel'] = $userdata->pixels;
$_SESSION['stars'] = $userdata->stars;
$_SESSION['look'] = $userdata->style;
$_SESSION['motto'] = $userdata->motto;
$_SESSION['rank'] = $userdata->rank;
} else {
return 'userdata';
}
} else {
return 'empty-fields';
}
}
}
?>
Alles anzeigen
public function CreateUser($reguser, $regpw, $repw, $regmail){
if(!empty($reguser) && !empty($regpw) && !empty($repw) && !empty($regmail)){
$check = Connection::getConnection()->query("SELECT * FROM users WHERE username = '". Connection::getConnection()->real_escape_string($reguser) . "' OR mail = '". Connection::getConnection()->real_escape_string($regmail) . "'");
if($check->num_rows > 0){
return 'data-exist-error';
} elseif($regpw != $repw) {
return 'repw-error';
} elseif(strlen($reguser) < 3) {
return 'reguser-error';
} elseif(strlen($regpw) < 5) {
return 'regpw-error';
} else {
$createuser = Connection::getConnection()->query("INSERT INTO users SET username = '". Connection::getConnection()->real_escape_string($reguser) . "', password = '". md5(Connection::getConnection()->real_escape_string($regpw)) . "', mail = '". Connection::getConnection()->real_escape_string($regmail) . "'");
}
}
}
Alles anzeigen
public function getEvent(){
$row = Connection::getConnection()->query("SELECT * FROM eventlist ORDER BY id DESC LIMIT 1");
if($row->num_rows > 0){
$event = $row->fetch_object();
return $event;
} else {
return 'event-not-found';
}
}
Alles anzeigen