/** * Automatically binds extension events to Navigate CMS modules * It checks the "bindings" section of every extension definition */ public function extension_backend_bindings($ignore_permissions = true) { // when running inside Navigate CMS, this binds all extension events $extensions = extension::list_installed(null, $ignore_permissions); for ($e = 0; $e < count($extensions); $e++) { if (!isset($extensions[$e]['enabled']) || $extensions[$e]['enabled'] == '1') { if (!empty($extensions[$e]['bindings'])) { foreach ($extensions[$e]['bindings'] as $binding) { extension::include_php($extensions[$e]['code']); $this->bind($binding->module, $binding->event, $extensions[$e]['code'], $binding->function); } } } } }
function extensions_dialog($extension, $function, $params) { global $layout; $layout = null; $layout = new layout('navigate'); // load the extension source code, if not already done extension::include_php($extension->code); if (function_exists($function)) { call_user_func($function, $params); $out = $layout->generate(); } else { $out = 'ERROR: "' . $function . '" function does not exist!'; } return $out; }