Ignore:
Timestamp:
Nov 2, 2013, 12:10:42 AM (11 years ago)
Author:
chronos
Message:
  • Opraveno: Chování systému při čisté instalaci bez aktivních modulů.
  • Upraveno: Seznam celkových aktualiací se nyní uchovává jako metoda třídy namísto globální proměnné. Moduly se totiž vkládají ve funkci a proměnná nebyla tedy globální.
  • Přidáno: Implementace metod Install a Uninstall modulů.
File:
1 edited

Legend:

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

    r589 r590  
    4545    {
    4646            $TraceItem = $this->Trace[$DbRevision];
    47             $Output .= 'Aktualizace na verzi: '.$TraceItem['Revision'].'<br/>';     
     47            $Output .= 'Aktualizace na verzi: '.$TraceItem['Revision'].'<br/>';   
     48            echo($Output); 
    4849            $RevUpdate = $TraceItem['Function'];         
    4950            $RevUpdate($this);
     
    5859        $InstallMethod = $this->InstallMethod;
    5960        $InstallMethod($this);
     61        $this->Update();
    6062  }
    6163 
     
    8890  var $Updates;
    8991  var $Database;
     92  var $ConfigDir;
    9093 
    9194  function __construct()
    9295  {
     96    $this->ConfigDir = dirname(__FILE__).'/../..';
    9397  }
    9498 
     
    124128        $Output .= '<input type="submit" name="insert_sample_data" value="Vložit vzorová data"/> ';
    125129        $Output .= '<input type="submit" name="uninstall" value="Odinstalovat"/> ';
     130        //$Output .= $this->ShowList();
    126131      } else $Output .= '<input type="submit" name="install" value="Instalovat"/> ';
    127132    }
     
    214219  }
    215220 
     221  function ShowList()
     222  {
     223    $Output = '';
     224    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Module`');
     225    $DbRow = $DbResult->fetch_row();
     226    $PageList = GetPageList($DbRow[0]);
     227 
     228    $Output .= $PageList['Output'];
     229    $Output .= '<table class="WideTable" style="font-size: small;">';
     230     
     231    $TableColumns = array(
     232        array('Name' => 'Name', 'Title' => 'Jméno'),
     233        array('Name' => 'Creator', 'Title' => 'Tvůrce'),
     234        array('Name' => 'Version', 'Title' => 'Verze'),
     235        array('Name' => 'License', 'Title' => 'Licence'),
     236        array('Name' => 'Installed', 'Title' => 'Instalováno'),
     237        array('Name' => 'Description', 'Title' => 'Popis'),
     238        array('Name' => 'Dependencies', 'Title' => 'Závislosti'),
     239        array('Name' => '', 'Title' => 'Akce'),
     240    );
     241    $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     242    $Output .= $Order['Output'];
     243    $Query = 'SELECT *, (SELECT GROUP_CONCAT(`T1`.`Name` SEPARATOR ", ") FROM `SystemModuleDependency` '.
     244        'LEFT JOIN `SystemModule` AS `T1` ON `T1`.`Id` = `SystemModuleDependency`.`DependencyModule` '.
     245        'WHERE `SystemModuleDependency`.`Module` = `SystemModule`.`Id`) AS `Dependencies` '.
     246        'FROM `SystemModule` '.$Order['SQL'].$PageList['SQLLimit'];
     247 
     248    $DbResult = $this->Database->query($Query);
     249    while($Module = $DbResult->fetch_assoc())
     250    {
     251      if($Module['Dependencies'] != '') $Dependencies = $Module['Dependencies'];
     252      else $Dependencies = '&nbsp;';
     253      if($Module['Installed'] == 1) $Installed = 'Ano';
     254      else $Installed = 'Ne';
     255      if($Module['Installed'] == 1) $Actions = '<a href="?A=Uninstall&amp;Id='.$Module['Id'].'">Odinstalovat</a>';
     256      else $Actions = '<a href="?A=Install&amp;Id='.$Module['Id'].'">Instalovat</a>';
     257      $Output .= '<tr><td>'.$Module['Name'].'</td>'.
     258          '<td>'.$Module['Creator'].'</td>'.
     259          '<td>'.$Module['Version'].'</td>'.
     260          '<td>'.$Module['License'].'</td>'.
     261          '<td>'.$Installed.'</td>'.
     262          '<td>'.$Module['Description'].'</td>'.
     263          '<td>'.$Dependencies.'</td>'.
     264          '<td>'.$Actions.'</td></tr>';
     265    }
     266    $Output .= '</table>';
     267    $Output .= $PageList['Output'];
     268    $Output .= '<p><a href="?A=SaveToDb">Uložit do databáze</a></p>';
     269    return($Output);
     270  }
     271 
    216272  function PrepareConfig($Config)
    217273  {
    218274    $Output = '';
    219     if(!file_exists('../config.php') and !is_writable('..'))
     275    if(!file_exists($this->ConfigDir.'/config.php') and !is_writable($this->ConfigDir))
    220276      $Output .= 'Varování: Konfigurační soubor nebude možné zapsat, protože složka není povolená pro zápis!';
    221     if(file_exists('../config.php') and !is_writable('../config.php'))
     277    if(file_exists($this->ConfigDir.'/config.php') and !is_writable($this->ConfigDir.'/config.php'))
    222278      $Output .= 'Varování: Konfigurační soubor nebude možné zapsat, protože soubor config.php není povolen pro zápis!';
    223279    $Output .= '<h3>Nastavení systému</h3>'.
     
    238294      if($Def['Type'] == 'String') $Output .= '<input type="text" name="'.$Def['Name'].'" value="'.$Value.'"/>';
    239295      if($Def['Type'] == 'Password') $Output .= '<input type="password" name="'.$Def['Name'].'"/>';
     296      if($Def['Type'] == 'PasswordEncoded') $Output .= '<input type="password" name="'.$Def['Name'].'"/>';
    240297      if($Def['Type'] == 'Integer') $Output .= '<input type="text" name="'.$Def['Name'].'" value="'.$Value.'"/>';
    241298      if($Def['Type'] == 'Float') $Output .= '<input type="text" name="'.$Def['Name'].'" value="'.$Value.'"/>';
     
    259316      if($Def['Type'] == 'Password') if(array_key_exists($Def['Name'], $_POST) and ($_POST[$Def['Name']] != ''))
    260317        $Value = $_POST[$Def['Name']];
     318      if($Def['Type'] == 'PasswordEncoded') if(array_key_exists($Def['Name'], $_POST) and ($_POST[$Def['Name']] != ''))
     319        $Value = sha1($_POST[$Def['Name']]);
    261320      if($Def['Type'] == 'Integer') if(array_key_exists($Def['Name'], $_POST))
    262321        $Value = $_POST[$Def['Name']];
     
    278337      }
    279338    $ConfigText = $this->CreateConfig($Config);
    280     file_put_contents('../config.php', $ConfigText);
     339    file_put_contents($this->ConfigDir.'/config.php', $ConfigText);
    281340    $Output .= 'Konfigurace nastavena<br/>';
    282341    return($Output);
Note: See TracChangeset for help on using the changeset viewer.