Search:

# CWIS Developers Documentation

- Main Page
- Classes
- Files

- Search for |

- File List
- File Members

# 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 ?>