ip_address(), 'session_id' => $session_id));
if ($response) {
$output = '';
$output .= ' ('. t('use image CAPTCHA') .')';
}
}
elseif ($type == 'image') {
$response = mollom('mollom.getImageCaptcha', array('author_ip' => ip_address(), 'session_id' => $session_id));
if ($response) {
$output = '';
$output .= ' ('. t('play audio CAPTCHA') .')';
}
}
print $output;
exit();
}
/**
* Return a list of the possible feedback options for content.
*/
function _mollom_feedback_options() {
return array(
'#type' => 'radios',
'#title' => t('Optionally report this to Mollom'),
'#options' => array(
'none' => t("Don't send feedback to Mollom"),
'spam' => t('Report as spam or unsolicited advertising'),
'profanity' => t('Report as obscene, violent or profane content'),
'low-quality' => t('Report as low-quality content or writing'),
'unwanted' => t('Report as unwanted, taunting or off-topic content'),
),
'#default_value' => 'none',
'#description' => t("Mollom is a web service that helps you moderate your site's content: see http://mollom.com for more information. By sending feedback to Mollom, you teach Mollom about the content you like and dislike, allowing Mollom to do a better job helping you moderate your site's content. If you want to report multiple posts at once, you can use Mollom's bulk operations on the content and comment administration pages."),
);
}
/**
* This function reports a comment as feedback and deletes it.
*/
function mollom_report_comment($form_state, $cid) {
if ($comment = _comment_load($cid)) {
$form['cid'] = array('#type' => 'value', '#value' => $cid);
$form['feedback'] = _mollom_feedback_options();
return confirm_form($form,
t('Are you sure you want to delete the comment and report it?'),
isset($_GET['destination']) ? $_GET['destination'] : 'node/'. $comment->nid,
t('This action cannot be undone.'),
t('Delete'), t('Cancel'));
}
}
/**
* This function deletes a comment and optionally sends feedback to Mollom.
*/
function mollom_report_comment_submit($form, &$form_state) {
if ($form_state['values']['confirm']) {
if ($comment = _comment_load($form_state['values']['cid'])) {
// Load the Mollom session data:
$data = mollom_get_data('comment-'. $comment->cid);
// Provide feedback to Mollom if available:
if (isset($data) && isset($data->session) && isset($form_state['values']['feedback']) && $form_state['values']['feedback'] != 'none') {
mollom('mollom.sendFeedback', array('session_id' => $data->session, 'feedback' => $form_state['values']['feedback']));
}
// Delete a comment and its replies:
module_load_include('inc', 'comment', 'comment.admin');
_comment_delete_thread($comment);
_comment_update_node_statistics($comment->nid);
cache_clear_all();
drupal_set_message(t('The comment has been deleted.'));
}
}
$form_state['redirect'] = "node/$comment->nid";
}
/**
* This function deletes a node and optionally sends feedback to Mollom.
*/
function mollom_report_node($form_state, $nid) {
if ($node = node_load($nid)) {
$form['nid'] = array('#type' => 'value', '#value' => $node->nid);
$form['feedback'] = _mollom_feedback_options();
return confirm_form($form,
t('Are you sure you want to delete %title and report it?', array('%title' => $node->title)),
isset($_GET['destination']) ? $_GET['destination'] : 'node/'. $node->nid,
t('This action cannot be undone.'),
t('Delete'), t('Cancel'));
}
}
/**
* This function deletes a node and optionally sends feedback to Mollom.
*/
function mollom_report_node_submit($form, &$form_state) {
if ($form_state['values']['confirm']) {
if ($node = node_load($form_state['values']['nid'])) {
// Load the Mollom session data:
$data = mollom_get_data('node-'. $node->nid);
// Provide feedback to Mollom if available:
if (isset($data) && isset($data->session) && isset($form_state['values']['feedback']) && $form_state['values']['feedback'] != 'none') {
mollom('mollom.sendFeedback', array('session_id' => $data->session, 'feedback' => $form_state['values']['feedback']));
}
// Delete the node. Calling this function will delete any comments,
// clear the cache and print a status message.
node_delete($node->nid);
}
}
$form_state['redirect'] = '';
}