|
@@ -601,6 +601,11 @@ function materio_search_api_node_view($node, $view_mode, $langcode) {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+// _____ __ ______
|
|
|
|
+// / ___/___ ____ ___________/ /_ / ____/___ _________ ___
|
|
|
|
+// \__ \/ _ \/ __ `/ ___/ ___/ __ \ / /_ / __ \/ ___/ __ `__ \
|
|
|
|
+// ___/ / __/ /_/ / / / /__/ / / / / __/ / /_/ / / / / / / / /
|
|
|
|
+// /____/\___/\__,_/_/ \___/_/ /_/ /_/ \____/_/ /_/ /_/ /_/
|
|
/**
|
|
/**
|
|
* materiobase_search_form()
|
|
* materiobase_search_form()
|
|
*/
|
|
*/
|
|
@@ -728,6 +733,11 @@ function materio_search_api_search_form_submit($form, &$form_state){
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+// ___ __ __ _____ __
|
|
|
|
+// / | ____/ / ______ _____ ________ ____/ / / ___/___ ____ ___________/ /_
|
|
|
|
+// / /| |/ __ / | / / __ `/ __ \/ ___/ _ \/ __ / \__ \/ _ \/ __ `/ ___/ ___/ __ \
|
|
|
|
+// / ___ / /_/ /| |/ / /_/ / / / / /__/ __/ /_/ / ___/ / __/ /_/ / / / /__/ / / /
|
|
|
|
+// /_/ |_\__,_/ |___/\__,_/_/ /_/\___/\___/\__,_/ /____/\___/\__,_/_/ \___/_/ /_/
|
|
/**
|
|
/**
|
|
* materio_search_api_advanced_search_form()
|
|
* materio_search_api_advanced_search_form()
|
|
*/
|
|
*/
|
|
@@ -743,43 +753,50 @@ function materio_search_api_advanced_search_form($form, &$form_state){
|
|
$voc_machinename = $voc->machine_name;
|
|
$voc_machinename = $voc->machine_name;
|
|
// dsm($voc, "voc");
|
|
// dsm($voc, "voc");
|
|
|
|
|
|
- $values = $form_state['values'];
|
|
|
|
|
|
+ $values = isset($form_state['values']) ? $form_state['values'] : null;
|
|
|
|
|
|
$args = arg();
|
|
$args = arg();
|
|
|
|
+ // dsm($args, 'args');
|
|
|
|
+
|
|
$path = array_shift($args);
|
|
$path = array_shift($args);
|
|
|
|
|
|
- // TODO: get the keywords from args and reconstruct the filter lines with default values
|
|
|
|
- // dsm($args, "args");
|
|
|
|
- $keywords = explode("+", $args[0]);
|
|
|
|
- // dsm($keywords, 'keywords');
|
|
|
|
-
|
|
|
|
- $default_values = array();
|
|
|
|
- foreach ($keywords as $key => $value) {
|
|
|
|
- $name = str_replace('"', '', $value);
|
|
|
|
- //Get the term
|
|
|
|
- $terms = taxonomy_get_term_by_name($name, $voc_machinename);
|
|
|
|
- $term = array_shift($terms);
|
|
|
|
- // dsm($term, $term->tid.' : '.$term->name);
|
|
|
|
- // get parents
|
|
|
|
- if(isset($term->tid)){
|
|
|
|
- $parents = taxonomy_get_parents_all($term->tid);
|
|
|
|
- // dsm($parents, 'parents');
|
|
|
|
- // build default values
|
|
|
|
- for ($p=count($parents)-1; $p >=0 ; $p--) {
|
|
|
|
- $default_values[$key][] = $parents[$p]->tid;
|
|
|
|
|
|
+ // get the keywords from args and reconstruct the filter lines with default values
|
|
|
|
+ $args_values = array();
|
|
|
|
+ if($path == 'explore' && $args[0] !== "ajax"){
|
|
|
|
+ $keywords = explode("+", $args[0]);
|
|
|
|
+ // dsm($keywords, 'keywords');
|
|
|
|
+
|
|
|
|
+ foreach ($keywords as $key => $value) {
|
|
|
|
+ $name = str_replace('"', '', $value);
|
|
|
|
+ //Get the term
|
|
|
|
+ $terms = taxonomy_get_term_by_name($name, $voc_machinename);
|
|
|
|
+ $term = array_shift($terms);
|
|
|
|
+ // dsm($term, $term->tid.' : '.$term->name);
|
|
|
|
+ // get parents
|
|
|
|
+ if(isset($term->tid)){
|
|
|
|
+ $parents = taxonomy_get_parents_all($term->tid);
|
|
|
|
+ // dsm($parents, 'parents');
|
|
|
|
+ // build default values
|
|
|
|
+ for ($p=count($parents)-1; $p >=0 ; $p--) {
|
|
|
|
+ $args_values[$key][] = $parents[$p]->tid;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // dsm($args_values, 'default_values');
|
|
}
|
|
}
|
|
- // dsm($default_values, 'default_values');
|
|
|
|
-
|
|
|
|
|
|
|
|
- // define default number of lines, 1 or more if some were already added
|
|
|
|
- $form_state['filterlines'] =
|
|
|
|
- isset($form_state['filterlines'])
|
|
|
|
- ? $form_state['filterlines']
|
|
|
|
- : count($default_values)
|
|
|
|
- ? count($default_values)
|
|
|
|
- : 1;
|
|
|
|
|
|
+ // define number of lines,
|
|
|
|
+ // 1 by default
|
|
|
|
+ // or from url arguments
|
|
|
|
+ // or let it as it is if already chanched by ajax
|
|
|
|
+ if(!isset($form_state['filterlines'])){
|
|
|
|
+ if(count($args_values)){
|
|
|
|
+ $form_state['filterlines'] = count($args_values);
|
|
|
|
+ }else{
|
|
|
|
+ $form_state['filterlines'] = 1;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // dsm($form_state['filterlines'], "form_state['filterlines']");
|
|
|
|
|
|
// filters form container
|
|
// filters form container
|
|
$form['filters'] = array(
|
|
$form['filters'] = array(
|
|
@@ -853,7 +870,7 @@ function materio_search_api_advanced_search_form($form, &$form_state){
|
|
if(isset($values['filter-'.$l.'-0']) && $values['filter-'.$l.'-0']){
|
|
if(isset($values['filter-'.$l.'-0']) && $values['filter-'.$l.'-0']){
|
|
$default = $values['filter-'.$l.'-0'];
|
|
$default = $values['filter-'.$l.'-0'];
|
|
}else{
|
|
}else{
|
|
- $default = isset($default_values[$l][0]) ? $default_values[$l][0] : 0;
|
|
|
|
|
|
+ $default = isset($args_values[$l][0]) ? $args_values[$l][0] : 0;
|
|
}
|
|
}
|
|
|
|
|
|
// form select element for first level
|
|
// form select element for first level
|
|
@@ -880,10 +897,14 @@ function materio_search_api_advanced_search_form($form, &$form_state){
|
|
$level_1_ops[$term->tid] = t($term->name);
|
|
$level_1_ops[$term->tid] = t($term->name);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // get the default value
|
|
|
|
+ // from from_state values if ajax
|
|
|
|
+ // or from url args
|
|
|
|
+ // or 0
|
|
if(isset($values['filter-'.$l.'-1']) && $values['filter-'.$l.'-1']){
|
|
if(isset($values['filter-'.$l.'-1']) && $values['filter-'.$l.'-1']){
|
|
$default = $values['filter-'.$l.'-1'];
|
|
$default = $values['filter-'.$l.'-1'];
|
|
}else{
|
|
}else{
|
|
- $default = isset($default_values[$l][1]) ? $default_values[$l][1] : 0;
|
|
|
|
|
|
+ $default = isset($args_values[$l][1]) ? $args_values[$l][1] : 0;
|
|
}
|
|
}
|
|
// dsm($default, "default 1");
|
|
// dsm($default, "default 1");
|
|
|
|
|
|
@@ -904,11 +925,10 @@ function materio_search_api_advanced_search_form($form, &$form_state){
|
|
// $default = $values['filter-'.$l.'-1'];
|
|
// $default = $values['filter-'.$l.'-1'];
|
|
// $form['filters']['filterline-'.$ll]['filter-'.$ll.'-1']['#default_value'] = $default;
|
|
// $form['filters']['filterline-'.$ll]['filter-'.$ll.'-1']['#default_value'] = $default;
|
|
|
|
|
|
-
|
|
|
|
// build second level taxonomy tree and select options
|
|
// build second level taxonomy tree and select options
|
|
$taxotree2 = taxonomy_get_tree($vid, $default, 1, false);
|
|
$taxotree2 = taxonomy_get_tree($vid, $default, 1, false);
|
|
if(count($taxotree2)){
|
|
if(count($taxotree2)){
|
|
- $default = isset($default_values[$l][2]) ? $default_values[$l][2] : 0;
|
|
|
|
|
|
+ $default = isset($args_values[$l][2]) ? $args_values[$l][2] : 0;
|
|
// dsm($default, "default 2");
|
|
// dsm($default, "default 2");
|
|
|
|
|
|
$level_2_ops = array(0=>t("Choose a filter"));
|
|
$level_2_ops = array(0=>t("Choose a filter"));
|