Im letzten Beitrag der Aktion “Eigenes CMS” haben wir bereits die Form für das Menü-Eintrag hinzufügen erstellt. Heute soll die Form genau dies auch machen können.
Da wir schon eine Menü-Klasse haben, können wir auch schön objektorientiert dort einen Eintrag hinzufügen. Dafür gibt es die neue Methode addEntry. Sie bekommt die folgenden Parameter:
- $menu: MenüId, in welcher der Eintrag hinzugefügt werden soll
- $title: Titel des neuen Eintrags
- $href: Url des Ziels
In der Tabelle cms_menu hat auch jeder Eintrag eine eigene ID. Dies bestimmt die Reihenfolge der Einträge. Wir benötigen hier die höchste ID + 1 für den neuen Eintrag.
Danach fügen wir einfach via Insert den Eintrag hinzu (Datei /system/classes/menu.php):
function addEntry($menu,$title,$href){ global $dbpraefix; $res = mysql_query("SELECT MAX(id) FROM ".$dbpraefix."menu WHERE menuID = '".$menu."'"); $row = mysql_fetch_row($res); $id = $row[0] + 1; return mysql_query("INSERT INTO ".$dbpraefix."menu (id,menuID,title,href) VALUES('".$id."','".$menu."', '".$title."','".$href."')"); }
Nun muss das ganze nur noch im Admin-Menü ausgeführt werden. Natürlich mit Validierung: (Datei /admin/includes/menu-edit.php):
<?PHP if($_POST['add']){ if(trim($_POST['newtitle']) != ""){ if(trim($_POST['newurl']) != ""){ $res = Menu::addEntry(mysql_real_escape_string($_GET['menu']), mysql_real_escape_string($_POST['newtitle']), mysql_real_escape_string($_POST['newurl'])); if($res){ echo "<p>Eintrag hinzugefügt!</p>"; } else{ echo "<p>Eintrag nicht hinzugefügt!</p>"; } } else{ echo "<p>Bitte geben Sie ein Link-Ziel ein</p>"; } } else{ echo "<p>Bitte geben Sie einen Link-Titel ein</p>"; } } ?> <h1>Menü bearbeiten</h1> ...
Zum Testen hab ich in meinem Menü mal Google einen Backlink spendiert^^
Freut ihr euch auch schon aufs Bearbeiten der Einträge? Ich kann euch versprechen, dass es nicht leicht wird
Dies ist ein Beitrag aus der Aktion Code & Blog, in der hier ein eigenes CMS erstellt wird.




