X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Flistcommands%2Ffunctions.php;h=66a4f99bf93b83d98c5eb7ff5a4b03cc8a51a7fe;hp=cfdc4341becb2a6dbf76edcd0b7f22ad269c885f;hb=6f62ecc17c3b4e265b1cd63470c392c84018bb62;hpb=4b4abf93a9624311afef0c385023724ee46a2b60 diff --git a/plugins/listcommands/functions.php b/plugins/listcommands/functions.php index cfdc4341..66a4f99b 100644 --- a/plugins/listcommands/functions.php +++ b/plugins/listcommands/functions.php @@ -8,25 +8,73 @@ * this plugin displays a menu which gives the user a choice of mailinglist * commands such as (un)subscribe, help and list archives. * - * @copyright © 1999-2005 The SquirrelMail Project Team + * @copyright © 1999-2007 The SquirrelMail Project Team * @license http://opensource.org/licenses/gpl-license.php GNU Public License * @version $Id$ * @package plugins * @subpackage listcommands */ +/** + * Get current list of subscribed non-RFC-compliant mailing lists for logged-in user + * + * @return array The list of mailing list addresses, keyed by integer index + */ +function get_non_rfc_lists() { + global $username, $data_dir; + $lists = getPref($data_dir, $username, 'non_rfc_lists', array()); + $new_lists = array(); + if (!empty($lists)) { + $lists = explode(':', $lists); + foreach ($lists as $list) { + list($index, $list_addr) = explode('_', $list); + if ((!empty($index) || $index === '0') && !empty($list_addr)) + $new_lists[$index] = $list_addr; + } + } + $lists = $new_lists; + sort($lists); + return $lists; +} + +/** + * Show mailing list management option section on options page + */ +function plugin_listcommands_optpage_register_block_do() +{ + + global $optpage_blocks, $listcommands_allow_non_rfc_list_management; + + // only allow management of non-RFC lists if admin deems necessary + // + @include_once(SM_PATH . 'plugins/listcommands/config.php'); + if (!$listcommands_allow_non_rfc_list_management) + return; + + $optpage_blocks[] = array( + 'name' => _("Mailing Lists"), + 'url' => '../plugins/listcommands/options.php', + 'desc' => _("Manage the (non-RFC-compliant) mailing lists that you are subscribed to for the purpose of providing one-click list replies when responding to list messages."), + 'js' => false + ); + +} + /** * internal function that builds mailing list links */ function plugin_listcommands_menu_do() { - global $passed_id, $passed_ent_id, $color, $mailbox, $message, $startMessage; + global $passed_id, $passed_ent_id, $color, $mailbox, $message, + $startMessage, $oTemplate, $listcommands_allow_non_rfc_list_management; + + @include_once(SM_PATH . 'plugins/listcommands/config.php'); /** * Array of commands we can deal with from the header. The Reply option * is added later because we generate it using the Post information. */ $fieldsdescr = listcommands_fieldsdescr(); - $output = array(); + $links = array(); foreach ($message->rfc822_header->mlist as $cmd => $actions) { @@ -50,7 +98,7 @@ function plugin_listcommands_menu_do() { } $url .= 'send_to=' . str_replace('?','&', $act); - $output[] = makeComposeLink($url, $fieldsdescr[$cmd]); + $links[$cmd] = makeComposeLink($url, $fieldsdescr[$cmd]); if ($cmd == 'post') { if (!isset($mailbox)) @@ -60,22 +108,72 @@ function plugin_listcommands_menu_do() { (isset($passed_ent_id)?'&passed_ent_id='.$passed_ent_id:''); $url .= '&smaction=reply'; - $output[] = makeComposeLink($url, $fieldsdescr['reply']); + $links['reply'] = makeComposeLink($url, $fieldsdescr['reply']); } } else if ($proto == 'href') { - $output[] = '' - . $fieldsdescr[$cmd] . ''; + $links[$cmd] = create_hyperlink($act, $fieldsdescr[$cmd], '_blank'); } } - if (count($output) > 0) { - echo '