pandorafms/pandora_console/include/functions_extensions.php
Esteban Sanchez d2891eb1c8 2008-08-04 Esteban Sánchez <estebans@artica.es>
* AUTHORS: Added myself.

        * include/functions_extensions.php: Added to repository. Implements
        extensions functions. Extensions are some kind of plugins to the
        console to add functionallity in a modular way. More work and 
        documentation is needed.

        * godmode/reporting/reporting_builder.php, include/functions.php,
        operation/agentes/networkmap.php, operation/agentes/ver_agente.php:
        Style correction.

        * include/functions_db.php: Added load_lang_file() to load the 
        languages file (useful in extensions l10n). Style correction.

        * index.php: Load extensions and call them in cases.

        * godmode/menu.php, operation/menu.php: Style correction, code 
        cleanup. Added extension menu and submenus. Use of CSS more efficient.

        * include/config_process.php: Added extensions support.

        * extensions/, extensions/hello.php: Added to repository, extensions
        dir and example.

        * include/functions.php: Style correction.

        * include/styles/op.css: Cleanup and rewritten the CSS hell it was 
        before.



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@997 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-08-04 08:15:16 +00:00

125 lines
3.3 KiB
PHP

<?php
$extension_file = '';
function extension_main_function ($filename) {
global $config;
$extension = &$config['extensions'][$filename];
if ($extension['main_function'] != '') {
$params = array ();
call_user_func_array ($extension['main_function'], $params);
}
}
function extension_godmode_function ($filename) {
global $config;
$extension = &$config['extensions'][$filename];
if ($extension['godmode_function'] != '') {
$params = array ();
call_user_func_array ($extension['godmode_function'], $params);
}
}
function is_extension ($page) {
global $config;
$filename = basename ($page);
return isset ($config['extensions'][$filename]);
}
function get_extensions () {
$handle = @opendir (EXTENSIONS_DIR);
if (! $handle) {
return;
}
$file = readdir ($handle);
$extensions = array ();
$ignores = array ('.', '..');
while ($file !== false) {
if (in_array ($file, $ignores)) {
$file = readdir ($handle);
continue;
}
$filepath = realpath (EXTENSIONS_DIR."/".$file);
if (! is_readable ($filepath) || is_dir ($filepath) || ! preg_match ("/.*\.php$/", $filepath)) {
$file = readdir ($handle);
continue;
}
$extension['file'] = $file;
$extension['operation_menu'] = '';
$extension['godmode_menu'] = '';
$extension['main_function'] = '';
$extension['godmode_function'] = '';
$extension['login_function'] = '';
$extensions[$file] = $extension;
$file = readdir ($handle);
}
return $extensions;
}
function load_extensions ($extensions) {
global $config;
global $extension_file;
foreach ($extensions as $extension) {
$extension_file = $extension['file'];
include_once (realpath (EXTENSIONS_DIR."/".$extension_file));
}
}
function add_operation_menu_option ($name) {
global $config;
global $extension_file;
/* $config['extension_file'] is set in load_extensions(), since that function must
be called before any function the extension call, we are sure it will
be set. */
$option_menu['name'] = substr ($name, 0, 15);
$option_menu['sec2'] = EXTENSIONS_DIR.'/'.substr ($extension_file, 0, -4);
$extension = &$config['extensions'][$extension_file];
$extension['operation_menu'] = $option_menu;
}
function add_godmode_menu_option ($name, $acl) {
global $config;
global $extension_file;
/* $config['extension_file'] is set in load_extensions(), since that function must
be called before any function the extension call, we are sure it will
be set. */
$option_menu['acl'] = $acl;
$option_menu['name'] = substr ($name, 0, 15);
$option_menu['sec2'] = EXTENSIONS_DIR.'/'.substr ($extension_file, 0, -4);
$extension = &$config['extensions'][$extension_file];
$extension['godmode_menu'] = $option_menu;
}
function add_extension_main_function ($function_name) {
global $config;
global $extension_file;
$extension = &$config['extensions'][$extension_file];
$extension['main_function'] = $function_name;
}
function add_extension_godmode_function ($function_name) {
global $config;
global $extension_file;
$extension = &$config['extensions'][$extension_file];
$extension['godmode_function'] = $function_name;
}
function add_login_action_function ($function_name) {
global $config;
global $extension_file;
$extension = &$config['extensions'][$extension_file];
$extension['login_function'] = $function_name;
}
?>