From d66e3ddfed27523627d33cd17905445d27688afa Mon Sep 17 00:00:00 2001
From: chris <chris@teacherscpd.co.uk>
Date: Thu, 25 Aug 2005 01:15:45 +0200
Subject: [PATCH] non-intrusive changes to support plugin manager

darcs-hash:20050824231545-50fdc-2d0fc2e9efba6c6d740f00c9113d07eabc3963ce.gz
---
 conf/dokuwiki.php   |  1 +
 inc/pluginutils.php | 52 +++++++++++++++++++++++++++++++--------------
 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")){
-- 
GitLab