} require_once QA_INCLUDE_DIR . 'qa-app-admin.php'; // Check admin privileges if (!qa_admin_check_privileges($qa_content)) { return $qa_content; } // Map modules with options to their containing plugins $pluginoptionmodules = array(); $tables = qa_db_list_tables_lc(); $moduletypes = qa_list_module_types(); foreach ($moduletypes as $type) { $modules = qa_list_modules($type); foreach ($modules as $name) { $module = qa_load_module($type, $name); if (method_exists($module, 'admin_form')) { $info = qa_get_module_info($type, $name); $pluginoptionmodules[$info['directory']][] = array('type' => $type, 'name' => $name); } } } // Prepare content for theme $qa_content = qa_content_prepare(); $qa_content['title'] = qa_lang_html('admin/admin_title') . ' - ' . qa_lang_html('admin/plugins_title'); $qa_content['error'] = qa_admin_page_error(); $qa_content['script_rel'][] = 'qa-content/qa-admin.js?' . QA_VERSION; $pluginfiles = glob(QA_PLUGIN_DIR . '*/qa-plugin.php'); foreach ($moduletypes as $type) { $modules = qa_load_modules_with($type, 'init_queries'); foreach ($modules as $name => $module) { $queries = $module->init_queries($tables); if (!empty($queries)) {
/** * Return the URL (relative to the current page) to navigate to the options panel for plugin module $name of $type */ function qa_admin_module_options_path($type, $name) { $info = qa_get_module_info($type, $name); $dir = rtrim($info['directory'], '/'); return qa_admin_plugin_options_path($dir); }