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 "Instructions" => $this->Instructions,
00106 );
00107 }
00108
00116 final function ConfigSetting($SettingName, $NewValue = NULL)
00117 {
00118 if (func_num_args() > 1)
00119 {
00120 if ($NewValue === NULL)
00121 {
00122 unset($this->Cfg[$SettingName]);
00123 }
00124 else
00125 {
00126 $this->Cfg[$SettingName] = $NewValue;
00127 }
00128 if (is_callable($this->CfgSaveCallback))
00129 {
00130 call_user_func_array($this->CfgSaveCallback,
00131 array(get_class($this), $this->Cfg));
00132 }
00133 }
00134 return isset($this->Cfg[$SettingName]) ? $this->Cfg[$SettingName] : NULL;
00135 }
00136
00137
00138 # ----- PROTECTED INTERFACE ----------------------------------------------
00139
00141 protected $Name = NULL;
00143 protected $Version = NULL;
00145 protected $Description = NULL;
00147 protected $Author = NULL;
00149 protected $Url = NULL;
00151 protected $Email = NULL;
00155 protected $Instructions = NULL;
00157 protected $EnabledByDefault = FALSE;
00158
00166 protected $Requires = array();
00167
00175 protected $CfgSetup = array();
00176
00180 protected $CfgPage = NULL;
00181
00182
00183 # ----- PRIVATE INTERFACE ------------------------------------------------
00184
00186 private $Cfg;
00188 private $CfgSaveCallback;
00189
00195 final public function SetAllCfg($NewValues)
00196 {
00197 $this->Cfg = $NewValues;
00198 }
00207 final public function SetCfgSaveCallback($Callback)
00208 {
00209 $this->CfgSaveCallback = $Callback;
00210 }
00212 }
00213
00214 ?>