News:

Bored?  Looking to kill some time?  Want to chat with other SMF users?  Join us in IRC chat or Discord

Main Menu

Adding to the search URL

Started by Biology Forums, October 20, 2018, 01:53:30 PM

Previous topic - Next topic

Biology Forums

I'm trying to enhance the search functionality on the forum, so I'm looking to add a Google Custom Search whenever nothing is found in the database for a search.

What I did was add:

$type = 'MY_SPECIFIC_ID';

$context['html_headers'] .= '
<script>
(function() {
var cx = \''.$type.'\';
var gcse = document.createElement(\'script\');
gcse.type = \'text/javascript\';
gcse.async = true;
gcse.src = \'https://cse.google.com/cse.js?cx=\' + cx;
var s = document.getElementsByTagName(\'script\')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>';


Inside the argument:

if (!empty($context['search_errors']))

Found in the function PlushSearch1 - this just calls the script.

Inside the search template, I added:

if(!empty($context['search_errors']) && !empty($context['search_params']['search']))
echo'
<gcse:searchresults-only></gcse:searchresults-only>';


That part works fine. HOWEVER, for Google Custom Search to work, I need to be able to add the following to the URL:

/index.php?action=search2&cx=MY_SPECIFIC_ID&cof=FORID%3A10&ie=UTF-8&q=SEARCH_QUERY&sa=Search

As a result, I went inside Search.php and found:

if (empty($indexedResults) && empty($numSubjectResults) && !empty($modSettings['search_force_index']))
{
$context['search_errors']['query_not_specific_enough'] = true;
$_REQUEST['params'] = $context['params'];
return PlushSearch1();
}


How can I manipulate the code so that when nothing is found, it adds what's underlined above into the URL?

Been working on this for hours. :-\

Advertisement: