You are here

function hs_content_taxonomy_views_common_config_form_submit in Hierarchical Select 5.3

Additional submit callback to redirect the user to the "Edit view" form.

Parameters

$form_id:

$form_values:

$view_name: Name of a view. Provides necessary context.

$field_name: Name of a field. Provides necessary context.

File

modules/hs_content_taxonomy_views.module, line 283
Implementation of the Hierarchical Select API for the Content Taxonomy Views module.

Code

function hs_content_taxonomy_views_common_config_form_submit($form_id, $form_values, $view_name, $field_name) {
  $view_id = db_result(db_query("SELECT vid FROM {view_view} WHERE name = '%s'", $view_name));
  $field = 'content_' . $field_name . '.' . $field_name . '_value';
  $filter = db_fetch_object(db_query("SELECT operator FROM {view_filter} WHERE vid = %d AND field = '%s'", $view_id, $field));
  $exposed_filter = db_fetch_object(db_query("SELECT operator, single FROM {view_exposed_filter} WHERE vid = %d AND field = '%s'", $view_id, $field));

  // Overrides when save_lineage is enabled.
  if ($form_values['hierarchical_select_config']['save_lineage']) {

    // "Operator" must always be 'AND'.
    $filter->operator = 'AND';

    // The exposed filter must be locked to 'AND'.
    $exposed_filter->operator = 1;

    // "Force single" must be disabled.
    $exposed_filter->single = 0;
  }
  else {

    // "Force single" must be enabled.
    $exposed_filter->single = 1;
  }

  // Overrides when the dropbox is enabled.
  if ($form_values['hierarchical_select_config']['dropbox']['status']) {

    // "Force single" must be disabled.
    $exposed_filter->single = 0;
  }
  if ($view_id === FALSE) {
    drupal_set_message(t("Could not update the view because it doesn't live in the database."), 'error');
  }
  else {
    db_query("UPDATE {view_filter} SET operator = '%s' WHERE vid = %d AND field = '%s'", $filter->operator, $view_id, $field);
    db_query("UPDATE {view_exposed_filter} SET operator = %d, single = %d WHERE vid = %d AND field = '%s'", $exposed_filter->operator, $exposed_filter->single, $view_id, $field);
    cache_clear_all('views_urls', 'cache_views');
    drupal_set_message(t("Updated the View's exposed filter according to the settings you made."));
  }
}