Editierbare Menüs im Admin-Bereich ausgeben
Die Menüs werden bereits im Admin-Bereich unseres CMS ausgegeben. Nun wollen wir sie auch bearbeiten können!
Erinnert ihr euch an die Klasse menu (Verzeichnis sys/classes/menu.php)? Dort wird bisher das Menü im CMS ausgegeben. Alsoerstellen wir auch da eine Methode, wo wir das editierbare Menü ausgeben können.
Das Menü soll an der stelle noch kein Form-Element haben. Lediglich die Inputs werden ausgegeben.
Dazu können wir in der Klasse die Methode display als Basis nehmen. Es gibt pro Eintrag 2 Inputs. Einmal für die Url und einmal für den Titel. Der Name der beiden setzt sich jeweils mit der ID des Eintrags und der jeweiligen Eigenschaft zusammen:
function displayEditable($id){ global $dbpraefix; $res = mysql_query("SELECT id, title,href FROM ".$dbpraefix."menu WHERE menuID = '".$id."' ORDER BY id"); while($row = mysql_fetch_row($res)){ echo $elementstart."<input name="".$row[0]."_title" value="".$row[1]."" /> <input name="".$row[0]."_href" value="".$row[2]."" /><br />"; } }
Natürlich wollen wir die Funktion auch testen. bevor wir es im Admin-Bereich ausgeben können, müssen wir noch die Menu-Klasse in der /admin/index.php importieren. Hier sind also die neuen Includes der Datei:
<?PHP session_start(); include("../system/dbconnect.php"); include("../system/settings.php"); include("../system/classes/user.php"); include("../system/classes/menu.php"); include("../system/filterfilename.php"); include("../system/sys.php"); ?>
Nun kommt nur noch der Aufruf in die neue Datei /admin/includes/menu-edit.php:
<?PHP Menu::displayEditable(mysql_real_escape_string($_GET['menu'])); ?>
Und wer hätte es gedacht: Es läuft 😉
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
Willy schrieb am 29.09.2011:
$elementstart wird nicht übergeben, gibt Fehlermeldung: Undefined variable: elementstart Lösche ich die Variable, läufts.
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project