Menüs im Admin-Bereich auflisten
Die Menüs unseres CMS haben im letzten Artikel Namen bekommen. Nun müssen wir sie nur noch im Admin-Bereich auflisten.
Dazu müssen wir als erstes noch Datensätze in die Tabelle cms_menu_names eintragen. Einen mit unseren Testmenüs und einen Zweiten, der bisher noch keine Einträge hat:
INSERT INTO `cms_menu_names` ( `id` , `name` ) VALUES ( '1', 'Testmenü' ), ( '2', 'Zweites Testmenü' );
Nun basteln wir uns im PhpMyAdmin oder einen Ähnlichen Tool, eine SELECT-Abfrage, mit welcher wir ein paar Daten der Menüs bekommen.
Als erstes holen wir uns nur mal die Namen und IDs aus der Tabelle cms_menu_names:
SELECT id,name FROM `cms_menu_names`
Ich würde später gerne auch die Anzahl der Einträge anzeigen. Dies machen wir am besten über ein Subselect:
SELECT id, name, ( SELECT COUNT( * ) FROM cms_menu WHERE menuID = cms_menu_names.id )count FROM `cms_menu_names`
Jetzt haben wir schonmal den Select String, den müssen wir jetzt auch in das Script einbauen. Dies geschieht in der Klasse sys (Datei system/sys.php):
function getMenues(){ $mysqlRes = mysql_query("SELECT id, name, ( SELECT COUNT( * ) FROM cms_menu WHERE menuID = cms_menu_names.id )count FROM `cms_menu_names`"); while($row = mysql_fetch_assoc($mysqlRes)){ $res[] = $row; } return $res; }
In der neuen Funktion geben wir ein zweidimensionales Array mit den jeweiligen Einträgen zurück. Diese lesen wir dann im Admin-Bereich wieder aus.
Zunächst müssen wir im Admin-Bereich die Klasse sys importieren. Hierzu fügen wir einfach den includes der Datei admin/index.php die sys-Datei hinzu:
<?PHP session_start(); include("../system/dbconnect.php"); include("../system/settings.php"); include("../system/classes/user.php"); include("../system/filterfilename.php"); include("../system/sys.php"); ?>
Zum Schluss geben wir das ganze noch in einer Tabelle aus. Diese kommt in die neue Datei admin/includes/menues.php:
<h1>Menüs</h1> <table> <thead> <tr> <td><strong>ID</strong></td> <td><strong>Name</strong></td> <td><strong>Seiten</strong></td> <td><strong>Aktionen</strong></td> </tr> </thead> <tbody> <?PHP foreach(sys::getMenues() as $menue){ ?> <tr> <td><?PHP echo $menue['id']; ?></td> <td><?PHP echo $menue['name']; ?></td> <td><?PHP echo $menue['count']; ?></td> <td>kommen später 😉</td> </tr> <?PHP } ?> </tbody> </table>
Die Aktionen werden demnächst noch hinzugefügt.
Dies ist ein Beitrag aus der Aktion Code & Blog, in der hier ein eigenes CMS erstellt wird.
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:
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
Stefan Wienströer schrieb am 10.07.2009:
Vielen Dank, geb mir Mühe. Werd mir die Seite mal ansehen.
Tobi schrieb am 23.09.2009:
kurze frage warum benutzt du hier die $dbpraefix nicht ?
Stefan Wienströer schrieb am 23.09.2009:
Kurze Antwort: Durchs Copy & Past von PhpMyAdmin Werd nen Bugfix-Beitrag darüber schreiben. Danke für den Tipp
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project