function display_cache_view_mode_settings_form_submit in Display Cache 7
Custom submit handler for display cache settings form.
See also
display_cache_form_field_ui_display_overview_form_alter()
1 string reference to 'display_cache_view_mode_settings_form_submit'
- display_cache_field_ui_form in ./
display_cache.admin.inc - Display cache settings form.
File
- ./
display_cache.admin.inc, line 310 - Provides the Display Cache administrative interface.
Code
function display_cache_view_mode_settings_form_submit($form, $form_state) {
$values = $form_state['values'];
// Store display settings.
$settings['default']['use'] = $values['display_cache_use'];
$settings['default']['page_granularity'] = $values['display_cache_page_granularity'];
$settings['default']['user_granularity'] = $values['display_cache_user_granularity'];
$settings['default']['granularity'] = $values['display_cache_page_granularity'] | $values['display_cache_user_granularity'];
// Store field settings.
if (!empty($form_state['display_cache_field_settings'])) {
foreach ($form_state['display_cache_field_settings'] as $field_name) {
// Store override settings.
$field_override = $values['display_cache_field_' . $field_name . '_override'];
if ($settings['default']['use'] != DISPLAY_CACHE_FIELDS && $field_override == DISPLAY_CACHE_DISABLED) {
$settings[$field_name]['override'] = DISPLAY_CACHE_FIELDS;
}
else {
$settings[$field_name]['override'] = $field_override;
}
if ($settings[$field_name]['override'] == DISPLAY_CACHE_ENABLED) {
// Store page granularity for this field.
$field_page_granularity = $values['display_cache_field_' . $field_name . '_page_granularity'];
if (!empty($settings['default']['page_granularity']) && $settings['default']['page_granularity'] <= $field_page_granularity) {
$settings[$field_name]['page_granularity'] = $settings['default']['page_granularity'];
}
else {
$settings[$field_name]['page_granularity'] = $field_page_granularity;
}
// Store user granularity for this field.
$field_user_granularity = $values['display_cache_field_' . $field_name . '_user_granularity'];
if (!empty($settings['default']['user_granularity']) && $settings['default']['user_granularity'] <= $field_user_granularity) {
$settings[$field_name]['user_granularity'] = $settings['default']['user_granularity'];
}
else {
$settings[$field_name]['user_granularity'] = $field_user_granularity;
}
}
else {
// Set default settings for this field if it is not overridden.
$settings[$field_name]['page_granularity'] = $settings['default']['page_granularity'];
$settings[$field_name]['user_granularity'] = $settings['default']['user_granularity'];
}
$settings[$field_name]['granularity'] = $settings[$field_name]['page_granularity'] | $settings[$field_name]['user_granularity'];
}
}
$bundle = $form['#bundle'];
$entity_type = $form['#entity_type'];
$view_mode = $form['#view_mode'];
$variable_name = 'display_cache_' . $entity_type . '_' . $bundle . '_' . $view_mode;
variable_set($variable_name, $settings);
$display_cache_variables = variable_get('display_cache_variables', array());
if (!in_array($variable_name, $display_cache_variables)) {
$display_cache_variables[] = $variable_name;
variable_set('display_cache_variables', $display_cache_variables);
}
if ($entity_type === 'node') {
$clear_on_comment_publication_settings = display_cache_get_comment_publication_clears_host_entity_cache_settings($entity_type, $bundle);
$clear_on_comment_publication_settings[$view_mode] = $values['clear_on_comment_publication'];
$variable_name = display_cache_get_comment_publication_clears_host_entity_cache_setting_name($entity_type, $bundle);
variable_set($variable_name, $clear_on_comment_publication_settings);
// Unset the global clearing for this node type, because else it would over-
// write this setting.
variable_del('display_cache_comment_publication_clears_host_entity_cache_' . $bundle);
if (!in_array($variable_name, $display_cache_variables)) {
$display_cache_variables[] = $variable_name;
variable_set('display_cache_variables', $display_cache_variables);
}
}
}