aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/ezcomponents/loader.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2009-06-07 18:07:13 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2009-06-07 18:07:13 +0000
commitac6469ab7daaa1a83634290949fb5098a33dd761 (patch)
treed565f163b3b57dadec23ebafa2e86c639c0499dc /phpBB/includes/ezcomponents/loader.php
parentf6fd198de229fb079f645d5516ccc2935e06be76 (diff)
downloadforums-ac6469ab7daaa1a83634290949fb5098a33dd761.tar
forums-ac6469ab7daaa1a83634290949fb5098a33dd761.tar.gz
forums-ac6469ab7daaa1a83634290949fb5098a33dd761.tar.bz2
forums-ac6469ab7daaa1a83634290949fb5098a33dd761.tar.xz
forums-ac6469ab7daaa1a83634290949fb5098a33dd761.zip
merge nils' changes into 3.2.x (i am still not sure if we want to have them in 3.0.x - therefore i suggest we test them in 3.2.x)
The default search plugin in 3.0.x will not change, but if the test goes well we may allow this to be installed in 3.0.x through the "contrib method" git-svn-id: file:///svn/phpbb/trunk@9558 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/ezcomponents/loader.php')
-rw-r--r--phpBB/includes/ezcomponents/loader.php73
1 files changed, 73 insertions, 0 deletions
diff --git a/phpBB/includes/ezcomponents/loader.php b/phpBB/includes/ezcomponents/loader.php
new file mode 100644
index 0000000000..62aaa7667d
--- /dev/null
+++ b/phpBB/includes/ezcomponents/loader.php
@@ -0,0 +1,73 @@
+<?php
+/**
+*
+* @package ezcomponents
+* @version $Id$
+* @copyright (c) 2005 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+/**
+* @ignore
+*/
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+/**
+* eZ components class loader
+* Replaces the autoload mechanism eZ Components normally use
+* @package ezcomponents
+*/
+class phpbb_ezcomponents_loader
+{
+ var $loaded;
+
+ /**
+ * Constructor which makes sure the PHP version requirement is met.
+ */
+ function phpbb_ezcomponents_loader()
+ {
+ $this->loaded = array();
+ if (version_compare(PHP_VERSION, '5.2.1', '<'))
+ {
+ trigger_error('PHP >= 5.2.1 required', E_USER_ERROR);
+ }
+ }
+
+ /**
+ * Loads all classes of a particular component.
+ * The base component is always loaded first.
+ *
+ * @param $component string Lower case component name
+ */
+ function load_component($component)
+ {
+ global $phpbb_root_path;
+
+ // don't allow loading the same component twice
+ if (isset($this->loaded[$component]) && $this->loaded[$component])
+ {
+ return;
+ }
+
+ // make sure base is always loaded first
+ if ($component != 'base' && !isset($this->loaded['base']))
+ {
+ $this->load_component('base');
+ }
+
+ $ezc_path = $phpbb_root_path . 'includes/ezcomponents/';
+
+ // retrieve the autoload list
+ $classes = include($ezc_path . ucfirst($component) . '/' . $component . '_autoload.php');
+
+ // include all files related to this component
+ foreach ($classes as $class => $path)
+ {
+ include($ezc_path . $path);
+ }
+ }
+} \ No newline at end of file