You are here

privatemsg_filter.pages.inc in Privatemsg 7

Same filename and directory in other branches
  1. 7.2 privatemsg_filter/privatemsg_filter.pages.inc

User menu callbacks for privatemsg_filter module.

File

privatemsg_filter/privatemsg_filter.pages.inc
View source
<?php

/**
 * @file
 * User menu callbacks for privatemsg_filter module.
 */

/**
 * Return autocomplete results for tags.
 *
 * Most of this code has been lifted/modified from privatemsg_user_name_autocomplete().
 */
function privatemsg_filter_tags_autocomplete($string) {

  // 1: Parse $string and build a list of tags.
  $tags = array();
  $fragments = explode(',', $string);
  foreach ($fragments as $tag) {
    $tag = trim($tag);
    $tags[$tag] = $tag;
  }

  // 2: Find the next tag suggestion.
  $fragment = array_pop($tags);
  $matches = array();
  if (!empty($fragment)) {
    $query = _privatemsg_assemble_query(array(
      'tags_autocomplete',
      'privatemsg_filter',
    ), $fragment, $tags);
    $prefix = count($tags) ? implode(", ", $tags) . ", " : '';

    // 3: Build proper suggestions and print.
    foreach ($query
      ->execute() as $tag) {
      $matches[$prefix . $tag->tag . ", "] = $tag->tag;
    }
  }

  // convert to object to prevent drupal bug, see http://drupal.org/node/175361
  drupal_json_output((object) $matches);
}

Functions

Namesort descending Description
privatemsg_filter_tags_autocomplete Return autocomplete results for tags.