Installer Schrittliste (CMS)
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
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project