summaryrefslogtreecommitdiff
path: root/lib/common.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2009-02-09 11:46:26 -0500
committerEvan Prodromou <evan@controlyourself.ca>2009-02-09 11:46:26 -0500
commit9e23b5c5d706f4573261d6530688a44a8b80bcf4 (patch)
treea56d81b36b328f229bd749518fc5ce4c575db449 /lib/common.php
parenta476805dd96cf31af5331be5245a6d0af4d90dae (diff)
Change action autoloading to allow actions in plugins
Since plugins may define custom actions, we shouldn't require that there be a file in our actions/ subdir for every action. So, I changed the (admittedly hackish) auto-loading code in index.php so it instead checks whether a class exists with the expected name. This, in turn, uses the increasingly hacking __autoload() function, which I changed to auto-load stuff named "BlahblahAction" from the actions subdir if available.
Diffstat (limited to 'lib/common.php')
-rw-r--r--lib/common.php3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/common.php b/lib/common.php
index 041459cf3..7bfd14c42 100644
--- a/lib/common.php
+++ b/lib/common.php
@@ -211,6 +211,9 @@ function __autoload($class)
require_once(INSTALLDIR.'/classes/' . $class . '.php');
} else if (file_exists(INSTALLDIR.'/lib/' . strtolower($class) . '.php')) {
require_once(INSTALLDIR.'/lib/' . strtolower($class) . '.php');
+ } else if (mb_substr($class, -6) == 'Action' &&
+ file_exists(INSTALLDIR.'/actions/' . strtolower(mb_substr($class, 0, -6)) . '.php')) {
+ require_once(INSTALLDIR.'/actions/' . strtolower(mb_substr($class, 0, -6)) . '.php');
}
}