function privatemsg_filter_form_privatemsg_list_alter in Privatemsg 6
Same name and namespace in other branches
- 6.2 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_form_privatemsg_list_alter()
- 7.2 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_form_privatemsg_list_alter()
- 7 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_form_privatemsg_list_alter()
Implements hook_form_FORM_ID_alter().
Adds a filter widget to the message listing pages.
File
- privatemsg_filter/
privatemsg_filter.module, line 480 - Allows users to tag private messages and to filter based upon those tags.
Code
function privatemsg_filter_form_privatemsg_list_alter(&$form, $form_state) {
global $user;
if (privatemsg_user_access('filter private messages') && !empty($form['#data'])) {
$form += privatemsg_filter_dropdown($form_state, $form['#account']);
}
$fields = array_filter(variable_get('privatemsg_display_fields', array(
'participants',
)));
if (in_array('tags', $fields)) {
// Load thread id's of the current list.
$threads = array_keys($form['#data']);
// Fetch all tags of those threads.
$query = _privatemsg_assemble_query(array(
'tags',
'privatemsg_filter',
), $user, $threads, 3);
// Add them to #data
$result = db_query($query['query']);
while ($tag = db_fetch_array($result)) {
$form['#data'][$tag['thread_id']]['tags'][$tag['tag_id']] = $tag['tag'];
}
}
$tags = privatemsg_filter_get_tags_data($user);
if (privatemsg_user_access('tag private messages') && !empty($tags) && !empty($form['#data'])) {
$options = array();
$options[] = t('Apply tag...');
foreach ($tags as $tag_id => $tag) {
$options[$tag_id] = $tag;
}
$form['actions']['tag-add'] = array(
'#type' => 'select',
'#options' => $options,
'#default_value' => 0,
);
$form['actions']['tag-add-submit'] = array(
'#prefix' => '<div class="privatemsg-tag-add-submit">',
'#suffix' => '</div>',
'#type' => 'submit',
'#value' => t('Apply Tag'),
'#submit' => array(
'privatemsg_filter_add_tag_submit',
),
'#attributes' => array(
'class' => 'privatemsg-action-button',
),
);
$options[0] = t('Remove Tag...');
$form['actions']['tag-remove'] = array(
'#type' => 'select',
'#options' => $options,
'#default_value' => 0,
);
$form['actions']['tag-remove-submit'] = array(
'#prefix' => '<div class="privatemsg-tag-remove-submit">',
'#suffix' => '</div>',
'#type' => 'submit',
'#value' => t('Remove Tag'),
'#submit' => array(
'privatemsg_filter_remove_tag_submit',
),
'#attributes' => array(
'class' => 'privatemsg-action-button',
),
);
// JS for hiding the submit buttons.
drupal_add_js(drupal_get_path('module', 'privatemsg_filter') . '/privatemsg-filter-list.js');
}
}