Ignore:
Timestamp:
Nov 1, 2013, 4:22:59 PM (11 years ago)
Author:
chronos
Message:
  • Upraveno: Správa instalace webu přetvořena z podadresáře admin do modulu Setup. Modul setup musí být funkční i v případě nenastavené nebo nedostupné databáze, konfiguračního souboru či neinstalované nebo neaktuální databáze.
  • Přidáno: Metody Disconnect a Connected do třídy Database.
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Setup/Update.php

    r583 r589  
    11<?php
    2 
    3 include_once('Database.php');
    42
    53class UpdateManager
     
    3028  function IsInstalled()
    3129  {     
     30    debug_backtrace();
    3231          $DbResult = $this->Database->query('SHOW TABLES LIKE "'.$this->VersionTable.'"');
    3332    return($DbResult->num_rows > 0);   
     
    8887  var $Revision;
    8988  var $Updates;
     89  var $Database;
    9090 
    9191  function __construct()
     
    108108  {
    109109    $YesNo = array(false => 'Ne', true => 'Ano');
    110     $Output = '<h3>Správa instance</h3>'.
    111       'Je instalováno: '.$YesNo[$this->UpdateManager->IsInstalled()].'<br/>';
    112     if($this->UpdateManager->IsInstalled())
    113       $Output .= 'Je aktuální: '.$YesNo[$this->UpdateManager->IsUpToDate()].'<br/>'.
    114       'Verze databáze: '.$this->UpdateManager->GetDbVersion().'<br/>';
    115     $Output .= 'Verze databáze kódu: '.$this->UpdateManager->Revision.'<br/>'.
    116       '<form action="" method="post">';
    117     if($this->UpdateManager->IsInstalled())
    118     {
    119       if(!$this->UpdateManager->IsUpToDate())
    120         $Output .= '<input type="submit" name="update" value="Aktualizovat"/> ';
    121       $Output .= '<input type="submit" name="insert_sample_data" value="Vložit vzorová data"/> ';
    122       $Output .= '<input type="submit" name="uninstall" value="Odinstalovat"/> ';
    123     } else $Output .= '<input type="submit" name="install" value="Instalovat"/> ';
     110    $Output = '<form action="" method="post">';
     111   
     112    $Output .= 'Je připojení k databázi: '.$YesNo[$this->UpdateManager->Database->Connected()].'<br/>';
     113    if($this->UpdateManager->Database->Connected())
     114    {
     115      $Output .= 'Je instalováno: '.$YesNo[$this->UpdateManager->IsInstalled()].'<br/>';
     116      if($this->UpdateManager->IsInstalled())
     117        $Output .= 'Je aktuální: '.$YesNo[$this->UpdateManager->IsUpToDate()].'<br/>'.
     118        'Verze databáze: '.$this->UpdateManager->GetDbVersion().'<br/>';
     119      $Output .= 'Verze databáze kódu: '.$this->UpdateManager->Revision.'<br/>';
     120      if($this->UpdateManager->IsInstalled())
     121      {
     122        if(!$this->UpdateManager->IsUpToDate())
     123          $Output .= '<input type="submit" name="update" value="Aktualizovat"/> ';
     124        $Output .= '<input type="submit" name="insert_sample_data" value="Vložit vzorová data"/> ';
     125        $Output .= '<input type="submit" name="uninstall" value="Odinstalovat"/> ';
     126      } else $Output .= '<input type="submit" name="install" value="Instalovat"/> ';
     127    }
    124128    $Output .= '<input type="submit" name="configure" value="Nastavit"/> ';
    125129    $Output .= '<input type="submit" name="logout" value="Odhlásit"/> ';
     
    146150      } else
    147151      {
    148         date_default_timezone_set('Europe/Prague');
    149         // SQL injection hack protection
    150         foreach($_POST as $Index => $Item) $_POST[$Index] = addslashes($Item);
    151         foreach($_GET as $Index => $Item) $_GET[$Index] = addslashes($Item);
    152    
    153         if(isset($_SERVER['REMOTE_ADDR'])) session_start();
    154    
    155         $Database = new Database();
    156         $Database->Connect($this->Config['Database']['Host'], $this->Config['Database']['User'],
    157            $this->Config['Database']['Password'], $this->Config['Database']['Database']);
    158         $Database->Prefix = $this->Config['Database']['Prefix'];
    159         $Database->charset($this->Config['Database']['Charset']);
    160         $Database->ShowSQLError = $this->Config['Web']['ShowSQLError'];
    161         $Database->ShowSQLQuery = $this->Config['Web']['ShowSQLQuery'];
    162    
    163152        $this->UpdateManager = new UpdateManager();
    164         $this->UpdateManager->Database = $Database;
     153        $this->UpdateManager->Database = $this->Database;
    165154        $this->UpdateManager->Revision = $this->DatabaseRevision;
    166155        $this->UpdateManager->Trace = $this->Updates;
     
    222211    }
    223212    $Output .= '</body></html>';
    224     echo($Output);
     213    return($Output);
    225214  }
    226215 
Note: See TracChangeset for help on using the changeset viewer.