function money_update_6001 in Money field 6
Update all money fields to reflect the changes in display mode setting.
Reference: http://drupal.org/node/217842
File
- ./
money.install, line 122 - Module installation/uninstallation hooks.
Code
function money_update_6001() {
drupal_load('module', 'content');
if ($abort = content_check_update('money')) {
return $abort;
}
$ret = array();
$result = db_query("SELECT field_name, type_name, widget_settings FROM {content_node_field_instance} WHERE widget_type = 'money_widget'");
while ($field = db_fetch_object($result)) {
$widget_settings = unserialize($field->widget_settings);
if (isset($widget_settings['currency_display_mode'])) {
$widget_settings['currency_display_mode'] = $widget_settings['currency_display_mode'] == 'symbol' ? 'a|+|s' : 'a|+|c';
$widget_settings = serialize($widget_settings);
$success = db_query("UPDATE {content_node_field_instance} SET widget_settings = '%s' WHERE type_name = '%s' AND field_name = '%s'", $widget_settings, $field->type_name, $field->field_name);
$ret[] = array(
'success' => $success !== FALSE,
'query' => strtr('Updating definition of the Money CCK field %field-name for type %type-name.', array(
'%field-name' => $field->field_name,
'%type-name' => $field->type_name,
)),
);
}
}
if (!empty($ret)) {
content_clear_type_cache();
}
return $ret;
}