Kontakt aufnehmen

Installer Schrittliste (CMS)

Code & Blog

Code & Blog Logo

Bei einer Installation ist es immer gut zu wissen, wie lange es noch dauert. Deswegen wird in der Installation unseres CMS heute eine Schrittliste gebastelt.

Hierfür gibt es in der Klasse /installer/installer.phpeine neue Eigenschaft namens Steps. Hier werden beim ersten Aufruf alle Schritte hereingeschrieben. Jeder Schritt ist ein Array. Er hat eine headline und den Content.

Bei getContent wird der Inhalt des aktuellen Schritts zurückgegeben:

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

    public function __construct(){
      $this->addWelcomePage();
      $this->addDbSettings();
      $this->addAuth();
      $this->allsteps = sizeof($this->steps);
    }
    
    private function addWelcomePage(){
      $step['headline'] = 'Willkommen';
      $step['content']  = 'Willkommen zur ContentLion Installation!';
      $this->steps[] = $step;
    }
    
    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 addAuth(){
      $step['headline'] = 'Authentifizierung';
      $step['content']  = 'Authentifizierung';
      $this->steps[] = $step;
    }
  }
?>

In der /install.php wird das ganze nun als Liste ausgegeben. Außerdem habe ich noch hinzugefügt, dass man den Schritt per $_GET setzen kann:

<?PHP
  include('installer/installer.php');
  session_start();
  if(!isset($_SESSION['installer'])){
    $_SESSION['installer'] = new Installer();
  }
  if($_GET['step']){
    $_SESSION['installer']->step = $_GET['step'];
  }
?>
<html>
  <head>
    <title>Installation ContentLion</title>
  </head>
  <body>
    <ol>
      <?PHP
        $i = 1;
        foreach($_SESSION['installer']->steps as $step){
          echo "<li ";
          if($i < $_GET['step']){
            echo "class='ready'>";
          }
          elseif($i == $_GET['step']){
            echo "class='current'>";
          }
          else{
            echo "class='wait'>";
          }
          echo $step['headline']."</li>";
          $i++;
        }
      ?>
    </ol>
    <?PHP
      echo $_SESSION['installer']->getContent();
    ?>
  </body>
</html>

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

Ü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