Ignore:
Timestamp:
Jan 17, 2012, 1:00:26 PM (13 years ago)
Author:
chronos
Message:
  • Upraveno: Správa uživatelů je nyní přetvořena na modul modulárního systému.
  • Upraveno: Hlavní objekt System je nyní odvozen z třídy ModularSystem.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Module.php

    r342 r343  
    1414  var $Database;
    1515  var $Installed;
     16  var $System;
    1617 
    17   function __construct($Database)
     18  function __construct($Database, $System)
    1819  {
    1920    $this->Database = &$Database;   
     21    $this->System = &$System;   
    2022  }
    2123 
     
    2527    foreach($this->Models as $ModelName)
    2628    {
    27       $Model = new $ModelName($this->Database);
     29      $Model = new $ModelName($this->Database, $this->System);
    2830      $Model->Install();
    2931      unset($Model);
     
    3739    foreach($this->Models as $ModelName)
    3840    {
    39       $Model = new $ModelName($this->Database);
     41      $Model = new $ModelName($this->Database, $this->System);
    4042      $Model->UnInstall();
    4143      unset($Model);
    4244    }
    4345    $this->Database->query('UPDATE Module SET Installed=0 WHERE Name="'.$this->Name.'"');
     46  }
     47 
     48  function Init()
     49  {
    4450  }
    4551}
     
    4955  var $Database;
    5056  var $Modules = array();
     57  var $Models = array();
    5158 
    5259  function __construct($Database)
     
    5562  }
    5663 
     64  function ModulePresent($Name)
     65  {
     66    return(array_key_exists($Name, $this->Modules));
     67  }
     68
    5769  function Init($Installed = true)
    5870  {
     
    6375    while($Module = $DbResult->fetch_array())
    6476    {
    65       include_once('Modules/'.$Module['Name'].'/'.$Module['Name'].'.php');
     77      include_once(dirname(__FILE__).'/'.$Module['Name'].'/'.$Module['Name'].'.php');
    6678      $ModuleClassName = 'Module'.$Module['Name'];
    67       $this->Modules[$Module['Name']] = new $ModuleClassName($this->Database);
     79      $this->Modules[$Module['Name']] = new $ModuleClassName($this->Database, $this);
     80      $this->Modules[$Module['Name']]->Init();
    6881    }     
    6982  }
     
    108121    // Load list of modules on disk
    109122    $ModulesOnDisk = array();
    110     $Files = scandir('Modules');
     123    $Files = scandir(dirname(__FILE__));
    111124    foreach($Files as $File)
    112     if(is_dir('Modules/'.$File) and ($File != '.') and ($File != '..'))
     125    if(is_dir(dirname(__FILE__).'/'.$File) and ($File != '.') and ($File != '..'))
    113126    {
    114127      $ModulesOnDisk[] = $File;
     
    120133    {
    121134      DebugLog('Adding module '.$ModuleName.' to list');
    122       include_once('Modules/'.$ModuleName.'/'.$ModuleName.'.php');
     135      include_once(dirname(__FILE__).'/'.$ModuleName.'/'.$ModuleName.'.php');
    123136      $ModuleClassName = 'Module'.$ModuleName;
    124137      if(class_exists($ModuleClassName))
    125138      {
    126         $Module = new $ModuleClassName($this->Database);     
     139        $Module = new $ModuleClassName($this->Database, $this);
    127140        $this->Database->insert('Module', array('Name' => $Module->Name,
    128141          'Version' => $Module->Version, 'Creator' => $Module->Creator,
Note: See TracChangeset for help on using the changeset viewer.