Sehr schönes CMS! Würde mich freuen, wenn es releast wird!
Wenn nicht, dann hilft nur strg+s
Released wird da nichts, kann ich dir schon sagen und ich denke, mit STRG + S wirst du nicht weit kommen.
Sehr schönes CMS! Würde mich freuen, wenn es releast wird!
Wenn nicht, dann hilft nur strg+s
Released wird da nichts, kann ich dir schon sagen und ich denke, mit STRG + S wirst du nicht weit kommen.
Codebeispiel aus dem UserModel:
<?php
class UserModel extends Model{
private $_user;
private $row;
public $Exists = false;
public function __construct($connection){
$this->connection = $connection;
}
# Sets the User
public function SetUser($user,$checkExist = true){
$user = $this->connection->real_escape_string($user);
$result = $this->connection->query("SELECT * FROM users WHERE username = '$user'");
if ($checkExist){
if ($result->num_rows > 0){
$this->row = $result->fetch_assoc();
$this->Exists = true;
$this->_user = $user;
}else{
$this->Exists = false;
}
}else{
$this->row = $result->fetch_assoc();
$this->Exists = true;
$this->_user = $user;
}
}
# Sets the User by User Data
public function SetByUserData(UserData $UserData){
$this->row = $UserData->Get();
$this->Exists = true;
$this->_user = $UserData->username;
}
public function GetUserData(){
return new UserData($this->row);
}
# Gets column of user
public function Get($col){
if (isset($this->row[$col])){
return $this->row[$col];
}else{
return false;
}
}
/* snip */
}
Alles anzeigen
Alles anzeigen
Naja, man kanns auch ohne die PHP Dateien machen.
Wenn jemand ein bisschen programmieren kann,
kann er einfach den Quellcode nehmen und die nötigen
Features einbauen. Das dauert auch nicht lange.Oder jemand aus dem Team dreht am Rad und releast sie
Gruß,
xcmalitxc
1. Aus dem Team haben nur zwei Personen den FTP-Zugang (Shoxi und ich) und wenn einer es releasen würde, dann würde er sich nur selber schaden.
2. Um das CMS 1:1 zu kopieren, sind sehr fortgeschrittene PHP-Kenntnisse notwendig und ich habe noch keinen auf RetroTown gesehen, der weiß, was ein Model-View-Controller Pattern ist, weswegen ich dies bezweifel.
Ich finds auch sehr schön gemacht.
10/10PS: Es gibt immer Leute die sich alles wirklich jeden scheiß cracken müssen
deshalb wird es wahrscheinlich sowieso bald released sein. Das ist die SzeneGruß,
xcmalitxc
Wie muss ich Cracken verstehen? Man könnte die CMS nachcoden, aber um an die orginalen PHP-Dateien zu kommen muss man die Daten unseres FTP-Servers wissen.
Ich hab lange nicht mehr so ein schönes CMS gesehen.
Das Hotel wird aufjedenfall was!
10/10PMfG
Nesquik
Zu beachten: Es geht um keine Werbung für ein Hotel, sondern dies dient als Vorstellung für das jCMS.
ZitatDie Staffpage ist nicht selbst gemacht,oder?
Das CMS was Habbor jetzt hat gefällt mir einwenig mehr als das was kommen soll
Die Staffpage wurde selbergemacht, wir haben uns aber an der HabboTimes Staffliste orientiert, weswegen es Ähnlichkeiten gibt.
ZitatWunderschönes CMS 10/10 .
Endlich was besonderes.
Releast ihr es auch?
Wir werden das CMS nicht releasen. Es wird nur exklusiv für HabboR verfügbar sein.
ZitatDie aktuellsten Informationen zum jCMS wird es nun immer auf unserer Projektseite geben: jmProjects
Unter anderem stellen wir auf dieser Seite auch verschiedene andere Projekte vor und/oder auch zum Download.
HabboR - das jCMS
Das jCMS ist die Zukunft des HabboR Hotels - in wenigen Wochen wird dieses neue System auf HabboR zu betrachten sein.
Unser neues System bietet viele neue und alte, verbesserte Funktionen. Unter anderem zählt dazu auch ein frisches Design und
eine vereinfachte Benutzeroberfläche, in welche man keine Einführung benötigt. Das Content Management System wurde in objektorientiertem PHP geschrieben.
Dabei wurde das Model-View-Controller Pattern verwendet.
Nachfolgend möchten wir ein paar Impressionen an euch weitergeben und würden Feedback bitten.
Startseite
Registration
Registration - Schritt 1
Registration - Schritt 1
Registration - Schritt 2
Registration - Schritt 3
Registration - Schritt 4
Benutzerhome (me)
Einstellungen - Allgemeines
Einstellungen - Passwort
Einstellungen - E-Mail
Community - Mitarbeiter
Währungen - Muscheln
Rolling (Spiel mit Muscheln)
VIP kaufen
Administration - Dashboard
Weitere Eindrücke werden folgen, denn es sind noch lange nicht alle Funktionen fertig.
Dieser Thread wird dann mit neuem Bildmaterial immer mal erweitert.
Wir bedanken uns für eure Meinungen.
ZitatDie aktuellsten Informationen zum jCMS wird es nun immer auf unserer Projektseite geben: jmProjects
Unter anderem stellen wir auf dieser Seite auch verschiedene andere Projekte vor und/oder auch zum Download.
Das Design ist meh.
Tabellen können etwas schöner sein.
Sieht so aus, als ob du einfach einen border für jedes <td> reingemacht hast.
Zudem ist der "Absende-Button" etwas sehr schlicht gehalten.
Hast du einen Laptop?
Richtig, und was hatte Dario geantwortet?
Er hat 74 geschrieben.
137438953472
Weil 2^n die Anzahl der Möglichkeiten bei n-Bit ist.
n ist in diesem Fall 37.
Und 2^37 = 137438953472
Die 2 kommt daher, weil ein Bit 2 verschiedene Möglichkeiten einnehmen kann.
Und der über mir:
Meinst du das Ernst oder trollst du nur?
Ich habe zu der Zeit auch mal im Hotel vorbei geschaut.
Diese Seite konnte man nach dem Login auffinden
Ich gehe mal Stark von einem Hackerangriff aus.
Sulake hätte es nicht nötig ein 10 User Hotel zu busten, und schon gar nicht eines zu hacken.
@Skadeus:
das war jetzt so unnötig das ist ein ernst gemeinter Thread...X(
Kackst du etwa nicht?
Das hört sich nach einer übelen Verstopfung an.
Ich denke du solltest mal einen Arzt aufsuchen.
Erweiterbare "User" Klasse
Moinsen,
ich hatte vor kurzer Zeit die Idee, eine Art Klassenbibliothek für Retro Hotels zu erstellen.
Da ich etwas faul bin, habe ich bisher nur die User Klasse fertiggestellt.
Diese ist, aufgrund eines eigenprogrammierten Plugin-Systems, vollkommen erweiterbar.
Da ich eine Klassenbibliothek erstellen wollte, existiert auch noch eine Factory Klasse, damit man nicht immer die MySQLi-Klasse als Parameter übergeben muss.
Funktionen:
Ein neues "User" Objekt erstellen
Eine Spalte des Benutzers ausgeben (In dem Fall: credits)
Spalten eines Benutzers verändern (In dem Fall: credits und ip_last)
$username = 'Johnix';
$user = Factory::buildUser($username);
$user->credits = 100;
$user->ip_last = $_SERVER['REMOTE_ADDR'];
$user->ExecuteUpdate(); # anstatt 2 Queries auszuführen nur einen (yay)
Anderen Benutzer als Freund hinzufügen
$username = 'Johnix';
$user = Factory::buildUser($username);
$user2 = Factory::buildUser('Bob');
$user->AddFriend($user2);
Prüfen, ob ein User mit einem anderen befreundet ist
$username = 'Johnix';
$user = Factory::buildUser($username);
$user2 = Factory::buildUser('Bob');
$user->IsFriendsWith($user2);
Und viele mehr!
Codebeispiele aus der Klasse
Methode ExecuteUpdate()
public function ExecuteUpdate(){
if ($this->Exists){
$sizeOfSetArray = sizeof($this->SetArray);
$counter = 1;
$setClause = null;
foreach ($this->SetArray as $column => $value){
$this->row->$column = $value;
$value = $this->connection->real_escape_string($value);
if ($counter == $sizeOfSetArray){
$setClause .= "$column = '$value'";
}else{
$setClause .= "$column = '$value', ";
}
$counter++;
}
$this->connection->query("UPDATE users SET $setClause WHERE username = '".$this->usr."'");
}else{
return false;
}
}
Alles anzeigen
Methode IsFriendsWith(User $user)
public function IsFriendsWith(User $user){
if ($user->Exists && $this->Exists){
return $this->connection->query("
SELECT user_one_id, user_two_id FROM messenger_friendships
WHERE user_one_id = '".$this->row->id."' AND user_two_id = '".$user->row->id."'
OR user_two_id = '".$this->row->id."' AND user_one_id = '".$user->row->id."'")->num_rows > 0;
}else{
return false;
}
}
Alles anzeigen
Das Plugin-System:
Die User-Klasse besitzt eine magische Methode, nämlich __call(), mit der aufgerufene Methoden die nicht in der Klasse vorhanden sind bearbeitet werden können.
Die __call() Methode ist so aufgebaut:
public function __call($method_name,$args){ # Plugins
$file = PHP_PATH.'RPlugins/User/'.$method_name.'.php';
if(file_exists($file)){
$nondirectAccess = TRUE;
require_once $file;
$plugin_return_value = Registry::get('PLUGIN_RETURN_VALUE');
Registry::remove('PLUGIN_RETURN_VALUE');
return $plugin_return_value;
}
}
Alles anzeigen
Und so sieht ein Beispiel Plugin (ExamplePlugin) aus.
Dies ist eine einzelne Datei (ExamplePlugin.php) und liegt im Plugin Ordner.
if (!isset($nondirectAccess)){ die("Direkter Zugriff nicht erlaubt"); }
$irgendeineZahl = 1*2*3*4*5+5;
$str = $this->row->username.": ".$this->row->credits." - ".$irgendeineZahl;
Registry::add('PLUGIN_RETURN_VALUE', $str);
Die neue Methode kann man wiefolgt aufrufen
Wie fang ich an?
Als erstes downloadest du dir das beigefügte RAR Verzeichnis und packst dessen Inhalt in einen beliebigen Ordner, in dem du diese Klasse verwenden möchtest.
Nun öffnest du die "RequireThis.php" Datei, editierst die MySQL Daten und änderst die konstante "PHP_PATH" auf den absoluten Pfad auf dem dein Ordner liegt.
Wenn zum Beispiel dein CMS auf dem Root Verzeichnis liegt, dann lautet der Code
Nun öffnest oder erstellst du eine Datei und schreibst relativ weit oben
require 'RequireThis.php';
rein. Nun kannst du in dieser Datei die Funktionen der Klasse benutzen.
Download: UserClass.RAR
Ich werde die Klassenbibliothek in unregelmäßigen Abständen erweitern und neue Funktionen hinzufügen.
Falls ihr ein Plugin erstellt habt, könnt ihr es gerne hier unter diesen Thread posten.
Du hast Verbesserungsvorschläge oder einen Fehler zu melden?
Schreibe doch einen Post unter diesem Thread oder mir eine private Nachricht.
Hallo,
um dieses Forum wenigstens etwas zu verbessern, wäre ich für ein "Edits"-Unterforum für die "Releases"-Section.
Man möge sich diesen Screenshot ansehen.
Alles Unterschrichene hat irgendwas mit einem Edit zu tun.
So könnte man bisschen Ordnung in die Release-Section bekommen und ich muss nicht immer Augenkrebs bekommen, wenn ich die ganzen Edits sehe.
Wenn der Code doch läuft und save ist, dann ist es doch egal wie hässlich er ist?
Falsch. Es gibt einen Unterschied zwischen dem:
$userList = array("Bob","Job","Flop","Cock","Bauer","Sauer","Dick");
$newCredits = 100;
foreach ($userList as $username){
mysql_query("UPDATE users SET credits = $newCredits WHERE username = '$username'");
}
und dem
$userList = array("Bob","Job","Flop","Cock","Bauer","Sauer","Dick");
$userCount = sizeof($userList);
$counter = 1;
$newCredits = 100;
$whereClause = null;
foreach ($userList as $username){
if ($userCount == $counter){
$whereClause .= 'username = \''.$username.'\'';
}else{
$whereClause .= 'username = \''.$username.'\' OR ';
}
$counter++;
}
mysql_query("UPDATE users SET credits = $newCredits WHERE $whereClause");
Alles anzeigen
Das hier ist nur ein Beispiel. Und weil sich wahrscheinlich 99% des Forums für den ersten Weg entscheiden, möchte ich lieber ein Codesnippet sehen, bevor ich etwas bewerte.
Wofür sollte er es gab eine Livedemo reicht auch aus wo liegt das Problem?
Mir reicht eine Live-Demo nicht aus, um zu bewerten, ob das Interface gut oder schlecht ist.
Nur weil die Seite schön aussieht, heißt das noch lange nicht, dass der Code gut geschrieben worden ist.
Könntest du paar Codesnippets posten?
Ach, wie schön.
Die gute alte xBox vs. PS Diskussion.
Das ich das noch erleben darf.
Und diese Begründungen sind hier großartig.
"Ich mag Konsole X nicht. Konsole Y ist viel besser"
Diese Argumentation ist so unglaublich aussagekräftig. Einfach göttlich!