Quote:
Originally Posted by kerplunknet
Has anyone figured out the "Find More Posts by UsernameHere" issue? It results in these error messages, but the results seem to work properly:
PHP Code:
Warning: strpos() [function.strpos]: Empty delimiter. in /includes/functions_search.html on line 868
Warning: strpos() [function.strpos]: Empty delimiter. in /includes/functions_search.html on line 868
Warning: strpos() [function.strpos]: Empty delimiter. in /includes/functions_search.html on line 868
Warning: strpos() [function.strpos]: Empty delimiter. in /includes/functions_search.html on line 868
Warning: strpos() [function.strpos]: Empty delimiter. in /includes/functions_search.html on line 868
Warning: strpos() [function.strpos]: Empty delimiter. in /includes/functions_search.html on line 868
Warning: strpos() [function.strpos]: Empty delimiter. in /includes/functions_search.html on line 868
I really don't want to put Sphinx live until this is fixed... any advice would be welcome.
I am wondering if it has something to do with using an older 3.6 version of vBulletin.
|
This is a pretty old post but it is still relevant. The from looking at the line it's refereing to it looks like he problem is with the function that it is trying to find the search text in the post result to highlight it. Since there is no search text the value is null and strpos does't like that.
edit: I think I got it fixed. The problem is with the process_quote_removal function.
Keep in mind I am running 3.8.4pl2
I edited includes/functions_search.php and made the following changes
Search for this block of code:
Code:
function process_quote_removal($text, $cancelwords)
{
$lowertext = strtolower($text);
foreach ($cancelwords AS $word)
{
$word = str_replace('*', '', strtolower($word));
if (strpos($lowertext, $word) !== false)
{
// we found a highlight word -- keep the quote
return "\n" . str_replace('\"', '"', $text) . "\n";
}
}
return '';
}
This line is the culprit for me:
Code:
if (strpos($lowertext, $word) !== false)
it appears that $word ends up being null which causes strpos to puke the errors.
so I changed the function to this:
Code:
function process_quote_removal($text, $cancelwords)
{
$lowertext = strtolower($text);
foreach ($cancelwords AS $word)
{
$word = str_replace('*', '', strtolower($word));
if ($word !== '')
{
if (strpos($lowertext, $word) !== false)
{
// we found a highlight word -- keep the quote
return "\n" . str_replace('\"', '"', $text) . "\n";
}
}
}
return '';
}
You can see I just added an if statement to check if $word is null. If $word is null it skips over the code since there is obviously nothing to highlight.
I have tested the normal search and the search term is still highlighted and I am no longer getting errors during search for more posts by this user.. YMMV.