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."));
}
}