function ctools_field_foreign_keys in Chaos Tool Suite (ctools) 7
Derive the foreign keys that a field provides.
Parameters
$field_name: The name of the field.
Return value
An array of foreign keys according to Schema API.
1 call to ctools_field_foreign_keys()
- ctools_entity_from_field_get_children in plugins/
relationships/ entity_from_field.inc
File
- includes/
fields.inc, line 338 - Extend core fields with some helper functions to reduce code complexity within views and ctools plugins.
Code
function ctools_field_foreign_keys($field_name) {
$foreign_keys =& drupal_static(__FUNCTION__, array());
if (!isset($foreign_keys[$field_name])) {
$foreign_keys[$field_name] = array();
$field = field_info_field($field_name);
if (!empty($field['foreign keys'])) {
$foreign_keys[$field_name] = $field['foreign keys'];
}
else {
// Try to fetch foreign keys from schema, as not everything
// stores foreign keys properly in the field info.
$module = $field['module'];
module_load_install($module);
$schema = module_invoke($module, 'field_schema', $field);
if (!empty($schema['foreign keys'])) {
$foreign_keys[$field_name] = $schema['foreign keys'];
}
}
}
return $foreign_keys[$field_name];
}