/** * The logic to process and validate form entry * * @global array $current_user * @return object WP_ERROR */ function cpm_page_new_process() { global $current_user; get_currentuserinfo(); $cpm_errors = new WP_Error(); if (!cpm_currentUserCanStartThread()) { $cpm_errors->add('noPermission', __('You do not have the permission to send new PMs.', 'cubepm')); return $cpm_errors; } $recipients = (array) explode(',', $_POST['cpm_recipient']); $valid_recipients = array(); $invalid_recipients = array(); foreach ($recipients as $recipient) { $recipient = trim($recipient); if ($recipient != '') { $user = get_user_by('login', $recipient); if ($user) { $valid_recipients[] = $user->ID; } else { $invalid_recipients[] = $recipient; } $valid_recipients = array_unique($valid_recipients); $invalid_recipients = array_unique($invalid_recipients); } } if (count($invalid_recipients) > 0) { $cpm_errors->add('invalidRecipient', __('One or more users you entered is invalid.', 'cubepm')); } else { if (count($valid_recipients) == 0) { $cpm_errors->add('emptyRecipient', __('Please enter the user you would like to send your PM to.', 'cubepm')); } else { if (in_array($current_user->ID, $valid_recipients)) { $cpm_errors->add('selfRecipient', __('You cannot send a PM to yourself!', 'cubepm')); } } } $subject = trim($_POST['cpm_subject']); if ($subject == '') { $cpm_errors->add('emptySubject', __('Please enter a subject!', 'cubepm')); } $message = trim($_POST['cpm_message']); if ($message == '') { $cpm_errors->add('emptyMessage', __('Please enter a message!', 'cubepm')); } if (count($cpm_errors->get_error_codes()) == 0) { cpm_new_thread($current_user->ID, $valid_recipients, apply_filters('cpm_subject', $subject), apply_filters('cpm_message', $message)); } return $cpm_errors; }
/** * CubePM HTML header * * @todo Improve interface * * @global $current_user; * @return string */ function cpm_header() { $html = '<div class="cpm-header">'; $html .= '<a class="cpm-button" href="' . cpm_buildURL(array('cpm_action' => 'inbox')) . '">' . __('Inbox', 'cubepm') . ' (' . cpm_inboxCount() . ')</a> '; if (cpm_currentUserCanStartThread()) { $html .= '<a class="cpm-button" href="' . cpm_buildURL(array('cpm_action' => 'new')) . '">' . __('New PM', 'cubepm') . '</a> '; } if (current_user_can('administrator')) { $html .= '<a class="cpm-button" href="' . cpm_buildURL(array('cpm_action' => 'admin-inbox')) . '">' . __('View all PMs', 'cubepm') . '</a> '; } $html .= '</div>'; return $html; }