From 3404fffc27b42049645be675d0febb0650220ad3 Mon Sep 17 00:00:00 2001
From: Dave Reid <dave@davereid.net>
Date: Sun, 22 May 2011 14:59:57 -0500
Subject: [PATCH] Issue #1165388: Added mollom_hook_info() to allow Mollom hooks to be located in module.mollom.inc.

---
 mollom.module                |   18 ++++++++++++++
 tests/mollom_test.module     |   48 -------------------------------------
 tests/mollom_test.mollom.inc |   54 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+), 48 deletions(-)
 create mode 100644 tests/mollom_test.mollom.inc

diff --git a/mollom.module b/mollom.module
index 33cfc2e..7ea9f04 100644
--- a/mollom.module
+++ b/mollom.module
@@ -84,6 +84,23 @@ define('MOLLOM_REFRESH', 1100);
 define('MOLLOM_REDIRECT', 1200);
 
 /**
+ * Implements hook_hook_info().
+ */
+function mollom_hook_info() {
+  $hooks['mollom_form_info']       = array('group' => 'mollom');
+  $hooks['mollom_form_info_alter'] = array('group' => 'mollom');
+  $hooks['mollom_form_list']       = array('group' => 'mollom');
+  $hooks['mollom_form_list_alter'] = array('group' => 'mollom');
+  $hooks['mollom_form_insert'] = array('group' => 'mollom');
+  $hooks['mollom_form_update'] = array('group' => 'mollom');
+  $hooks['mollom_form_delete'] = array('group' => 'mollom');
+  $hooks['mollom_data_insert'] = array('group' => 'mollom');
+  $hooks['mollom_data_update'] = array('group' => 'mollom');
+  $hooks['mollom_data_delete'] = array('group' => 'mollom');
+  return $hooks;
+}
+
+/**
  * Implements hook_help().
  */
 function mollom_help($path, $arg) {
@@ -804,6 +821,7 @@ function mollom_form_list() {
       );
     }
   }
+  drupal_alter('mollom_form_list', $form_list);
   return $form_list;
 }
 
diff --git a/tests/mollom_test.module b/tests/mollom_test.module
index 842e167..dd078ab 100644
--- a/tests/mollom_test.module
+++ b/tests/mollom_test.module
@@ -207,54 +207,6 @@ function mollom_forms() {
 }
 
 /**
- * Implements hook_mollom_form_list().
- */
-function mollom_test_mollom_form_list() {
-  $forms['mollom_test_form'] = array(
-    'title' => 'Mollom test form',
-    'entity' => 'mollom_test',
-    'entity delete multiple callback' => 'mollom_test_delete_multiple',
-    'moderation callback' => 'mollom_test_mollom_form_moderation',
-  );
-  // The basic test form is identical to the mollom_test_form, but only
-  // registers minimal information (e.g., no entity or moderation callback) to
-  // integrate with Mollom.
-  $forms['mollom_basic_test_form'] = array(
-    'title' => 'Mollom basic test form',
-  );
-  // Same as above, but supports elements for text analysis.
-  $forms['mollom_basic_elements_test_form'] = array(
-    'title' => 'Mollom basic elements test form',
-  );
-  return $forms;
-}
-
-/**
- * Implements hook_mollom_form_info().
- */
-function mollom_test_mollom_form_info($form_id) {
-  if ($form_id == 'mollom_basic_test_form') {
-    return array();
-  }
-  $form_info = array(
-    'bypass access' => array('administer mollom'),
-    'elements' => array(
-      'title' => 'Title',
-      'body' => 'Body',
-      'exclude' => 'Some other field',
-      'parent][child' => 'Nested element',
-      'field' => 'Multiple value field',
-    ),
-    'mapping' => array(
-      'post_id' => 'mid',
-      'post_title' => 'title',
-      'author_name' => 'name',
-    ),
-  );
-  return $form_info;
-}
-
-/**
  * Form builder for Mollom test form.
  */
 function mollom_test_form($form, &$form_state, $mid = NULL) {
diff --git a/tests/mollom_test.mollom.inc b/tests/mollom_test.mollom.inc
new file mode 100644
index 0000000..b408770
--- /dev/null
+++ b/tests/mollom_test.mollom.inc
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * @file
+ * Mollom integration for the mollom_test module.
+ */
+
+/**
+ * Implements hook_mollom_form_list().
+ */
+function mollom_test_mollom_form_list() {
+  $forms['mollom_test_form'] = array(
+    'title' => 'Mollom test form',
+    'entity' => 'mollom_test',
+    'entity delete multiple callback' => 'mollom_test_delete_multiple',
+    'moderation callback' => 'mollom_test_mollom_form_moderation',
+  );
+  // The basic test form is identical to the mollom_test_form, but only
+  // registers minimal information (e.g., no entity or moderation callback) to
+  // integrate with Mollom.
+  $forms['mollom_basic_test_form'] = array(
+    'title' => 'Mollom basic test form',
+  );
+  // Same as above, but supports elements for text analysis.
+  $forms['mollom_basic_elements_test_form'] = array(
+    'title' => 'Mollom basic elements test form',
+  );
+  return $forms;
+}
+
+/**
+ * Implements hook_mollom_form_info().
+ */
+function mollom_test_mollom_form_info($form_id) {
+  if ($form_id == 'mollom_basic_test_form') {
+    return array();
+  }
+  $form_info = array(
+    'bypass access' => array('administer mollom'),
+    'elements' => array(
+      'title' => 'Title',
+      'body' => 'Body',
+      'exclude' => 'Some other field',
+      'parent][child' => 'Nested element',
+      'field' => 'Multiple value field',
+    ),
+    'mapping' => array(
+      'post_id' => 'mid',
+      'post_title' => 'title',
+      'author_name' => 'name',
+    ),
+  );
+  return $form_info;
+}
-- 
1.7.3.1

