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

Schrittfestlegung, Willkommenstext + Lizenz

Code & Blog Logo

Heute gibt es viel zu tun im Installer des CMS Tutorials: Alle Schritte werden festgelegt, der Willkommenstext wird geschrieben und die Lizenz bestimmt.

Fangen wir mal mit dem Willkommenstext an. Dieser ist in den Bisherigen Schritten bereits in /installer/installer.php in der Funktion addWelcomePage enthalten. Diese Funktion müssen wir also nur noch ändern. Ich habe mich für folgenden Text entschieden:

Willkommen zur ContentLion Installation!

Sie haben mit ContentLion eine gute Wahl getroffen.
ContentLion ist ein simples und stabiles CMS,
was Sie nicht im Stich lässt!

Wenn Sie doch Probleme bei der Installation haben,
kann Ihnen dieser Artikel weiterhelfen.

Die Funktion muss dann so aussehen:

  private function addWelcomePage(){
      $step['headline'] = 'Willkommen';
      $step['content']  = '<p>
Willkommen zur ContentLion Installation!</p>
      <p>
Sie haben mit ContentLion eine gute Wahl getroffen.<br />
ContentLion ist ein simples und stabiles CMS, <br />
was Sie nicht im Stich l&auml;sst!
      </p><p>
        Wenn Sie doch Probleme bei der Installation haben, <br />
        kann Ihnen 
<a href="http://www.contentlion.de/doku.htmlindex.php?title=Installation">
          dieser Artikel
        </a>
        weiterhelfen.
      </p>';
      $this->steps[] = $step;
    }

Für eine vernünftige Anzeige des Links müssen wir noch etwas CSS in die /install.php einfügen:

a{
  color:#fff;
}
a:visited{
  color:#fff;
}

Ich habe noch einen kleinen Bug gefunden den wir noch beheben müssen: Die Schritte wurden nicht mehr richtig mit CSS gestaltet. Der Grund dafür liegt daran, dass wir den step nicht mehr als Parameter übergeben. Der neue Code sieht so aus:

      <?PHP
        $i = 1;
        foreach($_SESSION['installer']->steps as $step){
          echo "<li ";
          if($i < $_SESSION['installer']->step){
            echo "class='ready'>";
          }
          elseif($i == $_SESSION['installer']->step){
            echo "class='current'>";
          }
          else{
            echo "class='wait'>";
          }
          echo $step['headline']."</li>";
          $i++;
        }
      ?>

Auch bei den Schritten habe ich mir Gedanken gemacht. Das ist dabei herausgekommen:

  1. Willkommen
  2. Lizenz
  3. Systemcheck
  4. Datenbank Einstellungen
  5. Website Einstellungen
  6. Fertigstellen

Bei den Website-Einstellungen kommt die Authentifizierung hinzu. Ich denke der Rest ist verständlich.

Für die Schritte habe ich bisher nur Dummies angelegt. Da die Änderungen eigentlich eher uninteressant sind ist hier die ganze /installer/installer.php:

<?PHP
  class Installer{
    public $step     = 1;
    public $allsteps = 5;
    public $steps    =null;
    public $params   =null;

    public function __construct(){
      $this->addWelcomePage();
      $this->addLicencePage();
      $this->addCheckPage();
      $this->addDbSettings();
      $this->addSettings();
      $this->addFinish();
      $this->allsteps = sizeof($this->steps);
    }
    
    private function addWelcomePage(){
      $step['headline'] = 'Willkommen';
      $step['content']  = '<p>
Willkommen zur ContentLion Installation!</p>
      <p>
Sie haben mit ContentLion eine gute Wahl getroffen.<br />
ContentLion ist ein simples und stabiles CMS, <br />
was Sie nicht im Stich l&auml;sst!
      </p><p>
        Wenn Sie doch Probleme bei der Installation haben, <br />
        kann Ihnen 
<a href="http://www.contentlion.de/doku.htmlindex.php?title=Installation">
          dieser Artikel
        </a>
        weiterhelfen.
      </p>';
      $this->steps[] = $step;
    }
    
    private function addLicencePage(){
      $step['headline'] = 'Lizenz';
      $step['content']  = 'Lizenz';
      $this->steps[] = $step;
    }
    
    private function addCheckPage(){
      $step['headline'] = 'Systemcheck';
      $step['content']  = 'Systemcheck';
      $this->steps[] = $step;
    }
    
    public function getHeadline(){
      return $this->steps[$this->step-1]['headline'];
    }
    
    public function getContent(){
      return $this->steps[$this->step-1]['content'];
    }
    
    private function addDbSettings(){
      $step['headline'] = 'Datenbank Einstellungen';
      $step['content']  = 'Datenbank Einstellungen';
      $this->steps[] = $step;
    }
    
    private function addFinish(){
      $step['headline'] = 'Fertigstellen';
      $step['content']  = 'Fertigstellen';
      $this->steps[] = $step;
    }
    
    public function showBackButton(){
      return $this->step > 1 and $this->step != $this->allsteps;
    }
    
    public function showNextButton(){
      return $this->step < $this->allsteps-1;
    }
    
    public function showFinishButton(){
      return $this->step == $this->allsteps-1;
    }
    
    private function addSettings(){
      $step['headline'] = 'Website Einstellungen';
      $step['content']  = 'Website Einstellungen';
      $this->steps[] = $step;
    }
      
    public function validateCurrentStep(){
      return true;
    }
  }
?>

Lizenz

In letzter Zeit werde ich immer öfter auf das Lizenzmodell für ContentLion angesprochen. Da wir im nächsten Schritt auch die Lizenz anzeigen müssen, muss das jetzt mal entschieden werden.

Habt ihr Vorschläge für eine bestimmte OpenSource Lizenz? Ich kenne wohl GNU und Creative Commons, aber ich würde mal gerne etwas von euch hören. Eine Begründung wäre nicht schlecht!

Kommentare

Daniel schrieb am 07.01.2010:

Wie wäre es mit der d-fsl. http://www.dipp.nrw.de/d-fsl Zitat: Die d-fsl ist eine GPL-kompatible Open Source Lizenz. Sie ist auf das deutsche und europäische Recht zugeschnitten und unterscheidet sich dadurch von den bisherigen freien Software Lizenzen.

Daniel schrieb am 07.01.2010:

Zusatz: d-fsl heißt Deutschen Freien Software Lizenz.

Dieter schrieb am 17.09.2010:

Hallo, ich mal wieder der da gerade fürchterlich auf dem Schlauch steht. Auf der Seite install.php wird bei mir anstatt der Überschriften nur folgender Fehler angezeigt: &gt;UNDEFINED INDEX 'headline'&lt; Verweise auf den foreach loop der die Überschriften aus der Session variable holen soll: echo $step[&#039;headline&#039;].&quot;"; Bin ja mal wahrscheinlich ich, der wieder irgendwo was übersehen hat. Ich hatte aber auch schon den original code der install.php direkt kopiert mit dem geleichen Ergebnis. Wenn Ihr da eine Idee habt wo der Fehler sonst noch liegen könnte würde ich mich sehr freuen. Dieter

Dieter schrieb am 19.09.2010:

Hallo, ich schon wieder. Ich hoffe, Ihr habt noch nicht zu sehr gesucht, hab meinen Fähler gefunden. Natürlich was ganz dummes -&gt; Rechtschreibung ae anstatt ea. Ich glaube ich hab da 100 mal drübergelesen bis es mir aufgefallen ist. Dieter

Stefan Wienströer schrieb am 19.09.2010:

kann passieren, sorry hab ganz vergessen dir zu antworten. Ich hoffe du nimmst es mir nicht übel.