Gespräch vereinbaren
Werbung
FeatValue
Das Kundenportal für Agenturen und Freelancer
Integriert sich in das bestehende Projektmagement-System
Kostenlos registrieren

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 meine Software FeatValue.

Über mich

Stefan Wienströer

Ich entwickle Webanwendungen mit viel Leidenschaft. Mein Wissen gebe ich dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, diese Website noch besser zu machen. Ich nutze Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern