Kontakt aufnehmen

Menü Einträge löschen

Code & Blog Logo

Code & Blog Logo

In unserer „Eigenes-CMS-Aktion“ geht es heute um das Löschen von Menüeinträgen. Hier müssen wir als erstes in der Methode displayEditable der Klasse Menu Löschen-Buttons einfügen. Danach müssen wir in der selben Klasse eine Methode hinzufügen, die die Einträge tatsächlich löscht. Und wir brauchen natürlich noch den Aufruf in der menu-edit.php

Aber als erstes muss ich leider noch über einen Fehler im letzten Beitrag berichten. Ich habe den nur zufällig gefunden. An einer Stellen wurde $menu statt $_GET[‚menu‘] verwendet. Ich hab den Beitrag nun verbessert. Schaut’s euch am besten nochmal an: /menu-eintrage-bearbeiten-teil-2/.

So nun zur Methode displayEditable (Datei system/classes/menu.php). Hier muss wie gesagt ein Löschen-Button hinzugefügt werden. Als Name bekommt er {id}_delete, damit wir ihn später auswerten können. Hier ist der neue Code:

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]."" />
                        <input type="submit" name="".$row[0]."_delete" value="X" /><br />";
  }
}

Und wenn wir schonmal dort sind, können wir auch sofort die Methode fürs Löschen anlegen. Hier muss noch berücksichtigt werden, dass die nachfolgenden ids alle kleiner werden. So haben wir da keine Lücken drin:

function deleteEntry($menu,$id){
  global $dbpraefix;
  $res = mysql_query("DELETE FROM ".$dbpraefix."menu WHERE menuID = '".$menu."' AND id = '".$id."'");
  if($res){
    $res = mysql_query("UPDATE ".$dbpraefix."menu SET id = id - 1 WHERE id > '".$id."'");
  }
  return $res;
}

Fehlt uns nur noch der Aufruf in der /admin/includes/menu-edit.php:

...
  }
  else{
    foreach($_POST as $param=>$value){
      if(strlen($param) >= 8){
        if(substr($param,-7,7) == "_delete"){
          Menu::deleteEntry(mysql_real_escape_string($_GET['menu']),
                            mysql_real_escape_string(substr($param,0,-7)));
        }
      }
    }
  }
?>
<h1>Men&uuml; bearbeiten</h1>
...

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Kommentare

jULiM schrieb am 08.06.2011:

Komischerweise passiert, wenn ich auf den Löschen-Button klicke überhaupt nichts. Ich habe mir den Einstiegspunkt geladen und das Skript ausgetauscht aber nichts zu machen...? Was jemand an was das liegen könnte?

jULiM schrieb am 09.06.2011:

Hat sich erledigt... War ein kleines, vergessenes Anführunszeichen ;)

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern