Plugin.php
Go to the documentation of this file.
00001 <?PHP 00002 00006 abstract class Plugin { 00007 00008 # ----- PUBLIC INTERFACE ------------------------------------------------- 00009 00014 abstract function Register(); 00015 00023 function Initialize() 00024 { 00025 return NULL; 00026 } 00027 00035 function HookEvents() 00036 { 00037 return array(); 00038 } 00039 00044 function DeclareEvents() 00045 { 00046 return array(); 00047 } 00048 00055 function Install() 00056 { 00057 return NULL; 00058 } 00059 00068 function Upgrade($PreviousVersion) 00069 { 00070 return NULL; 00071 } 00072 00080 function Uninstall($RemoveData) 00081 { 00082 return NULL; 00083 } 00084 00089 final function GetAttributes() 00090 { 00091 return array( 00092 "Name" => $this->Name, 00093 "Version" => $this->Version, 00094 "Description" => $this->Description, 00095 "Author" => $this->Author, 00096 "Url" => $this->Url, 00097 "Email" => $this->Email, 00098 "EnabledByDefault" => $this->EnabledByDefault, 00099 "Requires" => $this->Requires, 00100 "CfgSetup" => $this->CfgSetup, 00101 "CfgPage" => $this->CfgPage, 00102 ); 00103 } 00104 00112 final function ConfigSetting($SettingName, $NewValue = NULL) 00113 { 00114 if (func_num_args() > 1) 00115 { 00116 if ($NewValue === NULL) 00117 { 00118 unset($this->Cfg[$SettingName]); 00119 } 00120 else 00121 { 00122 $this->Cfg[$SettingName] = $NewValue; 00123 } 00124 if (is_callable($this->CfgSaveCallback)) 00125 { 00126 call_user_func_array($this->CfgSaveCallback, 00127 array(get_class($this), $this->Cfg)); 00128 } 00129 } 00130 return isset($this->Cfg[$SettingName]) ? $this->Cfg[$SettingName] : NULL; 00131 } 00132 00133 00134 # ----- PROTECTED INTERFACE ---------------------------------------------- 00135 00137 protected $Name = NULL; 00139 protected $Version = NULL; 00141 protected $Description = NULL; 00143 protected $Author = NULL; 00145 protected $Url = NULL; 00147 protected $Email = NULL; 00149 protected $EnabledByDefault = FALSE; 00150 00158 protected $Requires = array(); 00159 00167 protected $CfgSetup = array(); 00168 00172 protected $CfgPage = NULL; 00173 00174 00175 # ----- PRIVATE INTERFACE ------------------------------------------------ 00176 00178 private $Cfg; 00180 private $CfgSaveCallback; 00181 00187 final public function SetAllCfg($NewValues) 00188 { 00189 $this->Cfg = $NewValues; 00190 } 00199 final public function SetCfgSaveCallback($Callback) 00200 { 00201 $this->CfgSaveCallback = $Callback; 00202 } 00204 } 00205 00206 ?>