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 00047 function DeclareEvents() 00048 { 00049 return array(); 00050 } 00051 00058 function Install() 00059 { 00060 return NULL; 00061 } 00062 00071 function Upgrade($PreviousVersion) 00072 { 00073 return NULL; 00074 } 00075 00083 function Uninstall($RemoveData) 00084 { 00085 return NULL; 00086 } 00087 00092 final function GetAttributes() 00093 { 00094 return array( 00095 "Name" => $this->Name, 00096 "Version" => $this->Version, 00097 "Description" => $this->Description, 00098 "Author" => $this->Author, 00099 "Url" => $this->Url, 00100 "Email" => $this->Email, 00101 "EnabledByDefault" => $this->EnabledByDefault, 00102 "Requires" => $this->Requires, 00103 "CfgSetup" => $this->CfgSetup, 00104 "CfgPage" => $this->CfgPage, 00105 ); 00106 } 00107 00115 final function ConfigSetting($SettingName, $NewValue = NULL) 00116 { 00117 if (func_num_args() > 1) 00118 { 00119 if ($NewValue === NULL) 00120 { 00121 unset($this->Cfg[$SettingName]); 00122 } 00123 else 00124 { 00125 $this->Cfg[$SettingName] = $NewValue; 00126 } 00127 if (is_callable($this->CfgSaveCallback)) 00128 { 00129 call_user_func_array($this->CfgSaveCallback, 00130 array(get_class($this), $this->Cfg)); 00131 } 00132 } 00133 return isset($this->Cfg[$SettingName]) ? $this->Cfg[$SettingName] : NULL; 00134 } 00135 00136 00137 # ----- PROTECTED INTERFACE ---------------------------------------------- 00138 00140 protected $Name = NULL; 00142 protected $Version = NULL; 00144 protected $Description = NULL; 00146 protected $Author = NULL; 00148 protected $Url = NULL; 00150 protected $Email = NULL; 00152 protected $EnabledByDefault = FALSE; 00153 00161 protected $Requires = array(); 00162 00170 protected $CfgSetup = array(); 00171 00175 protected $CfgPage = NULL; 00176 00177 00178 # ----- PRIVATE INTERFACE ------------------------------------------------ 00179 00181 private $Cfg; 00183 private $CfgSaveCallback; 00184 00190 final public function SetAllCfg($NewValues) 00191 { 00192 $this->Cfg = $NewValues; 00193 } 00202 final public function SetCfgSaveCallback($Callback) 00203 { 00204 $this->CfgSaveCallback = $Callback; 00205 } 00207 } 00208 00209 ?>