function crm_core_contact_update_7006 in CRM Core 7
Add "name" field to "crm_core_contact" table.
File
- modules/
crm_core_contact/ crm_core_contact.install, line 345 - Install, update and uninstall functions for the CRM Core Contact module.
Code
function crm_core_contact_update_7006(&$sandbox) {
$t = get_t();
$msgs = array();
if (!db_field_exists('crm_core_contact', 'name')) {
$field_schema = array(
'description' => 'Plain text contact name used in DB queries. Updated on contact update.',
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
);
$new_keys = array(
'indexes' => array(
'contact_name' => array(
'name',
),
),
);
db_add_field('crm_core_contact', 'name', $field_schema, $new_keys);
$msgs[] = $t('Field "name" was successfully added to "crm_core_contact" table.');
}
crm_core_contact_default_label_format_install();
// Processing existing contacts.
if (!isset($sandbox['progress'])) {
$sandbox['progress'] = 0;
$sandbox['current'] = 0;
$sandbox['total'] = db_query('SELECT COUNT(contact_id) FROM {crm_core_contact}')
->fetchField();
if (empty($sandbox['total'])) {
$msgs[] = $t('No contact records to update.');
return implode(' ', $msgs);
}
}
$contact_ids = db_select('crm_core_contact', 'c')
->fields('c', array(
'contact_id',
))
->condition('contact_id', $sandbox['current'], '>')
->range(0, 10)
->orderBy('contact_id', 'ASC')
->execute()
->fetchCol();
foreach ($contact_ids as $contact_id) {
$contact = crm_core_contact_load($contact_id);
$contact
->save();
$sandbox['progress']++;
$sandbox['current'] = $contact
->identifier();
}
$msgs[] = $t('Updated @count contact records.', array(
'@count' => count($contact_ids),
));
$sandbox['#finished'] = empty($sandbox['total']) ? 1 : $sandbox['progress'] / $sandbox['total'];
return implode(' ', $msgs);
}