You are here

function privatemsg_filter_get_filter in Privatemsg 7.2

Same name and namespace in other branches
  1. 6.2 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_get_filter()
  2. 6 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_get_filter()
  3. 7 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_get_filter()
3 calls to privatemsg_filter_get_filter()
privatemsg_filter_dropdown in privatemsg_filter/privatemsg_filter.module
privatemsg_filter_form_privatemsg_list_alter in privatemsg_filter/privatemsg_filter.module
Implements hook_form_FORM_ID_alter() to add a filter widget to the message listing pages.
privatemsg_filter_query_privatemsg_list_alter in privatemsg_filter/privatemsg_filter.module
Hook into the query builder to add the tagging info to the correct query

File

privatemsg_filter/privatemsg_filter.module, line 277
Allows users to tag private messages and to filter based upon those tags.

Code

function privatemsg_filter_get_filter($account) {
  $filter = array();

  // Filtering by tags is either allowed if the user can use tags or he can
  // filter.
  if (privatemsg_user_access('filter private messages') || privatemsg_user_access('tag private messages')) {
    if (isset($_GET['tags'])) {
      $_GET['tags'] = urldecode($_GET['tags']);
      $tag_data = privatemsg_filter_get_tags_data($account);
      foreach (explode(',', $_GET['tags']) as $tag) {
        if (isset($tag_data[$tag])) {
          $filter['tags'][$tag] = $tag;
        }
        elseif (in_array($tag, $tag_data)) {
          $filter['tags'][array_search($tag, $tag_data)] = array_search($tag, $tag_data);
        }
      }
    }
  }

  // Users can only use the text search or search by author if they have the
  // necessary permission.
  if (privatemsg_user_access('filter private messages')) {
    if (isset($_GET['author'])) {
      list($filter['author']) = _privatemsg_parse_userstring($_GET['author']);
    }
    if (isset($_GET['search'])) {
      $filter['search'] = $_GET['search'];
    }
  }
  if (!empty($filter)) {
    return $filter;
  }
  if (!empty($_SESSION['privatemsg_filter'])) {
    return $_SESSION['privatemsg_filter'];
  }
}