function nodeaccess_userreference_field_update_instance in Node access user reference 7.3
Implements hook_field_update_instance().
File
- ./
nodeaccess_userreference.module, line 245 - The Node access user reference module.
Code
function nodeaccess_userreference_field_update_instance($instance, $prior_instance) {
$field_info = field_info_field($instance['field_name']);
if (($field_info['type'] == 'entityreference' && $field_info['settings']['target_type'] == 'user' || $field_info['type'] == 'user_reference') && $instance['entity_type'] == 'node') {
$old_settings = isset($prior_instance['settings']['nodeaccess_userreference']) ? nodeaccess_userreference_reduce_variable($prior_instance['settings']['nodeaccess_userreference']) : array();
$new_settings = isset($instance['settings']['nodeaccess_userreference']) ? nodeaccess_userreference_reduce_variable($instance['settings']['nodeaccess_userreference']) : array();
if ($old_settings != $new_settings) {
nodeaccess_userreference_field_settings($instance['bundle'], $instance['field_name'], $new_settings);
$nodes = db_query("SELECT 1 FROM {node} WHERE type = :type", array(
':type' => $instance['bundle'],
))
->fetchField();
if ($nodes) {
// Because the field settings have changed we should prompt for a full rebuild.
node_access_needs_rebuild(TRUE);
}
}
}
}