X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Fbug_report%2Ffunctions.php;h=fd93f3ed89c1b7c6b6848577d69ff364ee89bf3d;hp=e078dfb9999b54c53358b179b7054dd5ff81a84a;hb=bbb2bab55dbfb58735b8aa3eab53c052410753fa;hpb=4b5049de2fa934c45599d6e4c74bf2bbee10d34d diff --git a/plugins/bug_report/functions.php b/plugins/bug_report/functions.php index e078dfb9..fd93f3ed 100644 --- a/plugins/bug_report/functions.php +++ b/plugins/bug_report/functions.php @@ -2,7 +2,7 @@ /** * functions for bug_report plugin * - * @copyright © 2004-2007 The SquirrelMail Project Team + * @copyright © 2004-2009 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package plugins @@ -11,41 +11,54 @@ /** - * do not allow to call this file directly + * Initializes the Bug Report plugin + * + * @return boolean FALSE if the plugin is not correctly configured + * or an error in its setup is found; TRUE otherwise + * + * @since 1.5.2 + * */ -if ((isset($_SERVER['SCRIPT_FILENAME']) && $_SERVER['SCRIPT_FILENAME'] == __FILE__) || - (isset($HTTP_SERVER_SERVER['SCRIPT_FILENAME']) && $HTTP_SERVER_SERVER['SCRIPT_FILENAME'] == __FILE__) ) { - header("Location: ../../src/login.php"); - die(); -} +function bug_report_init() { -/** Declare plugin configuration vars */ -global $bug_report_admin_email, $bug_report_allow_users; + // Declare plugin configuration vars + // + global $bug_report_admin_email, $bug_report_allow_users; -/** Load default config */ -if (file_exists(SM_PATH . 'plugins/bug_report/config_default.php')) { - include_once (SM_PATH . 'plugins/bug_report/config_default.php'); -} else { - // default config was removed. - $bug_report_admin_email = ''; - $bug_report_allow_users = false; -} + // Load default config + // + if (file_exists(SM_PATH . 'plugins/bug_report/config_default.php')) { + include_once (SM_PATH . 'plugins/bug_report/config_default.php'); + } else { + // default config was removed. + $bug_report_admin_email = ''; + $bug_report_allow_users = false; + } + + // Load site config + // + if (file_exists(SM_PATH . 'config/bug_report_config.php')) { + include_once (SM_PATH . 'config/bug_report_config.php'); + } elseif (file_exists(SM_PATH . 'plugins/bug_report/config.php')) { + include_once (SM_PATH . 'plugins/bug_report/config.php'); + } -/** Load site config */ -if (file_exists(SM_PATH . 'config/bug_report_config.php')) { - include_once (SM_PATH . 'config/bug_report_config.php'); -} elseif (file_exists(SM_PATH . 'plugins/bug_report/config.php')) { - include_once (SM_PATH . 'plugins/bug_report/config.php'); } + /** * Checks if user can use bug_report plugin + * * @return boolean + * * @since 1.5.1 + * */ function bug_report_check_user() { global $username, $bug_report_allow_users, $bug_report_admin_email; + bug_report_init(); + if (file_exists(SM_PATH . 'plugins/bug_report/admins')) { $auths = file(SM_PATH . 'plugins/bug_report/admins'); array_walk($auths, 'bug_report_array_trim'); @@ -69,14 +82,70 @@ function bug_report_check_user() { return ($auth); } + /** * Removes whitespace from array values + * * @param string $value array value that has to be trimmed * @param string $key array key + * * @since 1.5.1 + * * @todo code reuse. create generic sm function. + * * @access private + * */ function bug_report_array_trim(&$value,$key) { - $value=trim($value); + $value = trim($value); +} + + +/** + * Show the button in the main bar + * + * @access private + * + */ +function bug_report_button_do() { + global $username, $data_dir; + $bug_report_visible = getPref($data_dir, $username, 'bug_report_visible', FALSE); + + if (! $bug_report_visible || ! bug_report_check_user()) { + return; + } + + global $oTemplate, $nbsp; + $output = makeInternalLink('plugins/bug_report/bug_report.php', _("Bug"), '') + . $nbsp . $nbsp; + return array('menuline' => $output); +} + + +/** + * Register bug report option block + * + * @since 1.5.1 + * + * @access private + * + */ +function bug_report_block_do() { + if (bug_report_check_user()) { + global $username, $data_dir, $optpage_data, $bug_report_visible; + $bug_report_visible = getPref($data_dir, $username, 'bug_report_visible', FALSE); + $optpage_data['grps']['bug_report'] = _("Bug Reports"); + $optionValues = array(); +// FIXME: option needs refresh in SMOPT_REFRESH_RIGHT (menulinks are built before options are saved/loaded) + $optionValues[] = array( + 'name' => 'bug_report_visible', + 'caption' => _("Show button in toolbar"), + 'type' => SMOPT_TYPE_BOOLEAN, + 'refresh' => SMOPT_REFRESH_ALL, + 'initial_value' => false + ); + $optpage_data['vals']['bug_report'] = $optionValues; + } } + +