mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
wscott: Patched the director to allow modules to register a function
that will be run on every page load. git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@41691 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
4cb5bd719a
commit
0d80ed0e7b
@ -336,13 +336,35 @@ class Director {
|
|||||||
|
|
||||||
|
|
||||||
static $siteMode;
|
static $siteMode;
|
||||||
|
static protected $mode_additions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the site mode (if it is the public site or the cms),
|
||||||
|
* and runs registered modules.
|
||||||
|
*/
|
||||||
static function set_site_mode($mode) {
|
static function set_site_mode($mode) {
|
||||||
Director::$siteMode = $mode;
|
Director::$siteMode = $mode;
|
||||||
|
|
||||||
|
if(isset(self::$mode_additions[$mode]))
|
||||||
|
foreach(self::$mode_additions[$mode] as $extension) {
|
||||||
|
call_user_func($extension);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
static function get_site_mode() {
|
static function get_site_mode() {
|
||||||
return Director::$siteMode;
|
return Director::$siteMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows a module to register with the director to be run once
|
||||||
|
* the controller is instantiated. The optional 'mode' parameter
|
||||||
|
* can be either 'site' or 'cms', as those are the two values currently
|
||||||
|
* set by controllers. The callback function will be run at the
|
||||||
|
* initialization of the relavant controller.
|
||||||
|
*/
|
||||||
|
static function extend_site($function, $mode='site') {
|
||||||
|
self::$mode_additions[$mode][] = $function;
|
||||||
|
}
|
||||||
|
|
||||||
static protected $environment_type;
|
static protected $environment_type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user