<?php /* Template Name: busqueda avanzada */ ?>
<?php
/**
 * The template for displaying search results pages.
 *
 * @package bloggr
 */
global $wpdb;
global $post;
get_header(); 

		$var_fecha_ini=get_query_var('fechaIni');
		$var_fecha_fin=get_query_var('fechaFin');
		$var_categorias=get_query_var('concepto');
		$var_fuente=get_query_var('fuente');
		$var_texto=get_query_var('search');
		$var_tag=get_query_var('tag');
		$user_id=get_current_user_id();

	
			$filtros= true;
			$cabecera='';
			$where ='';
			$condiciones_posts='';
			$categorias_usuario='';
			$condiciones_adicionales='';
		if(strlen($var_texto)<=0 && $var_fecha_ini=='' && $var_fecha_fin=='' && ($var_tag<1||strlen($var_tag[0])<1)  && ($var_categorias<1||strlen($var_categorias[0])<1) && ($var_fuente<1||strlen($var_fuente[0])<1)){
			$filtros= false;
		}else{
			$query_str=get_query_noticias_busqueda();
			$cabecera=$cabecera.'<h4>';
					if (!(strlen($var_texto)<=0)){
				$palabra_buscada=$var_texto;
				$palabra_limpia=str_replace('\"','"',$var_texto);
				$cabecera=$cabecera.'<b>Palabra buscada: </b>'.$palabra_limpia.'.<br>';
			/*	$condiciones_posts= 'AND (((LOWER(wp_posts.post_title) LIKE LOWER(%s))
										OR (LOWER(wp_posts.post_excerpt) LIKE LOWER(%s))
										OR (LOWER(wp_posts.post_content) LIKE LOWER(%s))))' ;*/
				
				$todas_palabras=array();
				$cadena_modificada=str_replace('\"', '"##_comillas', $palabra_buscada);
				$palabras_sucias=explode('"', $cadena_modificada);
				foreach($palabras_sucias as $palabras_sucia){
					$comillas=strpos($palabras_sucia,'##_comillas');
					if($comillas===false){
						$palabras_sucia2=trim($palabras_sucia,' ');
						$palabras=explode(' ', $palabras_sucia2);
						foreach ($palabras as $palabra){
								$todas_palabras[]=$palabra;
						}
					
					
					}else{
						$palabra=str_replace('##_comillas','',$palabras_sucia);
						if(strlen ($palabra)>0){
							$todas_palabras[]=$palabra;
						}
						
					}
					
				}
				foreach ($todas_palabras as $palabra){
						$condiciones_posts=$condiciones_posts. ' AND (((wp_posts.post_title LIKE %s)
										OR (wp_posts.post_excerpt LIKE %s)
										OR (wp_posts.post_content LIKE %s)))' ;
						/** no es un error el parámetro se añade tres veces, una por cada campo de la BD **/
						$params_query[]='%'.$palabra.'%';
						$params_query[]='%'.$palabra.'%';
						$params_query[]='%'.$palabra.'%';
						
				}
				
				
				
							
								
								//$palabra_buscada='%'.$var_texto.'%';
				
			}
			if (!($var_fecha_ini=='')){
				$cabecera=$cabecera.'<b>Desde: </b>'.$var_fecha_ini.'.<br>';
				$condiciones_posts=$condiciones_posts. ' and post_date>=\''.$var_fecha_ini.'\'';
				
			}	if (!($var_fecha_fin=='')){
				$cabecera=$cabecera.'<b>Hasta: </b>'.$var_fecha_fin.'.<br>';
				$condiciones_posts=$condiciones_posts. ' and post_date<=\''.$var_fecha_fin.'\'';
			}
			
				if (!($var_tag<1||strlen($var_tag[0])<1)){
					$i=0;
					
				
				   	$tag_ids = get_objects_in_term( $var_tag, array('post_tag') );
					//$cabecera=$cabecera.'.<br>';
					if(sizeof($tag_ids)>0){
						$condiciones_posts=$condiciones_posts.' and  ID in(';
								$str_post_ids= implode(",",$tag_ids);
								$condiciones_posts=$condiciones_posts.$str_post_ids;
								$condiciones_posts=$condiciones_posts.')';
					}else{
							$condiciones_posts=$condiciones_posts.'AND 1=0 ';
					}
			
					
			
			}
			$query_str= str_replace  ('#condiciones_posts#',$condiciones_posts,$query_str);
				
			if (!($var_categorias<1)){
				
				$i=0;
				$categorias_usuario=' and categoria_term.slug in(';
				
				   	foreach($var_categorias as $categoria2){
				   		if($i>0){
				   			//$cabecera=$cabecera.', ';
				   			$categorias_usuario=$categorias_usuario.',';
				   		}
				   		//$cabecera=$cabecera.$categoria2;
				   		$categorias_usuario=$categorias_usuario.'\''.$categoria2.'\'';
				   		$i=$i+1;
				   	}
					//$cabecera=$cabecera.'.<br>';
					$categorias_usuario=$categorias_usuario.')';
					
	
			}else{
					$user_categories = get_user_categories2($user_id);
					$str_categorias =implode(",",$user_categories);
					//echo 'CATEGORIAS'.$str_categorias;
					$categorias_usuario=' and categoria_term.term_id in('.$str_categorias.')';
					
				
			}
			//echo 'CATEGORIAS-'.$categorias_usuario.'---------';
				$query_str= str_replace('#categorias_usuario#',$categorias_usuario,$query_str);
		if (!($var_fuente<1||strlen($var_fuente[0])<1)){
					$i=0;
					$condiciones_adicionales=$condiciones_adicionales.' and  fuente_term.slug in(';
				
				   	foreach($var_fuente as $fuente2){
				   		if($i>0){
				   			//$cabecera=$cabecera.', ';
				   			$condiciones_adicionales=$condiciones_adicionales.',';
				   		}
				   		//$cabecera=$cabecera.$fuente2;
				   		$condiciones_adicionales=$condiciones_adicionales.'\''.$fuente2.'\'';
				   		$i=$i+1;
				   	}
					//$cabecera=$cabecera.'.<br>';
					$condiciones_adicionales=$condiciones_adicionales.')';
			
			}
				
			
				
					$query_str= str_replace  ('#condiciones_adicionales#',$condiciones_adicionales,$query_str);
			//echo $query_str;
		}
		

?>

<div class="grid grid-pad">
<div class="col-4-12" style="padding-top:70px;padding-right:10px;">
	<div style="border: solid 1px black;padding:5px;margin:5px;">
		<form role="custom_search" method="get" class="search-form" action="<?php echo home_url( '/busqueda-avanzada/' ); ?>">
		  <label>
		    <span><?php echo _x( 'Search for:', 'label' ) ?></span>
		    <input style="width:99%;" type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search …', 'placeholder' ) ?>" value='<?php echo $palabra_limpia ?>' name="search" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
		  </label> <br><i> Utilice "" para realizar búsquedas literales.</i><br>
		  <i>En las búsquedas por texto libre (sin comillas) es preferible no incluir artículos. Ej. botella leche vs botella de leche</i><br><br>

			  
		  <span><?php echo _x( 'Categorías:', 'label' ) ?></span>
		   <select multiple style="width:100%;margin-bottom:10px;" id="concepto" name="concepto[]">
		    <option value="">Todos</option>
		    <?php
		    $product_ids = get_user_categories2();
		    $args=  array (
		            'taxonomy' => 'category', //empty string(''), false, 0 don't work, and return empty array
		            'orderby' => 'name',
		            'order' => 'ASC',
		            'hide_empty' => true, //can be 1, '1' too
		            'include' => $product_ids, //empty string(''), false, 0 don't work, and return empty array
		           );
		           $categories=get_terms($args);
				 if (!($var_categorias<1||strlen($var_categorias[0])<1)){
		         //if(sizeof($var_categorias)>0){
			
		    		$cabecera=$cabecera.'<b>Categorías:</b> ';
		    	}
		    	$i=0;
		    foreach ($categories as $category) {
		    	$categoria_seleccionada='';
		    	//echo 'sizeof($var_categorias)-'.sizeof($var_categorias);
		    
		    	foreach($var_categorias as $categoria2){	
		    	   	
		    		if ( strcmp($category->slug, $categoria2) === 0){
		    				$categoria_seleccionada='selected';
		    		if($i>0){
				   			$cabecera=$cabecera.', ';
				   			
				   		}
				   		$cabecera=$cabecera.$category->name;
				   		$i++;
		    		}
		    	}
		    	
		    	?>
		      <option value="<?php echo $category->slug;?>" <?php echo $categoria_seleccionada?>><?php echo $category->name;?></option>
		    <?php } 	
		     if (!($var_categorias<1||strlen($var_categorias[0])<1)){
					$cabecera=$cabecera.'.';
			 }?>
		  </select><br>
		   <span><?php echo _x( 'Etiquetas:', 'label' ) ?></span>
		   <select multiple style="width:100%;margin-bottom:10px;" id="tag" name="tag[]">
		    <option value="">Todos</option>
		    <?php
		  //  $product_ids = get_user_categories_2($user_id);
		    $args=  array (
		            'taxonomy' => 'post_tag', //empty string(''), false, 0 don't work, and return empty array
		            'orderby' => 'name',
		            'order' => 'ASC',
		            'hide_empty' => true, //can be 1, '1' too
		             //empty string(''), false, 0 don't work, and return empty array
		           );
		           $tags=get_terms($args);
		         //if(sizeof($var_tag)>0){
				if (!($var_tag<1||strlen($var_tag[0])<1)){
		    		$cabecera=$cabecera.'<b>Etiquetas:</b> ';
		    	}
		    	$i=0;
		    foreach ($tags as $tag) {
		    	$tag_seleccionado='';
		    	//echo 'sizeof($var_categorias)-'.sizeof($var_categorias);
		    
		    	foreach($var_tag as $tag2){	
		    	   	
		    		if ( strcmp($tag->slug, $tag2) === 0){
		    				$tag_seleccionado='selected';
		    		if($i>0){
				   			$cabecera=$cabecera.', ';
				   			
				   		}
				   		$cabecera=$cabecera.$tag->name;
				   		$i++;
		    		}
		    	}
		    	
		    	?>
		      <option value="<?php echo $tag->term_id;?>" <?php echo $tag_seleccionado?>><?php echo $tag->name;?></option>
		    <?php } 	
		    
		    	if (!($var_tag<1||strlen($var_tag[0])<1)){
					$cabecera=$cabecera.'.';
				}?>
		  </select><br>
		  
		   <span><?php echo _x( 'Fuentes:', 'label' ) ?></span>
		   <select multiple style="width:100%;margin-bottom:10px;" id="fuente" name="fuente[]">
		    <option value="">Todos</option>
		    <?php
		   
		    $args=  array (
		            'taxonomy' => 'fuente', //empty string(''), false, 0 don't work, and return empty array
		            'orderby' => 'name',
		            'order' => 'ASC',
		            'hide_empty' => true, //can be 1, '1' too
		            //empty string(''), false, 0 don't work, and return empty array
		           );
		           $sources=get_terms($args);
		         if((!($var_fuente<1||strlen($var_fuente[0])<1))){
		    		$cabecera=$cabecera.'<br><b>Fuentes:</b> ';
		    	}
		           $i=0;
		    foreach ($sources as $source) {
		    	$fuente_seleccionada='';
		    	//echo sizeof($var_categorias);
		    	foreach($var_fuente as $fuente2){		    	
		    		if ( strcmp($source->slug, $fuente2) === 0){
		    				$fuente_seleccionada='selected';
		    				if($i>0){
				   			$cabecera=$cabecera.', ';
				   			
				   		}
				   		$cabecera=$cabecera.$source->name;
				   		$i++;
				   		
		    		}
		    	}
		    	?>
		      <option value="<?php echo $source->slug;?>" <?php echo $fuente_seleccionada?>><?php echo $source->name;?></option>
		    <?php }
		       if((!($var_fuente<1||strlen($var_fuente[0])<1))){
		    		 $cabecera=$cabecera.'.<br>';
		    	}?>
		    
		  </select><br>
		  
		
		  
		  <span" ><?php echo _x( 'Desde:', 'label' ) ?></span>
		    <input style="width:100%;margin-bottom:10px;" type="date" name="fechaIni" value=<?php echo $var_fecha_ini?>><br>
		    <span ><?php echo _x( 'Hasta:', 'label' ) ?></span>
		    <input style="width:100%;margin-bottom:10px;" type="date" name="fechaFin" value=<?php echo $var_fecha_fin?>><br>
		 
		  <input type="submit" class="search-submit" style="font-size:14px;color:#222;" value="<?php echo esc_attr_x( 'Search', 'submit button' ) ?>" />
		  <input type="reset" class="search-submit" style="font-size:14px;color:#222;" value="Limpiar filtros" name="reset" onclick="return resetForm(this.form);">
		</form>
</div></div>
	<div class="col-8-12">
        <section id="primary" class="content-area page-search">
            <main id="main" class="site-main" role="main">
    
            <?php $cabecera=$cabecera.'</h4><br>';

//	echo $query_str.'----';
		//echo $filtros.'----';
           if($filtros){
           			if (!(strlen($var_texto)<=0)){
						$palabra_buscada='%'.$var_texto.'%';
						$params_query[]=$user_id;
						//$pageposts = $wpdb->get_results($wpdb->prepare( $query_str,$palabra_buscada,$palabra_buscada,$palabra_buscada,$user_id));
						
						$pageposts = $wpdb->get_results($wpdb->prepare( $query_str,$params_query));
				
           			}else{
           				$pageposts = $wpdb->get_results($wpdb->prepare( $query_str,$user_id));
           			}

 //	echo $wpdb->last_query;
            if ($pageposts) : ?>
    
                <header class="page-header">
                    <h1 class="page-title"><?php printf( __( 'Resultados para: %s', 'bloggr' ), '<span>' . '</span>' ); ?></h1>
                    <?php echo $cabecera;?>
              <?php if (  sizeof($pageposts)<1000){?>
              <h7> <br><?php echo sizeof($pageposts);?> resultados encontrados.</h7><br>
              <?php }else{?>
              <h7> <br>Se muestran los 1000 resultados más recientes</h7>
              <?php }?>
              <br>
               
                </header><!-- .page-header -->
    
    			
    		 	<div id="masonry-container">
                <?php /* Start the Loop */ 
                
               // $user=get_current_user_id();?>
                <?php foreach ($pageposts as $post):  ?>
    
                    <?php
                    /**
                     * Run the loop for the search to output the results.
                     * If you want to overload this in a child theme then include a file
                     * called content-search.php and that will be used instead.
                     */
                    //echo get_post_type();
                  // $rel = get_user_relation_id( $user , 0, get_the_ID(), 'delete' );
                   //echo $rel.'-';
                  // if (!$rel){
                 
                            get_template_part( 'content', '' );
                 
                    ?>
    
                <?php endforeach; ?>
    			</div>
                
                <?php bloggr_paging_nav(); ?>
    
            <?php else : ?>
    
                
                   <h3> No se han encontrado para las opciones seleccionadas</h3>
    
    
            <?php endif; 
            
           }else {
           
           ?>
          <h3> Seleccione una opción de filtrado y pulse "Buscar"</h3>
           <?php }?>
    
            </main><!-- #main -->
        </section><!-- #primary -->
	</div>

</div>
<?php get_footer(); ?>
