DANFA

Поиск не работает с первого запроса

На сайте есть система поиска, чьё предназначение находить нужные записи потребителя контента. Есть два варианта поиска:
  1. Общий поиск: Ищет по всему сайту, все записи, по всем модулям.
  2. "Внутримодульный" поиск: Ищет исключительно по записям, в котором находишься в данный момент. Например, Фото, Видео, Статьи и так далее.

С первым проблем нет. Со вторым же заметил проблему: Поиск не работает по первому запросу. После первой отправки формы для строки запроса визуально ни чего не происходи. В адресной строке появляется параметр search-id с уникальным значением, но поиск нужных записей не запущен... Поиск активен после второго запроса.

Покопавшись, понял, что виновник в файле: "include/library/phpfox/search/search.class.php", а именно метод: isSearch(), почему то он возвращает true только со второго раза.

Я временно (Скорее на постоянно) заменил:
			if ($this->req->get('search-id') && isset($this->searchTool['search']) && $this->isSearch())
			{
				$this->searchTool['search']['actual_value'] = $this->get($this->searchTool['search']['name']);
				if (!empty($this->searchTool['search']['actual_value']) && ($this->searchTool['search']['actual_value'] != $this->searchTool['search']['default_value']))
				{
					$this->setCondition('AND (' . phpfox::getLib('database')->searchKeywords($this->searchTool['search']['field'], $this->searchTool['search']['actual_value']) . ')');

                    phpfox::getLib('template')->setTitle(phpfox::getPhrase('search.search') . ': "' . $this->searchTool['search']['actual_value'] . '"');
				}
			}

На:
            // Поисковая система по отдельным записям
            $actualValue = $this->get($this->searchTool['search']['name']);
            $actualValue = is_string($actualValue) ? trim($actualValue) : '';

            $hasValidQuery = ($actualValue !== '' && $actualValue !== $this->searchTool['search']['default_value']);

            if ($this->req->get('search-id') && !$hasValidQuery)
            {
                phpfox_error::set(phpfox::getPhrase('search.provide_a_search_query'));
            }
            else if ($this->req->get('search-id') && $hasValidQuery)
            {
                $this->setCondition('AND (' . phpfox::getLib('database')->searchKeywords(
                    $this->searchTool['search']['field'],
                    $actualValue
                ) . ')');

                phpfox::getLib('template')->setTitle(
                    phpfox::getPhrase('search.search') . ': "' . $actualValue . '"'
                );
            } // End: Поисковая система по отдельным записям

И после этого поиск работает с первого обращения. Но, подозреваю, что глюк ещё может проявить себя (Буду наблюдать).

Хочу обратить ваше внимание, что код в моих файлах уже переписан много раз и может отличаться от вашего. Например, в представленном мной коде присутствует:
                phpfox::getLib('template')->setTitle(
                    phpfox::getPhrase('search.search') . ': "' . $actualValue . '"'
                );

Этого кода нет с пакета движка. Я его добавил сам, чтобы в заголовке отображалось, что отображены найденные записи.