Ignore:
Timestamp:
Jun 18, 2013, 6:07:52 PM (12 years ago)
Author:
chronos
Message:
  • Přidáno: Prvotní podpora pro modulární systém.
  • Přidáno: Podpora pro používání pěkných URL.
  • Upraveno: Vstupní stránka se generuje z modulu FrontPage.
  • Upraveno: Stránka banners převedena na modul Referrer.
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        55.project
        66.buildpath
         7Query.log
  • trunk/includes/system.php

    r542 r545  
    2121  var $Database;
    2222  var $Config;
     23  var $ModuleManager;
     24  var $PathItems;
    2325 
    2426  function __construct()
     
    4042    $this->Database->ShowSQLError = $this->Config['Web']['ShowSQLError'];
    4143    $this->Database->LogSQLQuery = $this->Config['Web']['LogSQLQuery'];
     44    $this->ModuleManager = new AppModuleManager();
    4245  }
    4346 
     
    5053  function Link($Target)
    5154  {
    52     global $Config;
    53    
    54     return($Config['Web']['BaseURL'].$Target);
     55    return($this->Config['Web']['BaseURL'].$Target);
    5556  }
     57 
     58  function RegisterPage($Path, $Handler)
     59  {
     60    if(is_array($Path))
     61    {
     62      $Page = &$this->Pages;
     63      $LastKey = array_pop($Path);
     64      foreach($Path as $PathItem)
     65      {
     66        $Page = &$Page[$PathItem];       
     67      }
     68      if(!is_array($Page)) $Page = array('' => $Page);
     69      $Page[$LastKey] = $Handler;
     70    } else $this->Pages[$Path] = $Handler;
     71  }
     72 
     73  function SearchPage($PathItems, $Pages)
     74  {
     75    if(count($PathItems) > 0) $PathItem = $PathItems[0];
     76      else $PathItem = '';
     77    if(array_key_exists($PathItem, $Pages))
     78    {
     79      if(is_array($Pages[$PathItem]))
     80      {
     81        array_shift($PathItems);
     82        return($this->SearchPage($PathItems, $Pages[$PathItem]));
     83      } else return($Pages[$PathItem]);
     84    } else return('');
     85  }
     86 
     87  function PageNotFound()
     88  {
     89    return('Page '.implode('/', $this->PathItems).' not found.');
     90  }
     91 
     92  function ShowPage()
     93  {
     94    /* @var $Page Page */
     95    $ClassName = $this->SearchPage($this->PathItems, $this->Pages);     
     96    if($ClassName != '')
     97    {
     98      $Page = new $ClassName($this);
     99      $Page->GetOutput();
     100    } else echo($this->PageNotFound());
     101  }
    56102}
    57 
    58 ?>
Note: See TracChangeset for help on using the changeset viewer.