function guestbook_form_entry_form_submit in Guestbook 7.2
Same name and namespace in other branches
- 5.2 guestbook.module \guestbook_form_entry_form_submit()
- 5 guestbook.module \guestbook_form_entry_form_submit()
- 6.2 guestbook.module \guestbook_form_entry_form_submit()
- 6 guestbook.module \guestbook_form_entry_form_submit()
File
- ./
guestbook.module, line 594
Code
function guestbook_form_entry_form_submit($form, &$form_state) {
global $user;
$uid = $form_state['values']['uid'];
$message = $form_state['values']['message']['value'];
// Make sure this isn't a dupe.
$entry = db_query("SELECT message FROM {guestbook} WHERE recipient = :uid ORDER BY id DESC LIMIT 1", array(
':uid' => $uid,
))
->fetchAssoc();
if ($entry['message'] == $message) {
return;
}
// No empty entries.
if ($message == '') {
return;
}
if (module_exists('spam')) {
// Is this spam?
$spamcheck = $form_state['values']['anonname'] . ' ' . $form_state['values']['anonemail'] . ' ' . $form_state['values']['anonwebsite'];
if (spam_content_filter('guestbook', 1, $spamcheck, $message, '_guestbook_spam')) {
return;
}
}
// E-mail notification.
$iSendEmail = '';
$guestbook_mode = variable_get('guestbook_mode', GUESTBOOK_SITE_GUESTBOOK | GUESTBOOK_USER_GUESTBOOKS);
if ($uid == 0 && $guestbook_mode & GUESTBOOK_SITE_GUESTBOOK) {
$iSendEmail = variable_get('guestbook_send_email', '');
}
else {
if ($guestbook_mode & GUESTBOOK_USER_GUESTBOOKS) {
if ($uid != $user->uid) {
$guestbook_user = user_load_multiple(array(
$uid,
), array(
'status' => 1,
));
$guestbook_user = reset($guestbook_user);
}
else {
$guestbook_user = $user;
}
if ($guestbook_user->uid && empty($guestbook_user->data['guestbook_status']) && !empty($guestbook_user->data['guestbook_send_email'])) {
$iSendEmail = $guestbook_user->mail;
}
}
}
if ($iSendEmail) {
$params = array();
$params['body'] = $message;
$params['account'] = user_load($uid);
drupal_mail('guestbook', 'notification', $iSendEmail, user_preferred_language($params['account']), $params);
}
// Insert new message
if ($user->uid == 0) {
// Anonymous user.
$fields = array(
'anonname' => $form_state['values']['anonname'],
'anonemail' => $form_state['values']['anonemail'],
'anonwebsite' => $form_state['values']['anonwebsite'],
'author' => 0,
'recipient' => $uid,
'message' => $message,
'comment' => '',
'status' => $form_state['values']['status'],
'created' => REQUEST_TIME,
'message_format' => $form_state['values']['message']['format'],
);
}
else {
// Authenticated user.
$fields = array(
'author' => $user->uid,
'recipient' => $uid,
'message' => $message,
'comment' => '',
'status' => $form_state['values']['status'],
'created' => REQUEST_TIME,
'message_format' => $form_state['values']['message']['format'],
);
}
$entryid = db_insert('guestbook')
->fields($fields)
->execute();
// Notify other modules of the new guestbook entry.
$entry = db_query('SELECT * FROM {guestbook} WHERE id = :id', array(
':id' => $entryid,
))
->fetchAssoc();
module_invoke_all('guestbook', 'insert', $entry);
// Explain the approval queue if necessary.
if (empty($entry['status'])) {
if (!_guestbook_access('moderate', $uid)) {
drupal_set_message(t('Your message has been queued for review and will be published after approval.'));
}
}
else {
drupal_set_message(t('Your message has been added.'));
}
cache_clear_all();
}