Jump to content

Problema con modulo de buscador ( SOLUCIONADO )


Recommended Posts

Hola..

tengo ya la tienda online operativa hace ya unos meses y funcionaba perfectamente hasta hoy, no se porque pero el buscador de productos, no encuentra ningún producto. Tienen alguna idea del porque ???

 

les dejo en enlace a mi tienda online

 

y así es como lo tengo seleccionado:

 

85503537.jpg

por cierto, la version con la que trabajo es la 1.4.8

 

gracias

Edited by jonysi_d (see edit history)
Link to comment
Share on other sites

lo he modificado así, pero no se si esta correcto, no soy muy entendido en php, solo lo justito.. ;) :

 

---------- texto original ------------

 

 

$intersectArray[] = 'SELECT id_product
FROM '._DB_PREFIX_.'search_word sw
LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word
WHERE sw.id_lang = '.(int)$id_lang.'
AND sw.word LIKE
'.($word[0] == '-'
? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\''
: '\''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\''
);
if ($word[0] != '-')
$scoreArray[] = 'sw.word LIKE \''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'';
}
else
unset($words[$key]);

 

 

-------- y lo he dejado así -------- =

 

 

$intersectArray[] = 'SELECT distinct p.id_product
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product AND pl.id_lang = '.(int)$id_lang.')
WHERE pl.name LIKE \'%'.pSQL($expr).'%\'';
if ($word[0] != '-')
$scoreArray[] = 'sw.word LIKE \''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'';
}
else
unset($words[$key]);

 

correcto ?? lo pregunto porque antes de hacerlo en el servidor, quiero asegurarme no vaya a fastidiar nada ...

 

gracias

Edited by jonysi_d (see edit history)
Link to comment
Share on other sites

He estado mirando los archibos error.log de mi panel y efectivamente sale un error de búsqueda, a ver si pueden ayudarme. El error es el siguiente:

 

 

[Thu Apr 18 13:01:20 2013] [error] [client 83.46.171.114] PHP Warning: preg_replace(): Compilation failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 1829 in /var/www/vhosts/miweb/httpdocs/classes/Search.php on line 103, referer: http://www.miweb/miwebdeladmin/index.php?tab=AdminSearchConf&conf=6&token=b11dc9b221cdc288341e2fc3751b0f8c&conf=4

 

 

en la linea 103 tengo esto:

 

public static function sanitize($string, $id_lang, $indexation = false)
{
 $string = Tools::strtolower(strip_tags($string));
 $string = html_entity_decode($string, ENT_NOQUOTES, 'utf-8');
 $string = preg_replace('/(['.PREG_CLASS_NUMBERS.']+)['.PREG_CLASS_PUNCTUATION.']+(?=['.PREG_CLASS_NUMBERS.'])/u', '\1', $string);
 $string = preg_replace('/['.PREG_CLASS_SEARCH_EXCLUDE.']+/u', ' ', $string);
 if ($indexation)
  $string = preg_replace('/[._-]+/', '', $string);
 else
 {
  $string = preg_replace('/[._]+/', '', $string);
  $string = ltrim(preg_replace('/([^ ])-/', '$1', ' '.$string));
  $string = preg_replace('/[._]+/', '', $string);
  $string = preg_replace('/[^\s]-+/', '', $string);
linea 113	}
 $blacklist = Configuration::get('PS_SEARCH_BLACKLIST', (int)$id_lang);
 if (!empty($blacklist))
 {
  $string = preg_replace('/(?<=\s)('.$blacklist.')(?=\s)/Su', '', $string);
  $string = preg_replace('/^('.$blacklist.')(?=\s)/Su', '', $string);
  $string = preg_replace('/(?<=\s)('.$blacklist.')$/Su', '', $string);
  $string = preg_replace('/^('.$blacklist.')$/Su', '', $string);
 }
 if (!$indexation)
 {
  $words = explode(' ', $string);
  $processed_words = array();
  // search for aliases for each word of the query
  foreach ($words as $word)
  {
$alias = new Alias(null, $word);
if (Validate::isLoadedObject($alias))
 $processed_words[] = $alias->search;
else
 $processed_words[] = $word;
  }
  $string = implode(' ', $processed_words);
 }

Edited by jonysi_d (see edit history)
Link to comment
Share on other sites

Ya esta solucionado.. buf...!!!

menos mal..!!!

 

la solución por si a alguien le sirve es modificar el archivo classes/Search.php :

 

linea 56 debe de quedar así:

 

'\x{fd3f}\x{fdfc}-\x{fe6b}\x{feff}-\x{ff0f}\x{ff1a}-\x{ff20}\x{ff3b}-\x{ff40}'.

 

ni puñetera idea de porque se soluciona, pero si que se soluciona.

 

la solución es de este post: post de este foro

Edited by jonysi_d (see edit history)
  • Like 1
Link to comment
Share on other sites

Ya esta solucionado.. buf...!!!

menos mal..!!!

 

la solución por si a alguien le sirve es modificar el archivo classes/Search.php :

 

linea 56 debe de quedar así:

 

'\x{fd3f}\x{fdfc}-\x{fe6b}\x{feff}-\x{ff0f}\x{ff1a}-\x{ff20}\x{ff3b}-\x{ff40}'.

 

ni puñetera idea de porque se soluciona, pero si que se soluciona.

 

la solución es de este post: post de este foro

Vaya !

 

Pues entoces añade la palabra solucionado al titulo del tema.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...