From c2a6d81662045023bdf1617b6b49f71c274d55ca Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Mon, 1 Feb 2010 16:10:25 +0100
Subject: [PATCH] plugin related autoloading

This patch moved the place where DOKU_PLUGIN is defined. It no longer
can be set from a normal config (only via preload)
---
 inc/init.php                                     | 5 +++--
 inc/load.php                                     | 5 +++++
 lib/plugins/acl/admin.php                        | 4 ----
 lib/plugins/acl/ajax.php                         | 6 ------
 lib/plugins/action.php                           | 3 ---
 lib/plugins/admin.php                            | 3 ---
 lib/plugins/config/admin.php                     | 3 ---
 lib/plugins/config/settings/config.class.php     | 2 --
 lib/plugins/info/syntax.php                      | 3 ---
 lib/plugins/plugin/admin.php                     | 2 --
 lib/plugins/plugin/classes/ap_download.class.php | 3 ---
 lib/plugins/popularity/admin.php                 | 6 ------
 lib/plugins/revert/admin.php                     | 4 ----
 lib/plugins/syntax.php                           | 3 ---
 lib/plugins/usermanager/admin.php                | 2 --
 15 files changed, 8 insertions(+), 46 deletions(-)

diff --git a/inc/init.php b/inc/init.php
index 3cff40073..7f4792cfa 100644
--- a/inc/init.php
+++ b/inc/init.php
@@ -20,6 +20,9 @@ if (@file_exists($preload)) include($preload);
 // define the include path
 if(!defined('DOKU_INC')) define('DOKU_INC',fullpath(dirname(__FILE__).'/../').'/');
 
+// define Plugin dir
+if(!defined('DOKU_PLUGIN'))  define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
+
 // define config path (packagers may want to change this to /etc/dokuwiki/)
 if(!defined('DOKU_CONF')) define('DOKU_CONF',DOKU_INC.'conf/');
 
@@ -158,8 +161,6 @@ if(!defined('DOKU_TAB')) define ('DOKU_TAB',"\t");
 // define cookie and session id, append server port when securecookie is configured FS#1664
 if (!defined('DOKU_COOKIE')) define('DOKU_COOKIE', 'DW'.md5(DOKU_REL.(($conf['securecookie'])?$_SERVER['SERVER_PORT']:'')));
 
-// define Plugin dir
-if(!defined('DOKU_PLUGIN'))  define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
 
 // define main script
 if(!defined('DOKU_SCRIPT')) define('DOKU_SCRIPT','doku.php');
diff --git a/inc/load.php b/inc/load.php
index 792f05e27..e06a2c63d 100644
--- a/inc/load.php
+++ b/inc/load.php
@@ -76,6 +76,11 @@ function load_autoload($name){
         'GeSHi'                 => DOKU_INC.'inc/geshi.php',
         'TarLib'                => DOKU_INC.'inc/TarLib.class.php',
         'ZibLib'                => DOKU_INC.'inc/ZipLib.class.php',
+
+        'DokuWiki_Action_Plugin' => DOKU_PLUGIN.'action.php',
+        'DokuWiki_Admin_Plugin'  => DOKU_PLUGIN.'admin.php',
+        'DokuWiki_Syntax_Plugin' => DOKU_PLUGIN.'syntax.php',
+
     );
 
     if(isset($classes[$name])){
diff --git a/lib/plugins/acl/admin.php b/lib/plugins/acl/admin.php
index a7037047a..b38d2ac6e 100644
--- a/lib/plugins/acl/admin.php
+++ b/lib/plugins/acl/admin.php
@@ -10,9 +10,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
-
 /**
  * All DokuWiki plugins to extend the admin function
  * need to inherit from this class
@@ -216,7 +213,6 @@ class admin_plugin_acl extends DokuWiki_Admin_Plugin {
      * @author Andreas Gohr <andi@splitbrain.org>
      */
     function _html_explorer(){
-        require_once(DOKU_INC.'inc/search.php');
         global $conf;
         global $ID;
         global $lang;
diff --git a/lib/plugins/acl/ajax.php b/lib/plugins/acl/ajax.php
index d3e88d932..d91586a5d 100644
--- a/lib/plugins/acl/ajax.php
+++ b/lib/plugins/acl/ajax.php
@@ -13,9 +13,6 @@ if(!count($_POST) && $HTTP_RAW_POST_DATA){
 
 if(!defined('DOKU_INC')) define('DOKU_INC',dirname(__FILE__).'/../../../');
 require_once(DOKU_INC.'inc/init.php');
-require_once(DOKU_INC.'inc/common.php');
-require_once(DOKU_INC.'inc/pageutils.php');
-require_once(DOKU_INC.'inc/auth.php');
 //close session
 session_write_close();
 
@@ -24,8 +21,6 @@ if(!checkSecurityToken()) die('CRSF Attack');
 
 $ID    = getID();
 
-require_once(DOKU_INC.'inc/pluginutils.php');
-require_once(DOKU_INC.'inc/html.php');
 $acl = plugin_load('admin','acl');
 $acl->handle();
 
@@ -35,7 +30,6 @@ header('Content-Type: text/html; charset=utf-8');
 if($ajax == 'info'){
     $acl->_html_info();
 }elseif($ajax == 'tree'){
-    require_once(DOKU_INC.'inc/search.php');
     global $conf;
     global $ID;
 
diff --git a/lib/plugins/action.php b/lib/plugins/action.php
index a26bc654a..885bd7c96 100644
--- a/lib/plugins/action.php
+++ b/lib/plugins/action.php
@@ -8,9 +8,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_INC.'inc/plugin.php');
-
 /**
  * All DokuWiki plugins to interfere with the event system
  * need to inherit from this class
diff --git a/lib/plugins/admin.php b/lib/plugins/admin.php
index 2eeda3f7b..25f01b657 100644
--- a/lib/plugins/admin.php
+++ b/lib/plugins/admin.php
@@ -8,9 +8,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_INC.'inc/plugin.php');
-
 /**
  * All DokuWiki plugins to extend the admin function
  * need to inherit from this class
diff --git a/lib/plugins/config/admin.php b/lib/plugins/config/admin.php
index cbee3440a..7cc2918f4 100644
--- a/lib/plugins/config/admin.php
+++ b/lib/plugins/config/admin.php
@@ -9,9 +9,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
-
 define('CM_KEYMARKER','____');            // used for settings with multiple dimensions of array indices
 
 define('PLUGIN_SELF',dirname(__FILE__).'/');
diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php
index d995e8a30..f9867b8de 100644
--- a/lib/plugins/config/settings/config.class.php
+++ b/lib/plugins/config/settings/config.class.php
@@ -528,8 +528,6 @@ if (!class_exists('setting_password')) {
 }
 
 if (!class_exists('setting_email')) {
-
-  require_once(DOKU_INC.'inc/mail.php');
   if (!defined('SETTING_EMAIL_PATTERN')) define('SETTING_EMAIL_PATTERN','<^'.PREG_PATTERN_VALID_EMAIL.'$>');
 
   class setting_email extends setting_string {
diff --git a/lib/plugins/info/syntax.php b/lib/plugins/info/syntax.php
index dc0a7d2fc..ba2831a90 100644
--- a/lib/plugins/info/syntax.php
+++ b/lib/plugins/info/syntax.php
@@ -9,9 +9,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'syntax.php');
-
 /**
  * All DokuWiki plugins to extend the parser/rendering mechanism
  * need to inherit from this class
diff --git a/lib/plugins/plugin/admin.php b/lib/plugins/plugin/admin.php
index 198512a43..c662b565a 100644
--- a/lib/plugins/plugin/admin.php
+++ b/lib/plugins/plugin/admin.php
@@ -13,8 +13,6 @@ if(!defined('DOKU_INC')) die();
 // - allow a plugin to contain extras to be copied to the current template (extra/tpl/)
 // - to images (lib/images/) [ not needed, should go in lib/plugin/images/ ]
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
 require_once(DOKU_PLUGIN."/plugin/classes/ap_manage.class.php");
 
 //--------------------------[ GLOBALS ]------------------------------------------------
diff --git a/lib/plugins/plugin/classes/ap_download.class.php b/lib/plugins/plugin/classes/ap_download.class.php
index 90e5de53b..6ad048d72 100644
--- a/lib/plugins/plugin/classes/ap_download.class.php
+++ b/lib/plugins/plugin/classes/ap_download.class.php
@@ -197,8 +197,6 @@ class ap_download extends ap_manage {
 
         $ext = $this->guess_archive($file);
         if (in_array($ext, array('tar','bz','gz'))) {
-            require_once(DOKU_INC."inc/TarLib.class.php");
-
             switch($ext){
                 case 'bz':
                     $compress_type = COMPRESS_BZIP;
@@ -227,7 +225,6 @@ class ap_download extends ap_manage {
             }
             return true;
         } else if ($ext == 'zip') {
-            require_once(DOKU_INC."inc/ZipLib.class.php");
 
             $zip = new ZipLib();
             $ok = $zip->Extract($file, $target);
diff --git a/lib/plugins/popularity/admin.php b/lib/plugins/popularity/admin.php
index d084f5b58..c72beafdb 100644
--- a/lib/plugins/popularity/admin.php
+++ b/lib/plugins/popularity/admin.php
@@ -8,12 +8,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
-require_once(DOKU_INC.'inc/infoutils.php');
-require_once(DOKU_INC.'inc/pluginutils.php');
-require_once(DOKU_INC.'inc/search.php');
-
 /**
  * All DokuWiki plugins to extend the admin function
  * need to inherit from this class
diff --git a/lib/plugins/revert/admin.php b/lib/plugins/revert/admin.php
index b24b1ff6e..1a327ca8a 100644
--- a/lib/plugins/revert/admin.php
+++ b/lib/plugins/revert/admin.php
@@ -2,10 +2,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_PLUGIN.'admin.php');
-require_once(DOKU_INC.'inc/changelog.php');
-
 /**
  * All DokuWiki plugins to extend the admin function
  * need to inherit from this class
diff --git a/lib/plugins/syntax.php b/lib/plugins/syntax.php
index 633e001d2..601b5591e 100644
--- a/lib/plugins/syntax.php
+++ b/lib/plugins/syntax.php
@@ -8,9 +8,6 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
-require_once(DOKU_INC.'inc/parser/parser.php');
-
 /**
  * All DokuWiki plugins to extend the parser/rendering mechanism
  * need to inherit from this class
diff --git a/lib/plugins/usermanager/admin.php b/lib/plugins/usermanager/admin.php
index da6029bbf..4eb923bb1 100644
--- a/lib/plugins/usermanager/admin.php
+++ b/lib/plugins/usermanager/admin.php
@@ -13,9 +13,7 @@
 // must be run within Dokuwiki
 if(!defined('DOKU_INC')) die();
 
-if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
 if(!defined('DOKU_PLUGIN_IMAGES')) define('DOKU_PLUGIN_IMAGES',DOKU_BASE.'lib/plugins/usermanager/images/');
-require_once(DOKU_PLUGIN.'admin.php');
 
 /**
  * All DokuWiki plugins to extend the admin function
-- 
GitLab