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

Seite speichern Teil1

Code & Blog Logo

Code & Blog Logo

Man kann die Seite unseres CMS bereits bearbeiten, aber was bringt das bearbeiten, wenn wir nicht speichern können? Darum geht es heute. Heute werden das Menü, der Titel und der(oder das??) Alias gespeichert. Im nächsten Teil wird dann auch der Inhalt gespeichert.

Zu erst muss aber noch ein kleiner Bug behoben werden, der mir noch aufgefallen ist. Wenn kein Menü ausgewählt ist, wir auf Seite Bearbeiten immer das erste Menü angezeigt und dieses würde dann auch beim Seite speichern genommen werden. Also fügen wir mal schnell noch einen Eintrag der Liste hinzu(Datei /admin/includes/site-edit.php):

<h2>Seitenmen&uuml;</h2>
    <select name="menu" onchange="document.form.submit();">
      <option value="0">-- Kein Men&uuml; --</option>
      <?PHP

Nun müssen wir auch noch herausfinden, ob das Formular über die Combobox, oder den Submit-Button abgeschickt wurde. Dafür müssen wir einfach den Submit-Button einen Namen geben:

<div style="clear:both;">
  <input name="save" type="submit" value="&Auml;ndern" />
</div>

Beim Speichern wollen wir natürlich schön objektorientiert bleiben. Deswegen weisen wir den $page-Objekt einfach die neuen Daten zu. Danach wird in der save-Methode, welche wir gleich erstellen, der neue Inhalt in die Datenbank gespeichert. Hier erstmal das zuweisen der /admin/includes/site-edit.php:

<?PHP
  $page = new Page();
  $page->loadProperties(mysql_real_escape_string($_GET['site']));
  if($_POST['save']){
    $page->title = mysql_real_escape_string($_POST['title']);
    $page->alias = mysql_real_escape_string($_POST['alias']);
    $page->menu = mysql_real_escape_string($_POST['menu']);
    $page->save();
  }
?>

Da sich auch der alias ändern kann, an welchem aber die Seite erkannt wird, müssen wir statt dem $_GET[’site‘] im Formular direkt den alias aus dem $page-Objekt übernehmen:

...h1>Seite bearbeiten</h1>
<form name="form" action="/admin/index.php?page=site-edit&site=<?PHP echo $page->alias; ?>" 
      method="post">
  <div style="float:left;width:50%;">

Dann sind wir auch in der site-edit.php für heute fertig. Nun geht’s zur Klasse Page (‚/system/classes/page.php‚). Diese bekommt die neue Methode save:

<?php
function save(){
  global $dbpraefix;
  return mysql_query("UPDATE ".$dbpraefix."pages SET 
                                        title = '".$this->title."',
                                        alias = '".$this->alias."',
                                        menu = '".$this->menu."' 
                      WHERE id = '".$this->id."'");
}
...