Wie bereits erwähnt, ist es etwas schwierig die Menü-Einträge im Admin-Bereich unseres CMS zu bearbeiten. Deswegen habe ich das ganze auf 2 Beiträge ausgeweitet. Heute geht es erstmal um das Auswerten der eingegebenen Felder. Beim nächsten mal geht’s dann ums Update selbst.
Das Problem: Wir wissen nicht genau welche Felder wir per $_POST bekommen. Noch nicht einmal die Anzahl ist bekannt.
Die Lösung: Wird durchlaufen alle $_POST Parameter in einer Schleife und suchen uns die passenden raus.
Ihr erinnert euch vielleicht noch daran, dass es pro Eintrag 2 Textboxen gab. Sie hießen {id}_href und {id}_title, wobei das {id} immer anders ist.
Nun können wir einfach die letzten Buchstaben des Strings prüfen. Sind diese _href oder _titlle, wissen wir, dass es sich um eines der beiden Feldern ist. Darauf können wir dann auch über einen substr die ID herausfinden. Das ganze wird dann einfach in einem 2-dimensionalen Array gespeichert. Zum Schluss wird dieses noch mit print_r ausgegeben, um zu prüfen ob alles funktioniert.
Soweit die Theorie, jetzt zur Praxis:
In der Datei /admin/includes/menu-edit.php wird folgendes ergänzt:
} else if($_POST['save']){ foreach($_POST as $param=>$value){ if(strlen($param) >= 6){ if(substr($param,-5,5) == "_href"){ $entries[substr($param,0,-5)][href] = $value; } else if(strlen($param) >= 7 && substr($param,-6,6) == "_title"){ $entries[substr($param,0,-6)][title] = $value; } } } print_r($entries); } ?> <h1>Menü bearbeiten</h1>
Bei mir wird dann das hier ausgegeben:
Array ( [1] => Array ( [title] => Testseite 1 [href] => testseite.htm ) [2] => Array ( [title] => Testseite 2 [href] => testseite2.htm ) [3] => Array ( [title] => Testseite 3 [href] => testseite3.htm ) [4] => Array ( [title] => Google [href] => http://google.de ) )
Passt. War doch gar nicht so schwer, oder?
Dies ist ein Beitrag aus der Aktion Code & Blog, in der hier ein eigenes CMS erstellt wird.






Ich bin schwer am Pluginsystem dran. Wenn was postbares fertig ist schicke ich es Dir.
Kommentar von Daniel Busch — 21. Juli 2009 @ 19:11
ok, coole Sache. Freu mich schon drauf
Kommentar von Stefan Wienströer — 21. Juli 2009 @ 19:42