Thread: Sphinx Search
View Single Post
  #773  
Old 03-13-2010, 04:18 PM
boggseric's Avatar
boggseric boggseric is offline
 
Join Date: Sep 2009
Posts: 62
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kerplunknet View Post
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:
Warningstrpos() [function.strpos]: Empty delimiterin /includes/functions_search.html on line 868

Warning
strpos() [function.strpos]: Empty delimiterin /includes/functions_search.html on line 868

Warning
strpos() [function.strpos]: Empty delimiterin /includes/functions_search.html on line 868

Warning
strpos() [function.strpos]: Empty delimiterin /includes/functions_search.html on line 868

Warning
strpos() [function.strpos]: Empty delimiterin /includes/functions_search.html on line 868

Warning
strpos() [function.strpos]: Empty delimiterin /includes/functions_search.html on line 868

Warning
strpos() [function.strpos]: Empty delimiterin /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.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01329 seconds
  • Memory Usage 1,792KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code
  • (1)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete