Advertisement:

Author Topic: Búsqueda por Campo Personalizado sin Categoría activa (Solucionado)  (Read 1220 times)

jjnavarro

  • Newbie
  • *
  • Posts: 11
Hola buenas, estoy buscando la forma de poder cambiar las opciones de búsqueda en la caja de búsquedas de la página principal. Me aparece el "hueco para escribir las búsquedas" "Escoger categoría" y por último "Seleccionar una región".

¿Como podría cambiar dichas opciones? en ved de seleccionar una región, me gustaría poner un campo personalizado que ya he creado. Muchas gracias!
« Last Edit: December 12, 2015, 03:18:43 pm by jjnavarro »

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: Modificar la caja de busqueda
« Reply #1 on: December 11, 2015, 08:58:48 pm »
Hola,

Interesante, normalmente la búsqueda por campos personalizados solo funciona si hay una categoría activa, pero se puede conseguir con algo de código.

¿Qué tema estas usando? ???

Saludos

jjnavarro

  • Newbie
  • *
  • Posts: 11
Re: Modificar la caja de busqueda
« Reply #2 on: December 11, 2015, 09:00:35 pm »
Buenas teseo Estoy usando Next Revo, muchas gracias! ;-)

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: Modificar la caja de busqueda
« Reply #3 on: December 11, 2015, 09:30:28 pm »
¿Estamos hablando de un campo personalizado de tipo select (Como el de región)? ???

jjnavarro

  • Newbie
  • *
  • Posts: 11
Re: Modificar la caja de busqueda
« Reply #4 on: December 12, 2015, 04:35:28 am »
Perdona crack que me has pillado yéndome a currar y no me ha dado tiempo a contestar más. Si correcto, estamos hablando de ese tipo de campos. Sería sustituirlo pero claro ahí ya me pierdo y encima novato con osclass... mala combinación, un saludo! 

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: Modificar la caja de busqueda
« Reply #5 on: December 12, 2015, 02:29:42 pm »
Bueno, esto debería funcionar:

1.- Sustituir el Select de Región por el de tu campo personalizado:

Localiza este bloque en oc-content\themes\next_revo\inc.search.php:

Code: [Select]
      <div class="cell selector">
               <?php next_region_select() ; ?>
                </div>

Reemplázalo con:

Code: [Select]
    <div class="cell selector">
        <?php $cfIdentifier 'sample-dropdown';
        
$field Field::newInstance()->findBySlug($cfIdentifier);
        
FieldForm::meta($field); ?>

    </div>
    <script type="text/javascript">
        var metaIdentifier = 'meta_<?php echo $cfIdentifier?>';
        $("label[for='" + metaIdentifier + "']").remove();
        $("select#" + metaIdentifier).prepend('<option value="" selected="selected">Select an option</option>').change();
    </script>

Y tienes que adaptarlo a tus circunstancias específicas:

a.- Reemplaza sample-dropdown con el identificador real de tu campo personalizado (eso lo averiguas en las Opciones Avanzadas del campo personalizado en el Panel de Administración).

b.- Reemplaza Select an option con un texto apropiado ("Selecciona Modelo/Tamaño/etc", algo descriptivo del campo personalizado).

...............

2.- Para conseguir búsquedas por ese campo personalizado sin necesidad de que haya una categoría activa:

Añade esto al final del todo de functions.php de tu tema:
Notas:
1.- Cuida de no dejar líneas en blanco después de esto.
2.- si functions.php de tu tema no termina con ?> , quita la primera línea de mi código.

Code: [Select]
<?php
function cust_isolated_custom_field_search() {
    
    
$params Params::getParamsAsArray();
    
    if (
$params['meta'] && !@$params['sCategory']) {
        
reset($params['meta']);
        
$id key($params['meta']);
        
        
Search::newInstance()->addConditions(sprintf
          
"%st_item.pk_i_id IN (SELECT fk_i_item_id FROM %st_item_meta WHERE fk_i_field_id = '%d' AND s_value = '%s')"DB_TABLE_PREFIXDB_TABLE_PREFIX$id$params['meta'][$id]  
        )); 
    }
}

osc_add_hook('search_conditions''cust_isolated_custom_field_search');
?>


Saludos

jjnavarro

  • Newbie
  • *
  • Posts: 11
Re: Modificar la caja de busqueda (SOLUCIONADO)
« Reply #6 on: December 12, 2015, 03:07:11 pm »
Increíble crack, todo un lujazo poder contar con alguien como tu. La solución la he implementado y ha quedado impecable. Además las búsquedas se hacen sin problemas al seleccionar cada opción, así que la solución es perfecta!

Muchas gracias!

PD: En ved de modificar el selector de región, modifique el selector de categoría y todo de lujo!
« Last Edit: December 12, 2015, 03:15:36 pm by jjnavarro »

teseo

  • Hero Member
  • *****
  • Posts: 6169
Re: Modificar la caja de busqueda (SOLUCIONADO)
« Reply #7 on: December 12, 2015, 03:17:42 pm »
De nada :)

Creo que el título del tema debería quedarse más específico, ¿qué tal: Búsqueda por Campo Personalizado sin Categoría activa (Solucionado)?

Saludos

jjnavarro

  • Newbie
  • *
  • Posts: 11
Re: Búsqueda por Campo Personalizado sin Categoría activa (Solucionado)
« Reply #8 on: December 12, 2015, 03:19:12 pm »
Apañado  ;)