Admin Menü erstellen
Seit dem letzten Artikel kann sich der Admin unseres CMS nun endlich einloggen. Nun braucht er auch noch ein Menü. Darum kümmern wir uns heute. Als erstes lagern wir das Login-Feld in eine Datei aus, damit die index.php im Verzeichnis admin nicht zu groß wird.
Die Datei heißt login.php und muss in dem Verzeichnis admin/includes gespeichert werden:
<form action="index.php" method="post"> Benutzer: <input name="user" /><br /> Passwort: <input name="password" type="password"><br /> <input type="submit" value="Login" /> </form>
Und wenn wir schon dabei sind, include Dateien zu schreiben, machen wir doch sofort eine Fürs Menü hinterher (Datei admin/includes/menue.php):
<ul id="adminmenue"> <li><a href="/admin">Dashboard</a></li> <li><a href="index.php?page=sites">Seiten</a></li> <li><a href="index.php?page=menues">Menüs</a></li> <li><a href="index.php?page=settings">Einstellungen</a></li> <li><a href="index.php?page=stats">Statistik</a></li> <li><a href="index.php?page=logout">Logout</a></li> </ul>
Wie ihr vielleicht schon erkannt habt, wird es in Admin keine schönen Urls (also ohne Mod Rewrite) geben, da sie hier nicht wirklich von Interesse sind.
Das Admin Menü hat die folgenden Einträge:
- Dashboard: Das wird die Startseite des Admin-Bereichs.
- Seiten: Hier kann der Admin seine Seiten verwalten.
- Menüs: Zum veralten der lokalen / globalen Menüs.
- Einstellungen: Ändert die Einstellungen in der cms_settings Tabelle
- Statistik: Zeigt aktuelle Statistiken
- Logout: Loggt den User wieder aus.
Nun müssen wir nur noch die Dateien in der index.php im Verzeichnis admin includieren. Dies sieht nun so aus:
<?PHP session_start(); include("../system/dbconnect.php"); include("../system/settings.php"); include("../system/classes/user.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml/" xml:lang="de"> <head> <title>Admin-Bereich</title> </head> <body> <?PHP $user = new User(); if($_POST['user']){ if($user->login($_POST['user'],$_POST['password'])){ $_SESSION['username'] = $_POST['user']; } else{ echo "<p>Login Fehlgeschlagen!</p>"; include('includes/login.php'); } } if(isset($_SESSION['username'])){ include('includes/menue.php'); } else{ include('includes/login.php'); } ?> </body> </html>
Das Menü sieht zwar nun noch nicht wirklich schön aus, aber es geht nun erstmal um die reinen Daten und noch nicht ums Design, dass kommt später 😉
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Kommentare
Daniel Busch schrieb am 10.07.2009:
<a href="/" rel="nofollow">Dashboard</a> <a href="index.php?page=sites" rel="nofollow">Seiten</a> <a href="index.php?page=menues" rel="nofollow">Menüs</a> <a href="index.php?page=settings" rel="nofollow">Einstellungen</a> <a href="index.php?page=stats" rel="nofollow">Statistik</a> <a href="index.php?page=logout" rel="nofollow">Logout</a> Hi. Ich schon wieder. Wenn ich bei dem Link fürs Dashboard nur den Backslash schreibe springt er auf die index.php im Rootverzeichniss. Schreibe ich aber nach dem Backslash noch admin passt es. Tschau Daniel
Stefan Wienströer schrieb am 10.07.2009:
Und schon wieder hast Du Recht :-( Werd die Seite ändern. Schön, dass DU die gefundenen Probleme meldest.
Daniel Busch schrieb am 10.07.2009:
Das hier ist ja auch ein super Tutorial. Endlich mal eins bei dem ich, trotz meines Wissens welches ich beim Erstellen unserer Gildenseite gesammelt habe, gedanklich dahinter steige was wozu gebraucht wird. Respekt!!!!!!!! Noch bin ich Soldat (seit 9 Jahren System und Nutzerbetreuer als IT-Systemelektroniker)aber ich hoffe auf ein Studium im Fachgebiet Medieninformatik. Bis zum nächsten Mal Daniel PS: Schau mal auf www.kinder-des-schnaps.de vorbei
Fynikoto schrieb am 03.06.2011:
"Schreibe ich aber nach dem Backslash noch admin" das ist leider nur die halbe Wahrheit. Liegt das Projekt nicht im root Verzeichnis, werdet ihr ein Problem bekommen! Hiermal zum aufklären der Situation: href="" <<< verweis auf die aktuelle Seite href="/" <<< Verweis auf das root verzeichnis href="/admin" <<< verweis auf das verzeichnis "admin" oberhalb des root Verzeichnisses. href="./" <<< Verweis auf das aktuelle Verzeichnis das 4te wollen wir doch eigentlich, oder? also "admin" wieder weg und dafür durch "./" ersetzten. Liebe Grüße Fynikoto
Stefan Wienströer schrieb am 08.06.2011:
An späterer Stelle wurde das Problem behoben, in dem der Installationspfad gespeichert und eingefügt wurde.
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project