array('group' => NULL, 'options' => array()), ); $items['custom_privatemsg_group_members_format'] = array( 'arguments' => array('group' => NULL, 'options' => array()), ); return $items; } /** * Implement hook_privatemsg_recipient_types_info(). */ function custom_privatemsg_privatemsg_recipient_type_info() { return array( 'group-admin' => array( 'name' => t('Group Admin'), 'description' => t('Enter the nid of a group to write a message to all admins of that group. Example: 27 [group-admin].'), 'load' => 'custom_privatemsg_group_admin_load_multiple', 'format' => 'custom_privatemsg_group_admin_format', 'autocomplete' => 'custom_privatemsg_group_admin_autocomplete', 'generate recipients' => 'custom_privatemsg_group_admin_load_recipients', 'count' => 'custom_privatemsg_group_admin_count_recipients', 'write access' => 'write privatemsg to group admin', 'view access' => 'view group admin recipients', ), 'group-members' => array( 'name' => t('Group Members'), 'description' => t('Enter the nid of a group to write a message to all members of that group. Example: 27 [group-admin].'), 'load' => 'custom_privatemsg_group_members_load_multiple', 'format' => 'custom_privatemsg_group_members_format', 'autocomplete' => 'custom_privatemsg_group_members_autocomplete', 'generate recipients' => 'custom_privatemsg_group_members_load_recipients', 'count' => 'custom_privatemsg_group_members_count_recipients', 'write access' => 'write privatemsg to group members', 'view access' => 'view group members recipients', ), ); } /** * Implement hook_privatemsg_message_validate(). */ function custom_privatemsg_privatemsg_message_validate($message, $form = FALSE) { global $_privatemsg_invalid_recipients; $status = array(); // If there are group members recipients, make sure author // is an admin of those groups. if (module_exists('custom_groups')) { foreach ($message['recipients'] as $recipient) { if ($recipient->type == 'group-members') { if (!custom_groups_is_admin($message->author, $recipient)) { $_privatemsg_invalid_recipients[] = $recipient->recipient; $errors['errors'][] = t('Only the "!name" group admin may send messages to it\'s members.', array('!name' => check_plain($recipient->title))) ; } } } } return $status; }