MENU_LOCAL_TASK, 'title' => 'Messages', 'page callback' => 'messaging_simple_user_page', 'page arguments' => array(1), 'access callback' => 'messaging_simple_access', 'access arguments' => array(1), ); return $items; } /** * Access calback */ function messaging_simple_access($account) { global $user; return $account->uid && (($account->uid == $user->uid) || user_access('administer messaging')); } /** * Menu callback. Display pending messages to the user * * Sample Implementation of messaging pull methods */ function messaging_simple_user_page($account, $op = NULL, $id = NULL) { drupal_set_title(t('Messages for %name', array('%name' => $account->name))); // Fetch all pending messages. switch ($op) { case 'view': return drupal_get_form('messaging_simple_user_message', $account, $id); break; default: return messaging_simple_user_overview($account); } } /** * Display message overview list */ function messaging_simple_user_overview($account) { $output = ''; $messages = messaging_store('get', array('method' => 'simple', 'uid' => $account->uid), array('mqid DESC'), MESSAGING_SIMPLE_PAGER, 0, TRUE); if ($messages) { $header = array(t('Subject'), t('From'), t('Date')); $rows = array(); foreach ($messages as $message) { $message = (array)$message; $rows[] = array( l($message['subject'], 'user/'. $account->uid .'/messages/view/'. $message['mqid']), !empty($message['sender_account']) ? theme('username', $message['sender_account']) : t('System'), format_date($message['created']), ); } $output .= theme('table', $header, $rows); $output .= theme('pager', array(), MESSAGING_SIMPLE_PAGER); } else { $output .= '
'; } return $output; } /** * Display single message */ function messaging_simple_user_message($form_state, $account, $id) { $form = array(); if ($messages = messaging_store('get', array('mqid' => $id, 'method' => 'simple', 'uid' => $account->uid))) { $message = (array)array_shift($messages); $form['account'] = array('#type' => 'value', '#value' => $account); $form['message'] = array('#type' => 'value', '#value' => $message); $form['subject'] = array( '#type' => 'item', '#title' => t('Subject'), '#value' => $message['subject'], ); $form['body'] = array( '#type' => 'item', '#title' => t('Content'), '#value' => check_markup($message['body']), ); $form['delete'] = array( '#type' => 'submit', '#value' => t('Delete'), ); $form['#redirect'] = 'user/'. $account->uid .'/messages'; } return $form; } /** * Message form submit */ function messaging_simple_user_message_submit($form, &$form_state) { messaging_store('del', array('mqid' => $form_state['values']['message']['mqid'])); drupal_set_message(t('The message has been deleted')); } /** * Implementation of hook_messaging */ function messaging_simple_messaging($op = 'info') { switch($op) { case 'send methods': $info['simple'] = array( 'title' => t('Simple'), 'name' => t('Web'), 'group' => 'web', 'type' => MESSAGING_TYPE_PULL, 'glue' => '