function entity_embed_autocomplete_entity in Entity Embed 7
Same name and namespace in other branches
- 7.3 entity_embed.module \entity_embed_autocomplete_entity()
- 7.2 entity_embed.module \entity_embed_autocomplete_entity()
Page callback: Autocomplete for entities.
Parameters
$entity_type: The type of the entity being saved.
$entity_id: The ID of the entity being saved.
Return value
Any matching entities output as JSON.
1 string reference to 'entity_embed_autocomplete_entity'
- entity_embed_menu in ./
entity_embed.module - Implements hook_menu().
File
- ./
entity_embed.module, line 369 - Provides a CKEditor plugin and text filter for embedding and rendering entities.
Code
function entity_embed_autocomplete_entity($filter_format, $embed_button, $string) {
$matches = array();
$entity_type_id = $embed_button->entity_type;
$entity_type_bundles = $embed_button->entity_type_bundles;
$entity_type = entity_get_info($entity_type_id);
// Prevent errors if the entity type has no label key.
if (empty($entity_type['entity keys']['label'])) {
return drupal_json_output($matches);
}
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', $entity_type_id)
->propertyCondition($entity_type['entity keys']['label'], $string, 'STARTS_WITH')
->range(0, 10)
->propertyOrderBy($entity_type['entity keys']['label'], 'DESC')
->execute();
// Add optional bundle restrictions.
if (!empty($entity_type_bundles)) {
$query
->entityCondition('bundle', array_keys($entity_type_bundles));
}
$results = $query
->execute();
if (!empty($results)) {
$ids = array_keys($results[$entity_type_id]);
$entities = entity_load($entity_type_id, $ids);
foreach ($entities as $entity) {
$label = entity_label($entity_type_id, $entity);
$matches[$label] = check_plain($label);
}
}
return drupal_json_output($matches);
}