You are here

function privatemsg_filter_create_get_query in Privatemsg 6

Same name and namespace in other branches
  1. 6.2 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_create_get_query()
  2. 7.2 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_create_get_query()
  3. 7 privatemsg_filter/privatemsg_filter.module \privatemsg_filter_create_get_query()
1 call to privatemsg_filter_create_get_query()
privatemsg_filter_dropdown_submit in privatemsg_filter/privatemsg_filter.module

File

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

Code

function privatemsg_filter_create_get_query($filter) {
  $query = array();
  if (isset($filter['tags']) && !empty($filter['tags'])) {
    $ids = array();
    foreach ($filter['tags'] as $tag) {
      if ((int) $tag > 0) {
        $ids[] = $tag;
      }
      else {
        $query['tags'][] = $tag;
      }
    }
    $sql = 'SELECT pmt.tag FROM {pm_tags} pmt WHERE pmt.tag_id IN (' . implode(', ', $filter['tags']) . ')';
    $result = db_query($sql);
    while ($row = db_fetch_object($result)) {
      $query['tags'][] = $row->tag;
    }
    if (isset($query['tags'])) {
      $query['tags'] = implode(',', $query['tags']);
    }
  }
  if (isset($filter['author']) && !empty($filter['author'])) {
    foreach ($filter['author'] as $author) {
      if (is_object($author) && isset($author->uid) && isset($author->name)) {
        $query['author'][] = $author->name;
      }
      elseif ($author_obj = user_load($author)) {
        $query['author'][] = $author_obj->name;
      }
    }
    if (isset($query['author'])) {
      $query['author'] = implode(',', $query['author']);
    }
  }
  if (isset($filter['search']) && !empty($filter['search'])) {
    $query['search'] = $filter['search'];
  }
  return $query;
}