Neues Menü erstellen
Die Menüs unseres CMS können wir zwar schon bearbeiten, aber das Erstellen geht bisher nur über die Datenbank. Heute werden wir das Ändern. Ich hab mir das so überlegt, dass wir auf der Menü-Erstellen Seite nur den Namen des Menüs eingeben. Wurde dieser angelegt, wird man dann zur Menü-Bearbeiten Seite geleitet, so dass man dann dort die Einträge hinzufügen kann.
Ihr erinnert euch vielleicht daran, dass die Menünamen in der Tabelle cms_menu_names stehen. Diese hat bereits eine id, jedoch ist diese nicht auto_increment. Das müssen wir nun noch ändern. Hier ist der SQL-String:
ALTER TABLE `cms_menu_names` CHANGE `id` `id` INT( 4 ) NOT NULL AUTO_INCREMENT
Kommen wir nun zur Klasse menu(Datei /system/classes/menu.php). Diese bekommt nun die Methode create. Sie fügt den Datensatz ein und gibt deren ID zurück:
function create($name){ global $dbpraefix; $res = mysql_query("INSERT INTO ".$dbpraefix."menu_names (name) VALUES ('".$name."')"); return mysql_insert_id(); }
Der Aufruf der Funktion geschieht in der Datei /admin/includes/menue-new.php, zu welcher wir bereits einen Link gesetzt haben.
Hier wird ein Formular angezeigt, wo man den Namen eingeben kann. Wird das Formular abgesendet, wird der Eintrag erstellt und ein neues Formular erstellt. Das neue Formular hat lediglich einen Button und versteckte Textboxen. Er leitet zur menu-edit.php weiter. Hier ist der Code:
<h1>Neues Menü</h1> <?PHP if(!$_POST['name']){ ?> <form action="/admin/index.php?page=menue-new" method="POST"> Name: <input name="name"><br /> <input type="submit" value="Erstellen" /> </form> <?PHP } else{ $id = Menu::create(mysql_real_escape_string($_POST['name'])); if($id){ ?> <p>Das Menü wurde erfolgreich erstellt.</p> <form action="/admin/index.php" method="GET"> <input name="page" value="menu-edit" type="hidden" /> <input name="menu" value="<?PHP echo $id; ?>" type="hidden" /> <input type="submit" value="Eintrage hinzufügen" /> </form> <?PHp } else{ echo "<p>Das Menü konnte leider nicht erstellt werden.</p>"; } } ?>
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project