summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/dokuwiki.php1
-rw-r--r--inc/pluginutils.php52
2 files changed, 37 insertions, 16 deletions
diff --git a/conf/dokuwiki.php b/conf/dokuwiki.php
index 990e61e19..460f0a416 100644
--- a/conf/dokuwiki.php
+++ b/conf/dokuwiki.php
@@ -70,6 +70,7 @@ $conf['mailfrom'] = ''; //use this email when sending mails
$conf['gdlib'] = 2; //the GDlib version (0, 1 or 2) 2 tries to autodetect
$conf['spellchecker']= 0; //enable Spellchecker (needs PHP >= 4.3.0 and aspell installed)
$conf['subscribers'] = 0; //enable change notice subscription support
+$conf['pluginmanager'] = 0; //enable automated plugin management (requires plugin)
//Set target to use when creating links - leave empty for same window
$conf['target']['wiki'] = '';
diff --git a/inc/pluginutils.php b/inc/pluginutils.php
index 964635b2c..5914c6cd2 100644
--- a/inc/pluginutils.php
+++ b/inc/pluginutils.php
@@ -10,21 +10,41 @@
* prints needed HTML to include plugin CSS and JS files
*/
function plugin_printCSSJS(){
- $plugins = plugin_list();
- foreach ($plugins as $p){
- $dir = "lib/plugins/$p/";
- if(@file_exists(DOKU_INC.$dir.'style.css')){
- print ' <link rel="stylesheet" type="text/css" href="'.DOKU_BASE.$dir.'style.css" />'."\n";
- }
- if(@file_exists(DOKU_INC.$dir.'screen.css')){
- print ' <link rel="stylesheet" media="screen" type="text/css" href="'.DOKU_BASE.$dir.'screen.css" />'."\n";
- }
- if(@file_exists(DOKU_INC.$dir.'print.css')){
- print ' <link rel="stylesheet" media="print" type="text/css" href="'.DOKU_BASE.$dir.'print.css" />'."\n";
- }
- if(@file_exists(DOKU_INC.$dir.'script.js')){
- print ' <script type="text/javascript" language="javascript" charset="utf-8" src="'.DOKU_BASE.$dir.'script.js"></script>'."\n";
- }
+ global $conf;
+
+ if (isset($conf['plugin_manager']) && $conf['plugin_manager']) {
+ // individual plugin instances of the files swept into one file each
+ $dir = "lib/plugins/plugin_";
+ if(@file_exists(DOKU_INC.$dir.'style.css')){
+ print ' <link rel="stylesheet" type="text/css" href="'.DOKU_BASE.$dir.'style.css" />'."\n";
+ }
+ if(@file_exists(DOKU_INC.$dir.'screen.css')){
+ print ' <link rel="stylesheet" media="screen" type="text/css" href="'.DOKU_BASE.$dir.'screen.css" />'."\n";
+ }
+ if(@file_exists(DOKU_INC.$dir.'print.css')){
+ print ' <link rel="stylesheet" media="print" type="text/css" href="'.DOKU_BASE.$dir.'print.css" />'."\n";
+ }
+ if(@file_exists(DOKU_INC.$dir.'script.js')){
+ print ' <script type="text/javascript" language="javascript" charset="utf-8" src="'.DOKU_BASE.$dir.'script.js"></script>'."\n";
+ }
+ } else {
+ // no plugin manager so individual instances of these files for any plugin that uses them
+ $plugins = plugin_list();
+ foreach ($plugins as $p){
+ $dir = "lib/plugins/$p/";
+ if(@file_exists(DOKU_INC.$dir.'style.css')){
+ print ' <link rel="stylesheet" type="text/css" href="'.DOKU_BASE.$dir.'style.css" />'."\n";
+ }
+ if(@file_exists(DOKU_INC.$dir.'screen.css')){
+ print ' <link rel="stylesheet" media="screen" type="text/css" href="'.DOKU_BASE.$dir.'screen.css" />'."\n";
+ }
+ if(@file_exists(DOKU_INC.$dir.'print.css')){
+ print ' <link rel="stylesheet" media="print" type="text/css" href="'.DOKU_BASE.$dir.'print.css" />'."\n";
+ }
+ if(@file_exists(DOKU_INC.$dir.'script.js')){
+ print ' <script type="text/javascript" language="javascript" charset="utf-8" src="'.DOKU_BASE.$dir.'script.js"></script>'."\n";
+ }
+ }
}
}
@@ -39,7 +59,7 @@ function plugin_list($type=''){
$plugins = array();
if ($dh = opendir(DOKU_PLUGIN)) {
while (false !== ($plugin = readdir($dh))) {
- if ($plugin == '.' || $plugin == '..') continue;
+ if ($plugin == '.' || $plugin == '..' || $plugin == 'tmp') continue;
if (is_file(DOKU_PLUGIN.$plugin)) continue;
if ($type=='' || @file_exists(DOKU_PLUGIN."$plugin/$type.php")){