source: trunk/includes/AppModule.php@ 587

Last change on this file since 587 was 545, checked in by chronos, 12 years ago
  • 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.
File size: 1.7 KB
Line 
1<?php
2
3class AppModule
4{
5 var $Id;
6 var $Name;
7 var $Version;
8 var $License;
9 var $Creator;
10 var $Description;
11 var $Installed;
12 var $Running;
13 var $Dependencies;
14 /** @var Database */
15 var $Database;
16 /** @var System */
17 var $System;
18 /** @var ModularSystem */
19 var $Manager;
20 var $OnChange;
21
22 function __construct($System)
23 {
24 $this->System = &$System;
25 $this->Database = &$System->Database;
26 $this->Installed = false;
27 $this->Dependencies = array();
28 }
29
30 function Install()
31 {
32 }
33
34 function Uninstall()
35 {
36 }
37
38 function Start()
39 {
40 }
41
42 function Stop()
43 {
44 }
45}
46
47class AppModuleManager
48{
49 var $Modules;
50
51 function __construct()
52 {
53 $this->Modules = array();
54 }
55
56 function StartAll()
57 {
58 foreach($this->Modules as $Index => $Module)
59 {
60 //DebugLog('Init module '.$Module->Name);
61 $this->Modules[$Index]->Start();
62 }
63 }
64
65 function StopAll()
66 {
67 foreach($this->Modules as $Index => $Module)
68 {
69 //DebugLog('Init module '.$Module->Name);
70 $this->Modules[$Index]->Stop();
71 }
72 }
73
74 function ModulePresent($Name)
75 {
76 return(array_key_exists($Name, $this->Modules));
77 }
78
79 function RegisterModule(AppModule $Module)
80 {
81 $this->Modules[$Module->Name] = &$Module;
82 $Module->Manager = &$this;
83 $Module->OnChange = &$this->OnModuleChange;
84 }
85
86 function UnregisterModule($Module)
87 {
88 unset($this->Modules[array_search($Module, $this->Modules)]);
89 }
90
91 /* @return Module */
92 function SearchModuleById($Id)
93 {
94 foreach($this->Modules as $Module)
95 {
96 //DebugLog($Module->Name.' '.$Module->Id);
97 if($Module->Id == $Id) return($Module->Name);
98 }
99 return('');
100 }
101}
Note: See TracBrowser for help on using the repository browser.