_i18n_node_references

  1. drupal
    1. 6 i18n.pages.inc function
    2. 7 i18n_node.pages.inc function
Drupal 7 _i18n_node_references($string, $match = 'contains', $params = array(), $limit = 10)

Find node title matches.

Parameters

$string: String to match against node title

$match: Match mode: 'contains', 'equals', 'starts_with'

$params: Other query arguments: type, language or numeric ones

2 calls to _i18n_node_references()

File

sites/all/modules/i18n/i18n_node/i18n_node.pages.inc, line 301
User page callbacks for the translation module.

Code

function _i18n_node_references($string, $match = 'contains', $params = array(), $limit = 10) {
  $query = db_select('node', 'n')
    ->fields('n', array('nid', 'title', 'type'))
    ->orderBy('n.title')
    ->orderBy('n.type')
    ->range(0, $limit);

  foreach ($params as $key => $value) {
    $query->condition($key, $value);
  }

  switch ($match) {
    case 'equals':
      $query->condition('n.title', $string);
      break;

    case 'starts_with':
      $query->condition('n.title', $string . '%', 'LIKE');
      break;

    case 'contains':
    default:
      $query->condition('n.title', '%' . $string . '%', 'LIKE');
      break;
  }

  // Disable and reenable i18n selection mode so no language conditions are inserted
  i18n_select(false);
  $references = array();
  foreach ($query->execute() as $node) {
    $references[$node->nid] = array(
      'title' => $node->title, 
      'rendered' => check_plain($node->title),
    );
  }
  i18n_select(true);
  return $references;
}