0251 / 590 837 15
info@a-coding-project.de
;

Editierbare Menüs im Admin-Bereich ausgeben

Code & Blog Logo

Code & Blog Logo

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.

Kommentare

Willy schrieb am 29.09.2011:

$elementstart wird nicht übergeben, gibt Fehlermeldung: Undefined variable: elementstart Lösche ich die Variable, läufts.