772be735 |
1 | <?php |
91e0dccc |
2 | /** |
f3a91d6b |
3 | * setup.php -- SpamCop plugin - setup script |
4 | * |
9eb3fcb3 |
5 | * @copyright (c) 1999-2005 The SquirrelMail Project Team |
f3a91d6b |
6 | * @license http://opensource.org/licenses/gpl-license.php GNU Public License |
7 | * @version $Id$ |
8 | * @package plugins |
9 | * @subpackage spamcop |
10 | */ |
772be735 |
11 | |
ea5f4b8e |
12 | /** @ignore */ |
0dabfa7f |
13 | require_once(SM_PATH . 'functions/global.php'); |
14 | |
057e9d6e |
15 | /** Disable Quick Reporting by default */ |
16 | $spamcop_quick_report = false; |
0dabfa7f |
17 | |
f3a91d6b |
18 | /** |
91e0dccc |
19 | * Initialize the plugin |
f3a91d6b |
20 | * @access private |
21 | */ |
772be735 |
22 | function squirrelmail_plugin_init_spamcop() { |
91e0dccc |
23 | global $squirrelmail_plugin_hooks, $spamcop_is_composing; |
772be735 |
24 | |
91e0dccc |
25 | $squirrelmail_plugin_hooks['optpage_register_block']['spamcop'] = |
26 | 'spamcop_options'; |
27 | $squirrelmail_plugin_hooks['loading_prefs']['spamcop'] = |
28 | 'spamcop_load'; |
29 | $squirrelmail_plugin_hooks['read_body_header_right']['spamcop'] = |
30 | 'spamcop_show_link'; |
04f6008a |
31 | |
3267e4d8 |
32 | sqgetGlobalVar('spamcop_is_composing' , $spamcop_is_composing); |
91e0dccc |
33 | |
34 | if (isset($spamcop_is_composing)) { |
35 | $squirrelmail_plugin_hooks['compose_send']['spamcop'] = |
36 | 'spamcop_while_sending'; |
37 | } |
772be735 |
38 | } |
39 | |
40 | |
9a422982 |
41 | /** |
42 | * Loads spamcop settings and validates some of values (make '' into 'default', etc.) |
f3a91d6b |
43 | * @access private |
9a422982 |
44 | */ |
772be735 |
45 | function spamcop_load() { |
91e0dccc |
46 | global $username, $data_dir, $spamcop_enabled, $spamcop_delete, |
47 | $spamcop_method, $spamcop_id, $spamcop_quick_report, $spamcop_type; |
48 | |
49 | $spamcop_enabled = getPref($data_dir, $username, 'spamcop_enabled'); |
50 | $spamcop_delete = getPref($data_dir, $username, 'spamcop_delete'); |
51 | $spamcop_method = getPref($data_dir, $username, 'spamcop_method'); |
52 | $spamcop_type = getPref($data_dir, $username, 'spamcop_type'); |
53 | $spamcop_id = getPref($data_dir, $username, 'spamcop_id'); |
057e9d6e |
54 | if ($spamcop_method == '') { |
91e0dccc |
55 | // Default to web_form. It is faster. |
56 | $spamcop_method = 'web_form'; |
57 | setPref($data_dir, $username, 'spamcop_method', $spamcop_method); |
58 | } |
59 | if (! $spamcop_quick_report && $spamcop_method=='quick_email') { |
60 | $spamcop_method = 'web_form'; |
61 | setPref($data_dir, $username, 'spamcop_method', $spamcop_method); |
057e9d6e |
62 | } |
91e0dccc |
63 | if ($spamcop_type == '') { |
64 | $spamcop_type = 'free'; |
65 | setPref($data_dir, $username, 'spamcop_type', $spamcop_type); |
66 | } |
67 | if ($spamcop_id == '') |
68 | $spamcop_enabled = 0; |
772be735 |
69 | } |
70 | |
71 | |
9a422982 |
72 | /** |
73 | * Shows spamcop link on the read-a-message screen |
f3a91d6b |
74 | * @access private |
9a422982 |
75 | */ |
772be735 |
76 | function spamcop_show_link() { |
91e0dccc |
77 | global $spamcop_enabled, $spamcop_method, $spamcop_quick_report,$javascript_on; |
772be735 |
78 | |
91e0dccc |
79 | if (! $spamcop_enabled) |
80 | return; |
772be735 |
81 | |
91e0dccc |
82 | /* GLOBALS */ |
83 | sqgetGlobalVar('passed_id', $passed_id, SQ_FORM); |
84 | sqgetGlobalVar('passed_ent_id',$passed_ent_id,SQ_FORM); |
85 | sqgetGlobalVar('mailbox', $mailbox, SQ_FORM); |
a6d3eff6 |
86 | if ( sqgetGlobalVar('startMessage', $startMessage, SQ_FORM) ) { |
87 | $startMessage = (int)$startMessage; |
88 | } |
91e0dccc |
89 | /* END GLOBALS */ |
04f6008a |
90 | |
91e0dccc |
91 | // catch unset passed_ent_id |
92 | if (! sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_FORM) ) { |
93 | $passed_ent_id = 0; |
94 | } |
9a422982 |
95 | |
91e0dccc |
96 | echo "<br />\n"; |
057e9d6e |
97 | |
91e0dccc |
98 | /* |
99 | Catch situation when user use quick_email and does not update |
100 | preferences. User gets web_form link. If prefs are set to |
057e9d6e |
101 | quick_email format - they will be updated after clicking the link |
102 | */ |
103 | if (! $spamcop_quick_report && $spamcop_method=='quick_email') { |
91e0dccc |
104 | $spamcop_method = 'web_form'; |
057e9d6e |
105 | } |
91e0dccc |
106 | |
9a422982 |
107 | // Javascript is used only in web based reporting |
108 | // don't insert javascript if javascript is disabled |
91e0dccc |
109 | if ($spamcop_method == 'web_form' && $javascript_on) { |
8ddc4111 |
110 | ?><script language="javascript" type="text/javascript"> |
6fd95361 |
111 | document.write('<a href="../plugins/spamcop/spamcop.php?passed_id=<?php echo urlencode($passed_id); ?>&js_web=1&mailbox=<?php echo urlencode($mailbox); ?>&passed_ent_id=<?php echo urlencode($passed_ent_id); ?>" target="_blank">'); |
112 | document.write("<?php echo _("Report as Spam"); ?>"); |
772be735 |
113 | document.write("</a>"); |
6fd95361 |
114 | </script><?php |
91e0dccc |
115 | } else { |
6fd95361 |
116 | ?><a href="../plugins/spamcop/spamcop.php?passed_id=<?php echo urlencode($passed_id); ?>&mailbox=<?php echo urlencode($mailbox); ?>&startMessage=<?php echo urlencode($startMessage); ?>&passed_ent_id=<?php echo urlencode($passed_ent_id); ?>"> |
117 | <?php echo _("Report as Spam"); ?></a> |
118 | <?php |
91e0dccc |
119 | } |
772be735 |
120 | } |
121 | |
9a422982 |
122 | /** |
123 | * Show spamcop options block |
f3a91d6b |
124 | * @access private |
9a422982 |
125 | */ |
772be735 |
126 | function spamcop_options() |
127 | { |
91e0dccc |
128 | global $optpage_blocks; |
129 | |
130 | $optpage_blocks[] = array( |
131 | 'name' => _("SpamCop - Spam Reporting"), |
132 | 'url' => '../plugins/spamcop/options.php', |
133 | 'desc' => _("Help fight the battle against unsolicited email. SpamCop reads the spam email and determines the correct addresses to send complaints to. Quite fast, really smart, and easy to use."), |
134 | 'js' => false |
135 | ); |
772be735 |
136 | } |
137 | |
138 | |
9a422982 |
139 | /** |
140 | * When we send the email, we optionally trash it then too |
f3a91d6b |
141 | * @access private |
9a422982 |
142 | */ |
772be735 |
143 | function spamcop_while_sending() |
144 | { |
91e0dccc |
145 | global $mailbox, $spamcop_delete, $spamcop_is_composing, $auto_expunge, |
146 | $username, $key, $imapServerAddress, $imapPort; |
147 | |
148 | if ($spamcop_delete) { |
149 | $imapConnection = sqimap_login($username, $key, $imapServerAddress, |
150 | $imapPort, 0); |
151 | sqimap_mailbox_select($imapConnection, $mailbox); |
f20fb4f8 |
152 | sqimap_msgs_list_delete($imapConnection, $mailbox, array($spamcop_is_composing)); |
91e0dccc |
153 | if ($auto_expunge) |
154 | sqimap_mailbox_expunge($imapConnection, $mailbox, true); |
155 | } |
772be735 |
156 | } |
157 | |
057e9d6e |
158 | ?> |