51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
<?php defined('BLUDIT') or die('Bludit CMS.');
|
|
|
|
$plugins = array(
|
|
'onSiteHead'=>array(),
|
|
'onSiteBody'=>array(),
|
|
'onSidebar'=>array(),
|
|
'onAdminHead'=>array(),
|
|
'onAdminBody'=>array()
|
|
);
|
|
|
|
function build_plugins()
|
|
{
|
|
global $plugins;
|
|
|
|
// List plugins directories
|
|
$list = Filesystem::listDirectories(PATH_PLUGINS);
|
|
|
|
// Get declared clasess before load plugins clasess, this list doesn't have the plugins clasess.
|
|
$currentDeclaredClasess = get_declared_classes();
|
|
|
|
// Load each plugin clasess
|
|
foreach($list as $pluginPath) {
|
|
include($pluginPath.'/plugin.php');
|
|
}
|
|
|
|
// Get plugins clasess loaded
|
|
$pluginsDeclaredClasess = array_diff(get_declared_classes(), $currentDeclaredClasess);
|
|
|
|
foreach($pluginsDeclaredClasess as $pluginClass)
|
|
{
|
|
$Plugin = new $pluginClass;
|
|
|
|
if($Plugin->onSiteHead()!==false)
|
|
array_push($plugins['onSiteHead'], $Plugin);
|
|
|
|
if($Plugin->onSiteBody()!==false)
|
|
array_push($plugins['onSiteBody'], $Plugin);
|
|
|
|
if($Plugin->onSidebar()!==false)
|
|
array_push($plugins['onSidebar'], $Plugin);
|
|
|
|
if($Plugin->onAdminHead()!==false)
|
|
array_push($plugins['onAdminHead'], $Plugin);
|
|
|
|
if($Plugin->onAdminBody()!==false)
|
|
array_push($plugins['onAdminBody'], $Plugin);
|
|
}
|
|
}
|
|
|
|
build_plugins();
|