include_once $filename;
}
- /* It is possible to combine customization and plugins:
- class AdminerCustomization extends AdminerPlugin {
- }
- return new AdminerCustomization($plugins);
- */
-
- return new AdminerPlugin(array(
+ $plugins = array(
// specify enabled plugins here
new AdminerDumpZip,
new AdminerDumpXml,
new AdminerTranslation,
new AdminerForeignSystem,
new AdminerEnumOption,
- ));
+ );
+
+ /* It is possible to combine customization and plugins:
+ class AdminerCustomization extends AdminerPlugin {
+ }
+ return new AdminerCustomization($plugins);
+ */
+
+ return new AdminerPlugin($plugins);
}
// include original Adminer or Adminer Editor (usually named adminer.php)
// it is possible to use ReflectionObject in PHP 5 to find out which plugins defines which methods at once
}
+ function _callParent($function, $args) {
+ switch (count($args)) { // call_user_func_array(array('parent', $function), $args) works since PHP 5
+ case 0: return parent::$function();
+ case 1: return parent::$function($args[0]);
+ case 2: return parent::$function($args[0], $args[1]);
+ case 3: return parent::$function($args[0], $args[1], $args[2]);
+ case 4: return parent::$function($args[0], $args[1], $args[2], $args[3]);
+ default: trigger_error('Too many parameters.', E_USER_WARNING);
+ }
+ }
+
function _applyPlugin($function, $args) {
foreach ($this->plugins as $plugin) {
if (method_exists($plugin, $function)) {
}
}
}
- return call_user_func_array(array($this, "parent::$function"), $args);
+ return $this->_callParent($function, $args);
}
function _appendPlugin($function, $args) {
- $return = call_user_func_array(array($this, "parent::$function"), $args);
+ $return = $this->_callParent($function, $args);
foreach ($this->plugins as $plugin) {
if (method_exists($plugin, $function)) {
$return += call_user_func_array(array($plugin, $function), $args);