add fixme
[squirrelmail.git] / plugins / listcommands / setup.php
index 310772979e2cf6648866d02c149b1e55dcac0578..82969a7a92a28ebdd09e4d096eb38e94367cb428 100644 (file)
 <?php
-/*
- * Listcommands plugin v1.2
+
+/**
+ * setup.php
  *
  * Implementation of RFC 2369 for SquirrelMail.
  * When viewing a message from a mailinglist complying with this RFC,
  * this plugin displays a menu which gives the user a choice of mailinglist
  * commands such as (un)subscribe, help and list archives.
  *
- * last modified: 2002/01/20 by Thijs Kinkhorst
- * please send bug reports to <thijs@kinkhorst.com>
- *
+ * @copyright &copy; 1999-2007 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package plugins
+ * @subpackage listcommands
  */
-function squirrelmail_plugin_init_listcommands ()
-{
-    global $squirrelmail_plugin_hooks;
-
-    $squirrelmail_plugin_hooks['read_body_header']['listcommands'] = 'plugin_listcommands_menu';
-}
-
-
-function plugin_listcommands_menu () {
-
-    global $imapConnection, $passed_id, $color, $mailbox, $subject;
-
-    /* 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 = array( 'Help' => _("Help"), 
-                          'Unsubscribe' => _("Unsubscribe"),
-                          'Subscribe' => _("Subscribe"), 
-                          'Post' => _("Post to the list"),
-                          'Archive' => _("List Archives"), 
-                          'Owner' => _("Contact Listowner") );
-    $fields = array_keys ($fieldsdescr);
-    $fieldsdescr['Reply'] = 'Reply to the list';
-                    
-    $cmds = array();
-    $output = array();
 
-    $lfields = 'List-' . implode (' List-', $fields);
-
-    $sid = sqimap_session_id();
-    fputs ($imapConnection, "$sid FETCH $passed_id BODY.PEEK[HEADER.FIELDS ($lfields)]\r\n");
-    $read = sqimap_read_data ($imapConnection, $sid, true, $response, $emessage);
-
-    for ($i = 1; $i < count($read); $i++)
-    {
-        foreach ($fields as $field)
-        {
-            if ( preg_match("/^List-$field: *<(.+?)>/i", $read[$i], $match) )
-            {
-                $cmds[$field] = $match[1];
-            }
-        }
-    }
-
-    foreach ($cmds as $cmd => $url)
-    {
-        if ( eregi('mailto:(.+)', $url, $regs) )
-        {
-            $purl = parse_url($url);
-            
-            if ( $cmd == 'Post' || $cmd == 'Owner' )
-            {
-                $url = 'compose.php?';
-            }
-            else
-            {
-                $url = '../plugins/listcommands/mailout.php?action=' . $cmd . '&';
-            }
+/**
+ * Initialize the listcommands plugin
+ */
+function squirrelmail_plugin_init_listcommands () {
+    global $squirrelmail_plugin_hooks;
 
-            $url .= 'mailbox=' . urlencode($mailbox) . '&send_to=' . $purl['path'];
-            
-            if ( isset($purl['query']) )
-            {
-                $url .= '&' . $purl['query'];
-            }
+    $squirrelmail_plugin_hooks['template_construct_read_headers.tpl']['listcommands'] = 'plugin_listcommands_menu';
+    $squirrelmail_plugin_hooks['optpage_register_block']['listcommands'] = 'plugin_listcommands_optpage_register_block';
 
-            $output[] = '<A HREF="' . $url . '">' . $fieldsdescr[$cmd] . '</A>';
+}
 
-            if ( $cmd == 'Post' )
-            {
-                $url .= '&reply_subj=' . urlencode($subject) . '&reply_id=' . $passed_id;
-                $output[] = '<A HREF="' . $url . '">' . $fieldsdescr['Reply'] . '</A>';
-            }
-        }
-        elseif ( eregi('^(http|ftp)', $url) )
-        {
-            $output[] = '<A HREF="' . $url . '" TARGET="_blank">' . $fieldsdescr[$cmd] . '</A>';
-        }
+/**
+ * Main function added to read_body_header
+ */
+function plugin_listcommands_menu() {
+    include_once(SM_PATH . 'plugins/listcommands/functions.php');
+    return plugin_listcommands_menu_do();
+}
 
-        
-    }
 
-       
-    if (count($output) > 0) {
-        echo "<tr><td BGCOLOR=\"$color[0]\" WIDTH=\"100%\" colspan=\"3\">".
-             '<SMALL>' . _("Mailinglist options:") . ' ' . implode ('&nbsp;|&nbsp;', $output) .
-             '</SMALL>'.
-             '</td></tr>';
-    }
-    
-}    
-?>
\ No newline at end of file
+/**
+  * Show mailing list management option section on options page
+  */
+function plugin_listcommands_optpage_register_block() {
+    include_once(SM_PATH . 'plugins/listcommands/functions.php');
+    plugin_listcommands_optpage_register_block_do();
+}