function hs_taxonomy_views_common_config_form_submit in Hierarchical Select 5.3
Same name and namespace in other branches
- 6.3 modules/hs_taxonomy_views.module \hs_taxonomy_views_common_config_form_submit()
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.
$vid: A vocabulary id. Provides necessary context.
File
- modules/
hs_taxonomy_views.module, line 275 - Implementation of the Hierarchical Select API for the Taxonomy module's Views exposed filters.
Code
function hs_taxonomy_views_common_config_form_submit($form_id, $form_values, $view_name, $vid) {
$view_id = db_result(db_query("SELECT vid FROM {view_view} WHERE name = '%s'", $view_name));
$field = 'term_node_' . $vid . '.tid';
$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."));
}
}