<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Akismet Spam Service</title>
        <description> Update: I have fixed the settings issue.  It was saving, just not displaying the settings that were saved correctly.

Someone in IRC pointed me to Akismet.  It looked neato.  So, I hacked up this module.  Akismet is a real time spam checking service.  You have to have a key from them to use it.  Its free for personal use.  If you are a commercial site, you can pay to get a commercial key.

This module will send messages to Akismet for spam checking.  If Akismet believes they are spam, Phorum will alter the message to an unapproved state.  No message is given to the user.  No sense tipping them off and usually spam comes from bots.

There are two options in the settings.  The first allows you to not check registered users messages.  The second allows you to set a minimum trusted post count.  Any user that has less than that many posts will be check for spam.

When messages are approved, they are sent to Akismet to recognize them as NOT spam.  What Akismet calls ham.  There is a little template work that has to be done to add a spam link to the read pages if you want to report things you believe to be spam to Akismet.

This code has been tested for sanity.  That is all.  There are likely bugs.

Here is the readme:

Akismet Module
===============

To block spam
--------------
1. Go to Akismet.com and get a key.
2. Unpack the akismet module in your mods dir.
3. Go to your Phorum admin and turn the module on.
4. Edit the Settins for the module and enter you key.


To report spam
---------------
This is a little trickier.  You have to edit your template to insert the Spam
links on the read page.

In read.tpl, you will find something like: 

&amp;lt;a class=&amp;quot;PhorumNavLink&amp;quot; href=&amp;quot;javascript:if(window.confirm(&amp;#039;{LANG-&amp;gt;ConfirmDeleteThread}&amp;#039;))
window.location=&amp;#039;{MESSAGES-&amp;gt;delete_url2}&amp;#039;;&amp;quot;&amp;gt;{LANG-&amp;gt;DeleteThread}&amp;lt;/a&amp;gt;

&amp;lt;a class=&amp;quot;PhorumNavLink&amp;quot; href=&amp;quot;javascript:if(window.confirm(&amp;#039;{LANG-&amp;gt;ConfirmDeleteMessage}&amp;#039;))
window.location=&amp;#039;{MESSAGES-&amp;gt;delete_url1}&amp;#039;;&amp;quot;&amp;gt;{LANG-&amp;gt;DeleteMessage}&amp;lt;/a&amp;gt;

&amp;lt;a class=&amp;quot;PhorumNavLink&amp;quot; href=&amp;quot;javascript:if(window.confirm(&amp;#039;{LANG-&amp;gt;ConfirmDeleteMessage}&amp;#039;))
window.location=&amp;#039;{MESSAGES-&amp;gt;delete_url2}&amp;#039;;&amp;quot;&amp;gt;{LANG-&amp;gt;DelMessReplies}&amp;lt;/a&amp;gt;

You will want to add another link just before each of those:

&amp;lt;a class=&amp;quot;PhorumNavLink&amp;quot; href=&amp;quot;javascript:if(window.confirm(&amp;#039;{LANG-&amp;gt;ConfirmDeleteThread}&amp;#039;))
window.location=&amp;#039;{MESSAGES-&amp;gt;spam_url2}&amp;#039;;&amp;quot;&amp;gt;{LANG-&amp;gt;Spam}&amp;lt;/a&amp;gt;

&amp;lt;a class=&amp;quot;PhorumNavLink&amp;quot; href=&amp;quot;javascript:if(window.confirm(&amp;#039;{LANG-&amp;gt;ConfirmDeleteMessage}&amp;#039;))
window.location=&amp;#039;{MESSAGES-&amp;gt;spam_url1}&amp;#039;;&amp;quot;&amp;gt;{LANG-&amp;gt;Spam}&amp;lt;/a&amp;gt;

&amp;lt;a class=&amp;quot;PhorumNavLink&amp;quot; href=&amp;quot;javascript:if(window.confirm(&amp;#039;{LANG-&amp;gt;ConfirmDeleteMessage}&amp;#039;))
window.location=&amp;#039;{MESSAGES-&amp;gt;spam_url2}&amp;#039;;&amp;quot;&amp;gt;{LANG-&amp;gt;Spam}&amp;lt;/a&amp;gt;

These links will delete the spam and submit it to Akismet.

For read_threads.tpl, look for the same URLs.
</description>
        <link>https://www.phorum.org/support/read.php?16,113032,113032#msg-113032</link>
        <lastBuildDate>Sun, 09 Aug 2026 18:10:07 -0500</lastBuildDate>
        <generator>Phorum 6.0.4</generator>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,125219#msg-125219</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,125219#msg-125219</link>
            <description><![CDATA[ Yeah, long time ago ;-)<br />
<br />
Thank you!]]></description>
            <dc:creator>m.two</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Wed, 07 Nov 2007 05:28:35 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,125205#msg-125205</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,125205#msg-125205</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>m.two</strong><br /><blockquote class="bbcode"><div><small>Quote<br /></small><strong>Panu</strong><br />I had to change $PHORUM[&quot;user&quot;][&quot;post_count&quot;] to $PHORUM[&quot;user&quot;][&quot;posts&quot;] to skip checking registered users with enough posts.</div></blockquote>
<br />
Where I have to change that?</div></blockquote>
<br />
Ööh, one and a half year later... :)<br />
<br />
It should be in the first if block in the phorum_akismet_check_spam function. (akismet.php)]]></description>
            <dc:creator>Panu</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Tue, 06 Nov 2007 14:18:08 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,125198#msg-125198</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,125198#msg-125198</link>
            <description><![CDATA[ German language file for Akismet added!<br />
Depends on &quot;akismet-1.3.zip (5.8 KB)&quot; download link]]></description>
            <dc:creator>m.two</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Tue, 06 Nov 2007 10:36:03 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,125197#msg-125197</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,125197#msg-125197</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>Panu</strong><br />I had to change $PHORUM[&quot;user&quot;][&quot;post_count&quot;] to $PHORUM[&quot;user&quot;][&quot;posts&quot;] to skip checking registered users with enough posts.</div></blockquote>
<br />
Where I have to change that?]]></description>
            <dc:creator>m.two</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Tue, 06 Nov 2007 10:18:26 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,122364#msg-122364</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,122364#msg-122364</link>
            <description><![CDATA[ I had to change $PHORUM[&quot;user&quot;][&quot;post_count&quot;] to $PHORUM[&quot;user&quot;][&quot;posts&quot;] to skip checking registered users with enough posts.]]></description>
            <dc:creator>Panu</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Wed, 06 Jun 2007 05:02:27 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,120981#msg-120981</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,120981#msg-120981</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>brianlmoon</strong><br />(...)<br />
Someone in IRC pointed me to <a href="http://www.akismet.com" target="_blank"  rel="nofollow">Akismet</a>.  It looked neato.  So, I hacked up this module.  Akismet is a real time spam checking service.  You have to have a key from them to use it.  Its free for personal use.  If you are a commercial site, you can pay to get a commercial key.<br />
(...)<br />
This code has been tested for sanity.  That is all.  There are likely bugs.</div></blockquote>
<br />
So... I just set up my new Travel Forum and wanted antispam for it. Having heard good things about Akismet, this looked like the module to use (it still does ;)). So thanks, Brian!<br />
<br />
But, as you said: &quot;There are likely bugs.&quot; - and did encounter a number of problems (yes, I got the latest version - and I&#039;m running 5.1.20).<br />
<br />
First of all: the readme.txt isn&#039;t particularly clear, especially where it says&quot; &quot;For read_threads.tpl, look for the same URLs.&quot; - I got that sorted eventually: they&#039;re not the same, but <i>similar</i> in that read.tpl uses <b>MESSAGES</b>-&gt;something whereas read_threads.tpl uses <b>MESSAGE</b>-&gt;something. Logical, but kind of hard to spot when you&#039;re not familiar with the code yet.<br />
<br />
My second problem was that template modifications (as suggested in the readme.txt) would insert two different links, with different results, but both with the link description &quot;Spam&quot; - not very helpful. Even worse, I found that in the original read.tpl and read_threads.tpl templates the same confirmation message is used for deleting a single message and for deleting a message and all its reactions (subthread) - that&#039;s pretty misleading by itself, but when the &quot;Spam&quot; links use those same confirmation messages again, the moderator no longer gets a clue what is actually going to happen.<br />
<br />
I solved these user-interface problems with 1) a small addition to the main language file (extra confirmation message for deleting a subthread) and 2) extending the provided language file with a number of different link descriptions as well as a number of different confirmation messages.<br />
<br />
So far user interface.<br />
<br />
The next thing I ran into was that in akismet.php  the variable $buf was not initialized, which generated a warning. (Or NOTICE - I always run PHP to give me notices as well - they&#039;re what I call &quot;lurking bugs&quot; - and some nasty bugs can indeed be lurking in something as innocent-lokoing as an uninitialized variable.) So I added an initialization for it.<br />
<br />
Then I found that when I used a &quot;delete message&quot; link (or delete thread), the module was actually trying to report it as spam; surely that&#039;s inappropriate: there&#039;s a reason there are <i>separate</i> for &quot;report and delete&quot; and just &quot;delete&quot; - and there are plenty of reasons a moderator or admin might want to delete a message, subthread or whole thread without intending to report it as spam. That led to another modification in akismet.php,so that it uses its own $mod_step constants for handling spam, which are then changed to the standard values for deleting a message or thread. Which in turn required a change to the &quot;moderation&quot; hook in moderation.php to pick up any modified $mod_step values while allowing any other existing hook functions not to return a value.<br />
<br />
Finally, I noticed that the way the request for akismet.com is constructed contains two errors: 1) the HTTP RFCs require CRLF between headers (both RFC 1945 for HTTP 1.0 and RFC 2616 for HTTP 1.1) - the akismet.com server may be tolerant of this now, but that&#039;s no guarantee this will continue to be the case and their current API docs show an example using \r\n instead of just \n as akistmet.php is doing); and 2) while Phorum allows the admin to set any charset, the HTTP RFCs require any charset other than ISO-8859-1 to be specified explicitly.<br />
<br />
All that adds up to a bunch of changes, and not just in the module... so here goes - (approximate) line numbers as for version 5.1.20:<br />
<br />
1. <b>moderation.php</b> around line 58:<br />
change:<br />
<pre class="bbcode">
phorum_hook(&quot;moderation&quot;,$mod_step);</pre>
to:<br />
<pre class="bbcode">
# modified MK 2007-03-17
$tmp_mod_step = $mod_step;       # save value in case hook function doesn&#039;t return a value
$mod_step = phorum_hook(&quot;moderation&quot;,$mod_step);  # akismet hooks in here (and returns value now)
if (!isset($mod_step)) {
	$mod_step = $tmp_mod_step;
}</pre>
<br />
2. Language files: <b>english.php</b>, added:<br />
<pre class="bbcode">
&quot;ConfirmDeleteSubthread&quot;=&gt;      &quot;Are you sure you want to delete this message and all reactions?&quot;,</pre>
<br />
While I was at it, I added the corresponding items to <b>dutch.php</b> and <b>dutch_informal.php</b> which I&#039;m also using:<br />
<pre class="bbcode">
&quot;ConfirmDeleteSubthread&quot;=&gt;      &quot;Weet u zeker dat u dit bericht met alle reacties wilt verwijderen?&quot;,</pre>
<pre class="bbcode">
&quot;ConfirmDeleteSubthread&quot;=&gt;      &quot;Weet je zeker dat je dit bericht met alle reacties wilt verwijderen?&quot;,</pre>
<br />
3. Template changes to read.tpl and read_threads.tpl:<br />
My moderation section for <b>read.tpl</b> now looks like this:<br />
<pre class="bbcode">
  {IF MODERATOR true}
  &lt;div class=&quot;PhorumReadNavBlock&quot;&gt;
      &lt;span class=&quot;PhorumNavHeading PhorumHeadingLeft&quot;&gt;{LANG-&gt;Moderate}:&lt;/span&gt;
      {IF MESSAGES-&gt;threadstart true}
        &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteSpamThread}&#039;)) window.location=&#039;{MESSAGES-&gt;spam_url2}&#039;;&quot;&gt;{LANG-&gt;SpamThread}&lt;/a&gt;&amp;bull;
        &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteThread}&#039;)) window.location=&#039;{MESSAGES-&gt;delete_url2}&#039;;&quot;&gt;{LANG-&gt;DeleteThread}&lt;/a&gt;&amp;bull;
        {IF MESSAGES-&gt;move_url}&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGES-&gt;move_url}&quot;&gt;{LANG-&gt;MoveThread}&lt;/a&gt;&amp;bull;{/IF}
        &lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGES-&gt;merge_url}&quot;&gt;{LANG-&gt;MergeThread}&lt;/a&gt;&amp;bull;
        {IF MESSAGES-&gt;closed false}&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGES-&gt;close_url}&quot;&gt;{LANG-&gt;CloseThread}&lt;/a&gt;{ELSE}&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGES-&gt;reopen_url}&quot;&gt;{LANG-&gt;ReopenThread}&lt;/a&gt;{/IF}
      {ELSE}
        &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteSpamMessage}&#039;)) window.location=&#039;{MESSAGES-&gt;spam_url1}&#039;;&quot;&gt;{LANG-&gt;SpamMessage}&lt;/a&gt;&amp;bull;
        &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteMessage}&#039;)) window.location=&#039;{MESSAGES-&gt;delete_url1}&#039;;&quot;&gt;{LANG-&gt;DeleteMessage}&lt;/a&gt;&amp;bull;
        &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteSpamSubthread}&#039;)) window.location=&#039;{MESSAGES-&gt;spam_url2}&#039;;&quot;&gt;{LANG-&gt;SpamSubThread}&lt;/a&gt;&amp;bull;
        &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteSubthread}&#039;)) window.location=&#039;{MESSAGES-&gt;delete_url2}&#039;;&quot;&gt;{LANG-&gt;DelMessRepliesShort}&lt;/a&gt;&amp;bull;
        &lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGES-&gt;split_url}&quot;&gt;{LANG-&gt;SplitThread}&lt;/a&gt;
      {/IF}
      {IF MESSAGES-&gt;is_unapproved}&amp;bull;&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGES-&gt;approve_url}&quot;&gt;{LANG-&gt;ApproveMessage}&lt;/a&gt;
      {ELSE}&amp;bull;&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGES-&gt;hide_url}&quot;&gt;{LANG-&gt;HideMessage}&lt;/a&gt;{/IF}
      &amp;bull;&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGES-&gt;edit_url}&quot;&gt;{LANG-&gt;EditPost}&lt;/a&gt;
  &lt;/div&gt;
  {/IF}</pre>
The corresponding section for my <b>read_threads.tpl</b> looks like this:<br />
<pre class="bbcode">
{IF MODERATOR true}
&lt;div class=&quot;PhorumReadNavBlock&quot;&gt;
    &lt;span class=&quot;PhorumNavHeading&quot;&gt;{LANG-&gt;Moderate}:&lt;/span&gt;&amp;nbsp;
    {IF MESSAGE-&gt;threadstart true}
      &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteSpamThread}&#039;)) window.location=&#039;{MESSAGES-&gt;spam_url2}&#039;;&quot;&gt;{LANG-&gt;SpamThread}&lt;/a&gt;&amp;bull;
      &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteThread}&#039;)) window.location=&#039;{MESSAGE-&gt;delete_url2}&#039;;&quot;&gt;{LANG-&gt;DeleteThread}&lt;/a&gt;&amp;bull;
      {IF MESSAGE-&gt;move_url}&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGE-&gt;move_url}&quot;&gt;{LANG-&gt;MoveThread}&lt;/a&gt;&amp;bull;{/IF}
      &lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGE-&gt;merge_url}&quot;&gt;{LANG-&gt;MergeThread}&lt;/a&gt;&amp;bull;
      {IF MESSAGE-&gt;closed false}&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGE-&gt;close_url}&quot;&gt;{LANG-&gt;CloseThread}&lt;/a&gt;{ELSE}&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGE-&gt;reopen_url}&quot;&gt;{LANG-&gt;ReopenThread}&lt;/a&gt;{/IF}
    {ELSE}
      &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteSpamMessage}&#039;)) window.location=&#039;{MESSAGE-&gt;spam_url1}&#039;;&quot;&gt;{LANG-&gt;SpamMessage}&lt;/a&gt;&amp;bull;
      &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteMessage}&#039;)) window.location=&#039;{MESSAGE-&gt;delete_url1}&#039;;&quot;&gt;{LANG-&gt;DeleteMessage}&lt;/a&gt;&amp;bull;
      &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteSpamSubthread}&#039;)) window.location=&#039;{MESSAGE-&gt;spam_url2}&#039;;&quot;&gt;{LANG-&gt;SpamThread}&lt;/a&gt;&amp;bull;
      &lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteSubthread}&#039;)) window.location=&#039;{MESSAGE-&gt;delete_url2}&#039;;&quot;&gt;{LANG-&gt;DelMessRepliesShort}&lt;/a&gt;&amp;bull;
      &lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGE-&gt;split_url}&quot;&gt;{LANG-&gt;SplitThread}&lt;/a&gt;
    {/IF}
    {IF MESSAGE-&gt;is_unapproved}&amp;bull;&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGE-&gt;approve_url}&quot;&gt;{LANG-&gt;ApproveMessage}&lt;/a&gt;
    {ELSE}&amp;bull;&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGE-&gt;hide_url}&quot;&gt;{LANG-&gt;HideMessage}&lt;/a&gt;
    {/IF}
    &amp;bull;&lt;a class=&quot;PhorumNavLink&quot; href=&quot;{MESSAGE-&gt;edit_url}&quot;&gt;{LANG-&gt;EditPost}&lt;/a&gt;
&lt;/div&gt;
{/IF}</pre>
<br />
4. Finally, an updated akismet module, which I&#039;m attaching in ZIP format.<br />
All changes are documented with #end-of-line comments (I left those in deliberately so it&#039;s clear not only what I changed, but also why). It includes the extended English language file as well as corresponding Dutch and Dutch informal versions.<br />
<b>NOTE</b> I did <b>not</b> update the readme.txt - this message has all the instructions for changing the templates.<br />
<br />
Hope this helps some people ... :)]]></description>
            <dc:creator>iamback</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Sat, 17 Mar 2007 15:03:34 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,119081#msg-119081</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,119081#msg-119081</link>
            <description><![CDATA[ Thank you very much!]]></description>
            <dc:creator>Kajover</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Fri, 29 Dec 2006 19:48:23 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,119077#msg-119077</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,119077#msg-119077</link>
            <description><![CDATA[ here is a new version with the functions renamed.]]></description>
            <dc:creator>Brian Moon</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Fri, 29 Dec 2006 14:12:52 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,119063#msg-119063</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,119063#msg-119063</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>Kajover</strong><br />I dont get a word^^ Where do I rename functions and which one? How long will it take for you to implement that?<br />
Thanks in advance</div></blockquote>
<br />
what he&#039;s saying is... his function is trying to declair a function with a given name.  However, since you&#039;re using wordpress also, they&#039;re declairing a function with the same name so you have to rename the one phorum wants to use for itself:<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>Kajover</strong><br />Fatal error: Cannot redeclare akismet_verify_key() (previously declared in /www/htdocs/w006771d/forum/mods/akismet/akismet.php:61) in /www/htdocs/w006771d/wp-content/plugins/akismet/akismet.php on line 67</div></blockquote>
<br />
so, edit this document: /www/htdocs/w006771d/forum/mods/akismet/akismet.php<br />
on line 61, you&#039;ll find the function declaration for akismet_verify_key ..  change this to something else like phorum_akismet_verify_key<br />
<br />
NOW.  search in that module directory for any other references to akismet_verify_key, and rename them as well.<br />
<br />
HOWEVER... you might be better off waiting for brian to have a look at this.  IF his function does the same thing in the same way as the wordpress function, then he may just wrap the function declaration around an IF ! DEFINED and that&#039;ll fix the problem.]]></description>
            <dc:creator>freedman</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Thu, 28 Dec 2006 05:41:33 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,118997#msg-118997</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,118997#msg-118997</link>
            <description><![CDATA[ I dont get a word^^ Where do I rename functions and which one? How long will it take for you to implement that?<br />
Thanks in advance]]></description>
            <dc:creator>Kajover</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Thu, 21 Dec 2006 18:28:37 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,118995#msg-118995</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,118995#msg-118995</link>
            <description><![CDATA[ yes, you are running Phorum inside or along side Wordpress and what are the chances, we used the same damn function name.  You are gonna have to rename the funcitons or wait for me to get it done.]]></description>
            <dc:creator>Brian Moon</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Thu, 21 Dec 2006 17:26:32 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,118994#msg-118994</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,118994#msg-118994</link>
            <description><![CDATA[ Hey when I activate the plugin and click on a topic in the phorum this code shows up:<br />
<br />
Fatal error: Cannot redeclare akismet_verify_key() (previously declared in /www/htdocs/w006771d/forum/mods/akismet/akismet.php:61) in /www/htdocs/w006771d/wp-content/plugins/akismet/akismet.php on line 67<br />
<br />
Any idea?]]></description>
            <dc:creator>Kajover</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Thu, 21 Dec 2006 17:22:02 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,118777#msg-118777</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,118777#msg-118777</link>
            <description><![CDATA[ I just love this module. It made my life much easier.]]></description>
            <dc:creator>Jansku</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Mon, 11 Dec 2006 12:15:12 -0600</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,116488#msg-116488</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,116488#msg-116488</link>
            <description><![CDATA[ I fixed the settings issue.]]></description>
            <dc:creator>Brian Moon</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Tue, 12 Sep 2006 14:03:56 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,116202#msg-116202</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,116202#msg-116202</link>
            <description><![CDATA[ Could use the option to throw away the spam instead of marking as unapproved. Just a few days offline, and the phorum_db_get_unapproved_list (doing fetch) hit a RAM limit on my server, leaving the forum blank.]]></description>
            <dc:creator>vegardh</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Mon, 04 Sep 2006 03:52:53 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,116167#msg-116167</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,116167#msg-116167</link>
            <description><![CDATA[ My settings are also not savings.  More specifically, the &quot;Check Registered Users&quot; setting will not allow me to change it to Yes.  I am using Phorum version 5.1.15.<br />
<br />
There are no error messages.  I instead get the message &quot;Akismet Settings Saved.&quot;<br />
<br />
Any help would be appreciated.<br />
<br />
Thanks,<br />
<br />
John Vinci]]></description>
            <dc:creator>jcvinci</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Sat, 02 Sep 2006 19:34:42 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,115138#msg-115138</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,115138#msg-115138</link>
            <description><![CDATA[ I just wish there was a similar module for Invisionboard.... (two sites, two packages.)<br />
<br />
Often tempted to convert from IPB to phorum but it&#039;s a huge installation and I&#039;m using a registry system that requires IPB...]]></description>
            <dc:creator>allpar</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Fri, 04 Aug 2006 15:53:27 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,115137#msg-115137</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,115137#msg-115137</link>
            <description><![CDATA[ HAHA! Got it and everything is working.  Thanks much for the help!]]></description>
            <dc:creator>mnkyrench</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Fri, 04 Aug 2006 15:27:38 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,115131#msg-115131</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,115131#msg-115131</link>
            <description><![CDATA[ It was easy for me... I was pleasantly surprised.]]></description>
            <dc:creator>allpar</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Fri, 04 Aug 2006 15:08:03 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,115130#msg-115130</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,115130#msg-115130</link>
            <description><![CDATA[ ugh.  Thanks much.  Is it gonna be hard for me to upgrade?]]></description>
            <dc:creator>mnkyrench</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Fri, 04 Aug 2006 15:03:19 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,115129#msg-115129</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,115129#msg-115129</link>
            <description><![CDATA[ you are using an outdated phorum-version.<br />
phorum-5.1 is required for this module to work.]]></description>
            <dc:creator>Thomas Seifert</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Fri, 04 Aug 2006 15:02:51 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,115127#msg-115127</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,115127#msg-115127</link>
            <description><![CDATA[ I&#039;m getting an error (I&#039;m positive it&#039;s my fault as I&#039;m pretty new at this)<br />
<br />
Fatal error: Call to undefined function: phorum_admin_okmsg() in /home/www/fatmawrooney/phorum-5.0.21/mods/akismet/settings.php on line 33<br />
<br />
this is when I enter the key and hit submit.  <br />
<br />
Any help?  Thanks much in advance!!<br />
<br />
R]]></description>
            <dc:creator>mnkyrench</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Fri, 04 Aug 2006 15:01:38 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,114913#msg-114913</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,114913#msg-114913</link>
            <description><![CDATA[ I tried reinstalling from scratch and that fixed it!! Thanks! Great plug-in!]]></description>
            <dc:creator>allpar</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Mon, 31 Jul 2006 11:18:35 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,114912#msg-114912</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,114912#msg-114912</link>
            <description><![CDATA[ whats the name of the folder of the mod? did you rename that?<br />
it *has to* be &quot;akismet&quot;.]]></description>
            <dc:creator>Thomas Seifert</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Mon, 31 Jul 2006 11:10:59 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,114911#msg-114911</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,114911#msg-114911</link>
            <description><![CDATA[ No error messages at all. I&#039;m presented with the &quot;There are no settings for this module.&quot; page.]]></description>
            <dc:creator>allpar</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Mon, 31 Jul 2006 11:03:12 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,114908#msg-114908</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,114908#msg-114908</link>
            <description><![CDATA[ did you check that there are no error-messages shown above the form?<br />
what happens when you save the data? are you presented with the form again or do you get to the mods-page again?<br />
<br />
I&#039;m using the akismet-mod too and without problems.]]></description>
            <dc:creator>Thomas Seifert</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Mon, 31 Jul 2006 10:56:40 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,114907#msg-114907</guid>
            <title>Re: Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,114907#msg-114907</link>
            <description><![CDATA[ I tried installing this, but it won&#039;t &quot;take&quot; - I can enter my Akismet key and other prefs as often as I like but they don&#039;t stay in place. Any ideas? It&#039;s a TERRIFIC idea.]]></description>
            <dc:creator>allpar</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Mon, 31 Jul 2006 08:18:29 -0500</pubDate>
        </item>
        <item>
            <guid>https://www.phorum.org/support/read.php?16,113032,113032#msg-113032</guid>
            <title>Akismet Spam Service</title>
            <link>https://www.phorum.org/support/read.php?16,113032,113032#msg-113032</link>
            <description><![CDATA[ <b>Update:</b> I have fixed the settings issue.  It was saving, just not displaying the settings that were saved correctly.<br />
<br />
Someone in IRC pointed me to <a href="http://www.akismet.com" target="_blank"  rel="nofollow">Akismet</a>.  It looked neato.  So, I hacked up this module.  Akismet is a real time spam checking service.  You have to have a key from them to use it.  Its free for personal use.  If you are a commercial site, you can pay to get a commercial key.<br />
<br />
This module will send messages to Akismet for spam checking.  If Akismet believes they are spam, Phorum will alter the message to an unapproved state.  No message is given to the user.  No sense tipping them off and usually spam comes from bots.<br />
<br />
There are two options in the settings.  The first allows you to not check registered users messages.  The second allows you to set a minimum trusted post count.  Any user that has less than that many posts will be check for spam.<br />
<br />
When messages are approved, they are sent to Akismet to recognize them as NOT spam.  What Akismet calls ham.  There is a little template work that has to be done to add a spam link to the read pages if you want to report things you believe to be spam to Akismet.<br />
<br />
This code has been tested for sanity.  That is all.  There are likely bugs.<br />
<br />
Here is the readme:<br />
<pre class="bbcode">
Akismet Module
===============

To block spam
--------------
1. Go to Akismet.com and get a key.
2. Unpack the akismet module in your mods dir.
3. Go to your Phorum admin and turn the module on.
4. Edit the Settins for the module and enter you key.


To report spam
---------------
This is a little trickier.  You have to edit your template to insert the Spam
links on the read page.

In read.tpl, you will find something like: 

&lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteThread}&#039;))
window.location=&#039;{MESSAGES-&gt;delete_url2}&#039;;&quot;&gt;{LANG-&gt;DeleteThread}&lt;/a&gt;

&lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteMessage}&#039;))
window.location=&#039;{MESSAGES-&gt;delete_url1}&#039;;&quot;&gt;{LANG-&gt;DeleteMessage}&lt;/a&gt;

&lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteMessage}&#039;))
window.location=&#039;{MESSAGES-&gt;delete_url2}&#039;;&quot;&gt;{LANG-&gt;DelMessReplies}&lt;/a&gt;

You will want to add another link just before each of those:

&lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteThread}&#039;))
window.location=&#039;{MESSAGES-&gt;spam_url2}&#039;;&quot;&gt;{LANG-&gt;Spam}&lt;/a&gt;

&lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteMessage}&#039;))
window.location=&#039;{MESSAGES-&gt;spam_url1}&#039;;&quot;&gt;{LANG-&gt;Spam}&lt;/a&gt;

&lt;a class=&quot;PhorumNavLink&quot; href=&quot;javascript:if(window.confirm(&#039;{LANG-&gt;ConfirmDeleteMessage}&#039;))
window.location=&#039;{MESSAGES-&gt;spam_url2}&#039;;&quot;&gt;{LANG-&gt;Spam}&lt;/a&gt;

These links will delete the spam and submit it to Akismet.

For read_threads.tpl, look for the same URLs.
</pre>]]></description>
            <dc:creator>Brian Moon</dc:creator>
            <category>5.1 Phorum Modules / Add-Ons</category>
            <pubDate>Thu, 18 May 2006 21:19:28 -0500</pubDate>
        </item>
    </channel>
</rss>
