You are here

content.menu.inc in Chaos Tool Suite (ctools) 6

Same filename and directory in other branches
  1. 7 includes/content.menu.inc

Contains menu item registration for the content tool.

The menu items registered are AJAX callbacks for the things like autocomplete and other tools needed by the content types.

File

includes/content.menu.inc
View source
<?php

/**
 * @file
 * Contains menu item registration for the content tool.
 *
 * The menu items registered are AJAX callbacks for the things like
 * autocomplete and other tools needed by the content types.
 */
function ctools_content_menu(&$items) {
  $base = array(
    'access arguments' => array(
      'access content',
    ),
    'type' => MENU_CALLBACK,
    'file' => 'includes/content.menu.inc',
  );
  $items['ctools/autocomplete/node'] = array(
    'page callback' => 'ctools_content_autocomplete_node',
  ) + $base;
}

/**
 * Helper function for autocompletion of node titles.
 */
function ctools_content_autocomplete_node($string) {
  if ($string != '') {
    $preg_matches = array();
    $match = preg_match('/\\[nid: (\\d+)\\]/', $string, $preg_matches);
    if (!$match) {
      $match = preg_match('/^nid: (\\d+)/', $string, $preg_matches);
    }
    if ($match) {
      $arg = $preg_matches[1];
      $where = "n.nid = %d";
    }
    else {
      $arg = $string;
      $where = "LOWER(n.title) LIKE LOWER('%%%s%%')";
    }
    if (!user_access('administer nodes')) {
      $where .= ' AND n.status = 1';
    }
    $result = db_query_range(db_rewrite_sql("SELECT n.nid, n.title, u.name FROM {node} n INNER JOIN {users} u ON u.uid = n.uid WHERE {$where}"), $arg, 0, 10);
    $matches = array();
    while ($node = db_fetch_object($result)) {
      $matches[$node->title . " [nid: {$node->nid}]"] = '<span class="autocomplete_title">' . check_plain($node->title) . '</span>';
    }
    drupal_json($matches);
  }
}

Functions

Namesort descending Description
ctools_content_autocomplete_node Helper function for autocompletion of node titles.
ctools_content_menu @file Contains menu item registration for the content tool.