bugfix
This commit is contained in:
		@@ -601,6 +601,11 @@ function materio_search_api_node_view($node, $view_mode, $langcode) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//    _____                      __       ______
 | 
			
		||||
//   / ___/___  ____ ___________/ /_     / ____/___  _________ ___
 | 
			
		||||
//   \__ \/ _ \/ __ `/ ___/ ___/ __ \   / /_  / __ \/ ___/ __ `__ \
 | 
			
		||||
//  ___/ /  __/ /_/ / /  / /__/ / / /  / __/ / /_/ / /  / / / / / /
 | 
			
		||||
// /____/\___/\__,_/_/   \___/_/ /_/  /_/    \____/_/  /_/ /_/ /_/
 | 
			
		||||
/**
 | 
			
		||||
 * materiobase_search_form()
 | 
			
		||||
 */
 | 
			
		||||
@@ -728,6 +733,11 @@ function materio_search_api_search_form_submit($form, &$form_state){
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//     ___       __                                __   _____                      __
 | 
			
		||||
//    /   | ____/ /   ______ _____  ________  ____/ /  / ___/___  ____ ___________/ /_
 | 
			
		||||
//   / /| |/ __  / | / / __ `/ __ \/ ___/ _ \/ __  /   \__ \/ _ \/ __ `/ ___/ ___/ __ \
 | 
			
		||||
//  / ___ / /_/ /| |/ / /_/ / / / / /__/  __/ /_/ /   ___/ /  __/ /_/ / /  / /__/ / / /
 | 
			
		||||
// /_/  |_\__,_/ |___/\__,_/_/ /_/\___/\___/\__,_/   /____/\___/\__,_/_/   \___/_/ /_/
 | 
			
		||||
/**
 | 
			
		||||
 * 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;
 | 
			
		||||
  // dsm($voc, "voc");
 | 
			
		||||
 | 
			
		||||
  $values = $form_state['values'];
 | 
			
		||||
  $values = isset($form_state['values']) ? $form_state['values'] : null;
 | 
			
		||||
 | 
			
		||||
  $args = arg();
 | 
			
		||||
  // dsm($args, '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');
 | 
			
		||||
  // 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');
 | 
			
		||||
 | 
			
		||||
  $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;
 | 
			
		||||
    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
 | 
			
		||||
  $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']){
 | 
			
		||||
      $default = $values['filter-'.$l.'-0'];
 | 
			
		||||
    }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
 | 
			
		||||
@@ -880,10 +897,14 @@ function materio_search_api_advanced_search_form($form, &$form_state){
 | 
			
		||||
          $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']){
 | 
			
		||||
          $default = $values['filter-'.$l.'-1'];
 | 
			
		||||
        }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");
 | 
			
		||||
 | 
			
		||||
@@ -904,11 +925,10 @@ function materio_search_api_advanced_search_form($form, &$form_state){
 | 
			
		||||
            // $default = $values['filter-'.$l.'-1'];
 | 
			
		||||
            // $form['filters']['filterline-'.$ll]['filter-'.$ll.'-1']['#default_value'] = $default;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            // build second level taxonomy tree and select options
 | 
			
		||||
            $taxotree2 = taxonomy_get_tree($vid, $default, 1, false);
 | 
			
		||||
            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");
 | 
			
		||||
 | 
			
		||||
              $level_2_ops = array(0=>t("Choose a filter"));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user