In search.php, the code tests mode to see if it's 'search':
if ($HTTP_GET_VARS['mode'] == 'search' ) {
    $display .= $searchObj->doSearch();
} else {
    $display .= $searchObj->showForm();
}

But if the search was submitted via searchform.html (my own version of this was cannibalized from the Yahoo theme), the mode variable will be 'Search' rather than 'search'.

One possible fix is to do the test case-insensitive. However that wouldn't catch situations where the text had been translated. A more dependable fix is to look for the 'query' variable instead:

if (!empty($HTTP_GET_VARS['query']) ) {
    $display .= $searchObj->doSearch();
} else {
    $display .= $searchObj->showForm();
}

The new search.php would be:

require_once('lib-common.php');
require_once($_CONF['path_system'] . 'classes/search.class.php');

$display = COM_siteHeader();

$searchObj = new Search();

if ( !empty($HTTP_GET_VARS['query']) ) {
    $display .= $searchObj->doSearch();
} else {
    $display .= $searchObj->showForm();
}

$display .= COM_siteFooter();

echo $display;

Reply via email to