<html>
<head>
 <title>Installation mastro CMS</title>
</head>
<body>
<h1>Installation mastro CMS</h1>
<?php
$allow_mastro_domain=array("www.mastro-cms.de","livedemo.mastro-cms.de");
if (eregi("mastro-cms.de",$_SERVER['SERVER_NAME'])) {
  $block="ja";
  foreach($allow_mastro_domain as $d) if ($d==$_SERVER['SERVER_NAME']) $block="nein";
  if ($block=="ja") {
    echo "Auf einem Server mit der Domäne mastro-cms.de kann das CMS nicht installiert werden.";
    exit;
  }
}

//$a=$_SERVER[DOCUMENT_ROOT];
//while (preg_match('|/$|',$a)) $a=substr($a,0,strlen($a)-1);
//define(BASEDIR,$a);
$a=explode("/",$_SERVER[SCRIPT_FILENAME]); $b=array_pop($a); $b=array_pop($a); if ($b!="admin") array_push($a,$b); $a=implode("/",$a); define(BASEDIR,$a);

if ($_REQUEST[doinstall]=='84747') {
  if (!is_writeable(BASEDIR)) exit("Das Verzeichnis ".BASEDIR." muss beschreibbar sein!");
  cmsinstall__install();
  if (file_exists(BASEDIR."/admin/upgrade.php")) {
    if (file_exists(BASEDIR."/index.html")) rename(BASEDIR."/index.html",BASEDIR."/index.html.bak");
    if (file_exists(BASEDIR."/index.htm")) rename(BASEDIR."/index.htm",BASEDIR."/index.htm.bak");
    if (file_exists(BASEDIR."/index.php")) rename(BASEDIR."/index.php",BASEDIR."/index.php.bak");
    include "admin/upgrade.php";
    cmsinstall__display_ok();
    files__delete(__FILE__);
  }
} else {
  cmsinstall__display_start();
}


function cmsinstall__display_fehler() {
  echo "Bei der Installation ist ein Fehler aufgetreten.<br />
<br />
Bitte führen Sie die Installion nocheinmal von vorne aus,<br />
inklusive dem Dateidownload von www.mastro-cms.de<br />
";
}


function cmsinstall__display_ok() {
  echo "Das mastro CMS wurde installiert.<br />
<br />
Klicken Sie auf diesen <a href='/admin'>Link</a> um zur Administrationsseite zu gelangen.<br />
<b style='color:#e02020;'>Wenn Sie das mastro CMS zum ersten mal installieren, ist das Passwort leer!</b><br />
";
}

function cmsinstall__display_start() {
  $SCRIPT=$_SERVER[REQUEST_URI];
  echo "
Dieses selbstentpackende Archiv installiert das mastro CMS.<br />
Dabei werden bereits vorhandene Installationen des mastro CMS überschrieben.<br />
Die Konfiguration und Inhalte der aktuellen Installation bleiben erhalten,<br />
jedoch müssen nach der Installation gegebenenfalls Änderungen an der<br />
Konfiguration vorgenommen werden.<br />
<br />
  ";
  $fehler=0;
  if (!is_writeable(BASEDIR)) {
    echo "<h3>Die Installation kann nicht fortgesetzt werden, weil das Install-Script nicht in<br />
    dem Verzeichnis ".BASEDIR." Dateien erstellen kann. Bitte passen Sie die Rechte im Dateisystem<br />
    für das Verzeichnis ".BASEDIR." an.</h3>";
    $fehler=1;
  }
  if (!function_exists('mcrypt_list_algorithms')) {
    echo "<h3>Ihr Webserver unterstützt mcrypt nicht, daher wird das mastro CMS nicht funktionieren.<br />
    Bitte installieren Sie Mcrypt auf dem Webserver und starten Sie die Installation neu.</h3>";
    $fehler=1;
  }
  $uname=explode(" ",strtolower(php_uname())); $uname=$uname[0];
  if (($uname!="linux")and($uname!="unix")and($uname!="freebsd")and($uname!="sunos")) {
    echo "<h3>Ihr Server-Betriebssystem muss Linux, Unix oder FreeBSD sein. Sie haben: $uname<br />
    Auf diesen System kann das mastro-CMS nicht funktionieren.</h3>";
    $fehler=1;
  }
  $v=phpversion();
  if ($v<'4.3') {
    echo "<h3>Ihre PHP-Version muss mindestents 4.3 sein: $v</h3>";
    $fehler=1;
  }
  if (ini_get('allow_url_fopen')!=1) {
    echo "<h3>Die Sicherheitseinstellungen von PHP lassen keine URL im Befehl fopen zu. (".ini_get('allow_url_fopen').")<br />
    Setzen Sie in der php.ini-Datei die Option allow_url_fopen=1, oder kontaktieren Sie ihren Webhoster.</h3>";
    $fehler=1;
  }
if( ini_get('safe_mode') ){
    echo "<h3>Die Sicherheitseinstellungen von PHP sind aktiv (SafeMode).<br />
    Wir empfehlen die SafeMode zu deaktivieren.</h3>";
}

  if ($fehler==0) {
    echo "<a href='$SCRIPT?doinstall=84747'>Klicken Sie hier um die Installation einzuleiten.</a><br />";
  }
  echo "<br />";
}


function cmsinstall__install() {
  cmsinstall__files__mkdir(BASEDIR."/admin");
  $fh=fopen("http://updates.mastro-cms.de/software/cmsinstall.data","r");
  while($line=fgets($fh)) {
//  $lines=explode("\n",$ARCHIV);
//  foreach($lines as $line) {
    $data=explode(":",$line);
    if ($data[0]=="createdir") {
      $d=base64_decode($data[1]);
      cmsinstall__files__mkdir(BASEDIR."/".$d);
    } else {
      //File
      $dateiname=base64_decode($data[1]);
      $filedata2=gzinflate(base64_decode($data[2]));
      if (strlen($filedata2)>1) {
        cmsinstall__files__savefile(BASEDIR."/".$dateiname,$filedata2);
      }
    }
  }
  fclose($fh);
}

function cmsinstall__files__savefile($filename,$content) {
  $fh=fopen($filename,'w');
  @fwrite($fh,$content);
  @fclose($fh);
  cmsinstall__files__rights($filename);
  $r=file_exists($filename);
}
function cmsinstall__files__mkdir($dir) {
  if (!file_exists($dir)) {
    $a=@mkdir($dir,0777);
    cmsinstall__files__rights($dir);
  }
  $a=false; if (is_dir($dir)) $a=true;
  return $a;
}
function cmsinstall__files__rights($file) {
  global $GLOBAL;
//  @chgrp($file,posix_getgid());
//  @chmod($file,0777);
}
?>
</body>
</html>

