function _metatags_quick_field_attach in Meta tags quick 7.2
3 calls to _metatags_quick_field_attach()
File
- ./
metatags_quick.admin.inc, line 296
Code
function _metatags_quick_field_attach($entity_type, $bundle, $meta_name) {
static $meta_fields = FALSE;
static $field_id = array();
static $known_tags = FALSE;
// Get metatags_quick fields info
if (!$meta_fields) {
include_once drupal_get_path('module', 'metatags_quick') . '/known_tags.inc';
$known_tags = _metatags_quick_known_fields();
foreach (field_info_fields() as $name => $field_info) {
if ($field_info['module'] == 'metatags_quick') {
$meta_fields[$field_info['settings']['meta_name']] = $field_info;
$field_id[$field_info['settings']['meta_name']] = $field_info['id'];
}
}
}
// Ignore unknown tags.
if (!isset($known_tags[$meta_name])) {
return;
}
// Check if meta field exists, create if necessary.
$meta_name_real = empty($known_tags[$meta_name]['meta_name']) ? $meta_name : $known_tags[$meta_name]['meta_name'];
if (empty($field_id[$meta_name_real])) {
$field = array(
'field_name' => "meta_{$meta_name}",
'type' => 'metatags_quick',
'module' => 'metatags_quick',
'settings' => array(
'meta_name' => isset($known_tags[$meta_name]['meta_name']) ? $known_tags[$meta_name]['meta_name'] : $meta_name,
'max_length' => variable_get('metatags_quick_default_field_length', 255),
),
'cardinality' => 1,
);
$field = field_create_field($field);
$field_id[$meta_name] = $field['id'];
$meta_fields[$meta_name_real] = $field;
}
else {
$field = $meta_fields[$meta_name_real];
}
// Do nothing if instance already exists.
if (isset($field['bundles'][$entity_type]) && in_array($bundle, $field['bundles'][$entity_type])) {
return;
}
// Now create field instance attached to requested bundle
$instance = array(
'field_name' => $field['field_name'],
'entity_type' => $entity_type,
'bundle' => $bundle,
'label' => '(Meta)' . $known_tags[$meta_name]['title'],
'formatter' => 'metatags_quick_default',
'widget' => array(
'type' => $known_tags[$meta_name]['widget'],
'weight' => 0,
),
);
if (isset($known_tags[$meta_name]['options'])) {
$instance['settings']['options'] = $known_tags[$meta_name]['options'];
}
// Assign a default format for the field taken from known_tags.inc
if (isset($known_tags[$meta_name]['formatter'])) {
$instance['display']['default']['type'] = $known_tags[$meta_name]['formatter'];
}
// Assign a description for the field taken from known_tags.inc
if (isset($known_tags[$meta_name]['description'])) {
$instance['description'] = $known_tags[$meta_name]['description'];
}
field_create_instance($instance);
}