function guestbook_form_entry_form_submit in Guestbook 6.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 guestbook.module \guestbook_form_entry_form_submit()
- 7.2 guestbook.module \guestbook_form_entry_form_submit()
File
- ./
guestbook.module, line 535
Code
function guestbook_form_entry_form_submit($form, &$form_state) {
global $user;
$uid = $form_state['values']['uid'];
$message = $form_state['values']['message'];
// Make sure this isn't a dupe.
$result = db_query("SELECT message FROM {guestbook} WHERE recipient = %d ORDER BY id DESC LIMIT 1", $uid);
$entry = db_fetch_array($result);
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) {
$guestbook_user = $uid != $user->uid ? user_load(array(
'uid' => $uid,
'status' => 1,
)) : $user;
if ($guestbook_user->uid && empty($guestbook_user->guestbook_status) && !empty($guestbook_user->guestbook_send_email)) {
$iSendEmail = $guestbook_user->mail;
}
}
}
if ($iSendEmail) {
$params = array();
$params['body'] = $message;
$params['account'] = user_load(array(
'uid' => $uid,
));
drupal_mail('guestbook', 'notification', $iSendEmail, user_preferred_language($params['account']), $params);
}
// Insert new message
if ($user->uid == 0) {
// Anonymous user.
db_query("INSERT INTO {guestbook} (anonname, anonemail, anonwebsite, author, recipient, message, comment, status, created)\n VALUES('%s', '%s', '%s', %d, %d, '%s', '%s', %d, %d)", $form_state['values']['anonname'], $form_state['values']['anonemail'], $form_state['values']['anonwebsite'], 0, $uid, $message, '', $form_state['values']['status'], time());
}
else {
// Authenticated user.
db_query("INSERT INTO {guestbook} (author, recipient, message, comment, status, created)\n VALUES(%d, %d, '%s', '%s', %d, %d)", $user->uid, $uid, $message, '', $form_state['values']['status'], time());
}
// Notify other modules of the new guestbook entry.
$entryid = db_last_insert_id('guestbook', 'id');
$entry = db_fetch_array(db_query("SELECT * FROM {guestbook} WHERE id = %d", $entryid));
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();
}