function ac_update_create_field_data in Availability Calendars 7.2
1 call to ac_update_create_field_data()
- ac_update_copy_data in ac_update/
ac_update.module
File
- ac_update/
ac_update.module, line 724 - Availability Calendars update: admin update code
Code
function ac_update_create_field_data(&$result) {
$supported_content_types = variable_get('availability_calendars_settings_content_types', array());
foreach ($supported_content_types as $supported_content_type) {
$field_name = $result['field instances'][$supported_content_type];
$field_info = field_info_field($field_name);
// Create the insert query for the field data table.
$field_table_name = key($field_info['storage']['details']['sql'][FIELD_LOAD_CURRENT]);
$field_cid = $field_info['storage']['details']['sql'][FIELD_LOAD_CURRENT][$field_table_name]['cid'];
$field_calendarname = $field_info['storage']['details']['sql'][FIELD_LOAD_CURRENT][$field_table_name]['name'];
$field_enabled = $field_info['storage']['details']['sql'][FIELD_LOAD_CURRENT][$field_table_name]['enabled'];
$language = field_is_translatable('node', $field_info) ? 'n.language' : "'und'";
$query = "\nSELECT\n 'node' as entity_type,\n n.type as bundle,\n 0 as deleted,\n n.nid as entity_id,\n n.nid as revision_id,\n {$language} as language,\n 0 as delta,\n 1 as {$field_enabled},\n '' as {$field_calendarname},\n acc.cid as {$field_cid}\nFROM {node} n\n INNER JOIN {availability_calendar_calendar} acc on acc.nid in (n.tnid, n.nid)\nWHERE n.type = '{$supported_content_type}'";
$field_data_query = "INSERT INTO {{$field_table_name}} {$query}";
$count = db_query($field_data_query)
->rowCount();
$result['messages'][] = array(
'message' => "Created {$count} fields (in table <em>{$field_table_name}</em>) for content type <em>{$supported_content_type}</em>.",
'type' => 'status',
);
// Create the insert query for the field revision table: content is the same
// as all fields start with 1 revision.
$field_table_name = key($field_info['storage']['details']['sql'][FIELD_LOAD_REVISION]);
$field_cid = $field_info['storage']['details']['sql'][FIELD_LOAD_REVISION][$field_table_name]['cid'];
$field_enabled = $field_info['storage']['details']['sql'][FIELD_LOAD_REVISION][$field_table_name]['enabled'];
$field_revision_query = "INSERT INTO {{$field_table_name}} {$query}";
$count = db_query($field_revision_query)
->rowCount();
$result['messages'][] = array(
'message' => "Created {$count} revisions (in table <em>{$field_table_name}</em>) for content type <em>{$supported_content_type}</em>.",
'type' => 'status',
);
}
}