This commit is contained in:
Bachir Soussi Chiadmi 2017-10-11 14:44:55 +02:00
parent 1b9f8e3ab4
commit 5f26b3e160

View File

@ -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,17 +753,19 @@ 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 // get the keywords from args and reconstruct the filter lines with default values
// dsm($args, "args"); $args_values = array();
if($path == 'explore' && $args[0] !== "ajax"){
$keywords = explode("+", $args[0]); $keywords = explode("+", $args[0]);
// dsm($keywords, 'keywords'); // dsm($keywords, 'keywords');
$default_values = array();
foreach ($keywords as $key => $value) { foreach ($keywords as $key => $value) {
$name = str_replace('"', '', $value); $name = str_replace('"', '', $value);
//Get the term //Get the term
@ -766,20 +778,25 @@ function materio_search_api_advanced_search_form($form, &$form_state){
// dsm($parents, 'parents'); // dsm($parents, 'parents');
// build default values // build default values
for ($p=count($parents)-1; $p >=0 ; $p--) { for ($p=count($parents)-1; $p >=0 ; $p--) {
$default_values[$key][] = $parents[$p]->tid; $args_values[$key][] = $parents[$p]->tid;
} }
} }
} }
// dsm($default_values, 'default_values'); // dsm($args_values, 'default_values');
}
// define number of lines,
// define default number of lines, 1 or more if some were already added // 1 by default
$form_state['filterlines'] = // or from url arguments
isset($form_state['filterlines']) // or let it as it is if already chanched by ajax
? $form_state['filterlines'] if(!isset($form_state['filterlines'])){
: count($default_values) if(count($args_values)){
? count($default_values) $form_state['filterlines'] = count($args_values);
: 1; }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"));