You are here

function _flipping_book_reference_potential_references_standard in Flipping Book 7

Helper function for flipping_book_reference_potential_references().

List of referenceable flipping_books defined by content types.

1 call to _flipping_book_reference_potential_references_standard()
flipping_book_reference_potential_references in ./flipping_book_reference.module
Retrieves an array of candidate referenceable flipping_books.

File

./flipping_book_reference.module, line 620
Defines a field type for referencing one flipping_book from a node.

Code

function _flipping_book_reference_potential_references_standard($field, $options) {
  $query = db_select('flipping_book', 'f');
  $query
    ->addField('f', 'fbid');
  $flipping_book_title_alias = $query
    ->addField('f', 'title', 'flipping_book_title');
  $flipping_book_dir_alias = $query
    ->addField('f', 'dir', 'flipping_book_dir');
  if ($options['string'] !== '') {
    switch ($options['match']) {
      case 'contains':
        $query
          ->condition('f.title', '%' . $options['string'] . '%', 'LIKE');
        break;
      case 'starts_with':
        $query
          ->condition('f.title', $options['string'] . '%', 'LIKE');
        break;
      case 'equals':

      // No match type or incorrect match type: use "="
      default:
        $query
          ->condition('f.title', $options['string']);
        break;
    }
  }
  if ($options['ids']) {
    $query
      ->condition('f.fbid', $options['ids'], 'IN');
  }
  if ($options['limit']) {
    $query
      ->range(0, $options['limit']);
  }
  $query
    ->orderBy($flipping_book_title_alias)
    ->orderBy($flipping_book_dir_alias);
  $result = $query
    ->execute()
    ->fetchAll();
  $references = array();
  foreach ($result as $flipping_book) {
    $references[$flipping_book->fbid] = array(
      'title' => $flipping_book->flipping_book_title,
      'rendered' => check_plain($flipping_book->flipping_book_title),
    );
  }
  return $references;
}