X-Git-Url: http://git.dj3c1t.com/?a=blobdiff_plain;f=mw%2Fenv%2Fmodules%2Fmw_env_plugins.php;h=b9fe042d46a078f0a62e22da27cf4a6d056cda64;hb=9dd82a1154662c0218f128e5c3eb17ae8245ad69;hp=1df183466dc47d463cacbfd5ec5d991d24921136;hpb=36ed114046cbe3d72a3589230e9f306a54fcc79d;p=mtweb diff --git a/mw/env/modules/mw_env_plugins.php b/mw/env/modules/mw_env_plugins.php index 1df1834..b9fe042 100644 --- a/mw/env/modules/mw_env_plugins.php +++ b/mw/env/modules/mw_env_plugins.php @@ -16,8 +16,8 @@ # init # - function init_plugins($PRIORITE = "ASC"){ - if(isset($this->plugins_asc) || isset($this->plugins_desc)){ + function init_plugins($PRIORITE = "ASC", $RELOAD = false){ + if(!$RELOAD && (isset($this->plugins_asc) || isset($this->plugins_desc))){ if($PRIORITE == "ASC"){ if(!isset($this->plugins_asc)) $this->plugins_asc = $this->ordonne_plugins($this->plugins_desc, $PRIORITE); } @@ -27,13 +27,6 @@ return; } $plugins = array(); - if(!class_exists("mw_plugin")){ - require $this->path("mw_dir")."plugins/mw_plugin.php"; - if(!class_exists("mw_plugin")){ - $plugins = false; - return; - } - } if($dh = opendir($this->path("mw_dir")."plugins/")){ $OK = true; while($OK && ($plugin_name = readdir($dh)) !== false){ @@ -121,6 +114,14 @@ if(method_exists($impl, $method)) return $impl->$method($this); } + function loaded_plugins(){ + if($plugins = $this->plugins()){ + foreach($plugins as $plugin_name => $plugin){ + $plugin["impl"]->loaded($this); + } + } + } + # --------------------------------------------------------------------------------- # impl # @@ -130,7 +131,9 @@ if(file_exists($this->path("mw_dir")."plugins")){ if(substr($plugin_name, 0 ,1) !== "." && is_dir($this->path("mw_dir")."plugins/".$plugin_name)){ if(file_exists($this->path("mw_dir")."plugins/".$plugin_name."/".$plugin_name.".php")){ - require $this->path("mw_dir")."plugins/".$plugin_name."/".$plugin_name.".php"; + if(!class_exists($plugin_name)){ + require_once $this->path("mw_dir")."plugins/".$plugin_name."/".$plugin_name.".php"; + } if(class_exists($plugin_name)){ $plugin = new $plugin_name(); } @@ -164,6 +167,8 @@ } function set_plugin_data($plugin_name, $data){ + if(!is_dir($this->plugins_data_dir())) @mkdir($this->plugins_data_dir()); + if(!is_dir($this->plugins_data_dir())) return false; $data_file = $this->plugin_data_file($plugin_name); $content = serialize($data); $OK = false; @@ -184,4 +189,39 @@ } + class mw_plugin{ + + function title(){ + return "(sans titre)"; + } + + function description(){ + return ""; + } + + function loaded($env){ + } + + function install($env){ + return true; + } + + function uninstall($env){ + return true; + } + + function enable($env){ + return true; + } + + function disable($env){ + return true; + } + + function init($env){ + return true; + } + + } + ?> \ No newline at end of file