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

Installer Formulare befüllen (CMS)

Code & Blog Logo

Im Installer des CMS-Tutorials werden beim zurücknavigieren derzeit die Formulare nicht wiederbefüllt. Das wird sich heute ändern. Ich habe mir eine Technik ausgedacht, mit welcher es möglich ist.

Und zwar werden im Inhalt der einzelnen Installer Schritte Variablen gesetzt. Diese werden dann in der Methode getContent der Installer Klasse mit den Parametern gefüllt. Standard-Werte müssen zu Beginn angegeben werden.

Da wir derzeit nur einen Schritt mit Formular haben fangen wir direkt damit an. Die Methode addDbSettings bekommt nun für jedes Formular-Element eine Variable zugewiesen. Unten werden dann die Standard-Werte gesetzt:

private function addDbSettings(){
      $step['headline'] = 'Datenbank Einstellungen';
      $step['content']  = '
<table>
  <tr>
    <td>Host:</td>
    <td><input name="host" value="{host}" /></td>
  </tr>
  <tr>
    <td>Datenbank:</td>
    <td><input name="database" value="{database}" /></td>
  </tr>
  <tr>
    <td>Benutzer:</td>
    <td><input name="user" value="{user}" /></td>
  </tr>
  <tr>
    <td>Passwort:</td>
    <td><input name="password" type="password" value="{password}" /></td>
  </tr>
  <tr>
    <td>Tabellen Pr&auml;fix:</td>
    <td><input name="praefix" value="{praefix}" /></td>
  </tr>
</table>';
      $this->params[3]['host']     = 'localhost';
      $this->params[3]['database'] = '';
      $this->params[3]['user']     = '';
      $this->params[3]['password'] = '';
      $this->params[3]['praefix']  = 'cl_';
      $this->steps[] = $step;
    }

Die Standard-Werte müssen übrigens immer gesetzt sein, auch wenn sie leer sind. Denn ansonsten steht dort der Name der Variable.

In der Funktion getContent müssen diese Parameter nun ausgelesen und im Html gesetzt werden. Das geht so:

    public function getContent(){
      $res =  $this->steps[$this->step-1]['content'];
      if($this->params[$this->step-1]){
        foreach($this->params[$this->step-1] as $name=>$value){
          $res = str_replace("{".$name."}",$value,$res);
        }
      }
      return $res;
    }

Für den Installer müssen wir als nächstes den Schritt Website-Einstellungen anlegen und danach die Installation abschließen. Danach kommt dann auch schon der große (interne) Alpha-Test. Die Fehler die dort auftreten werden alle bei Codeplexeingestellt und vor der Beta behoben. Mit der Beta-Version geht dann vielleicht auch die offizielle ContentLion Website online.