Index: mollom.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/mollom/mollom.module,v retrieving revision 1.2.2.16 diff -u -p -r1.2.2.16 mollom.module --- mollom.module 19 Aug 2008 15:42:30 -0000 1.2.2.16 +++ mollom.module 19 Aug 2008 21:39:38 -0000 @@ -599,6 +599,14 @@ function _mollom_protectable_forms() { 'mode' => MOLLOM_MODE_ANALYSIS, ); } + + // Trackbacks + if (module_exists('trackback')) { + $forms['trackback'] = array( + 'name' => 'trackbacks', + 'mode' => MOLLOM_MODE_ANALYSIS, + ); + } } return $forms; @@ -1097,6 +1105,38 @@ function mollom($method, $data = array() } /** + * Implementation of hook_trackback(). + * + * Checks incoming Trackback with Mollom. + */ +function mollom_trackback(&$trackback, $op) { + if (variable_get('mollom_trackback', 0) && ($op == 'receive' || $op == 'insert')) { + dsm($trackback); + $data = array( + 'post_title' => $trackback->subject, + 'post_body' => $trackback->excerpt, // Dev. Mode: 'spam', 'ham', 'unsure' + 'author_name' => $trackback->name, // Site name of Trackback + 'author_url' => $trackback->url, + 'author_ip' => $trackback->site, + ); + dsm($data); + $response = mollom('mollom.checkContent', $data); + dsm($response); + case ($response->spam) { + case MOLLOM_ANALYSIS_HAM: + // Do nothing/publicise + case MOLLOM_ANALYSIS_SPAM: + // Delete the Trackback (+ note through watchdog()) + case MOLLOM_ANALYSIS_UNSURE: + // Put into Trackback's moderation queue and allow for the site's + // maintainer to tell Mollom whether it was good or bad - possibly by + // catching $op == 'publish'/'unpublish'/'delete'? Or add new 'publish + // and report as ham to Mollom' and 'delete and report as spam to Mollom'? + } + } +} + +/** * This function generate an array with all the information required to * authenticate against Mollom. To prevent that requests are forged and * that you are impersonated, each request is signed with a hash computed