X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/a48ebd9b477318bc5fdb44d7dc6bbf695911a4b9..86eeb4d2eddaa6c409f542169780f59dc31ffc1b:/lib-php/TokenCountry.php?ds=sidebyside diff --git a/lib-php/TokenCountry.php b/lib-php/TokenCountry.php index 917ed9d2..ab84c388 100644 --- a/lib-php/TokenCountry.php +++ b/lib-php/TokenCountry.php @@ -23,6 +23,24 @@ class Country return $this->iId; } + /** + * Check if the token can be added to the given search. + * Derive new searches by adding this token to an existing search. + * + * @param object $oSearch Partial search description derived so far. + * @param object $oPosition Description of the token position within + the query. + * + * @return True if the token is compatible with the search configuration + * given the position. + */ + public function isExtendable($oSearch, $oPosition) + { + return !$oSearch->hasCountry() + && $oPosition->maybePhrase('country') + && $oSearch->getContext()->isCountryApplicable($this->sCountryCode); + } + /** * Derive new searches by adding this token to an existing search. * @@ -34,10 +52,6 @@ class Country */ public function extendSearch($oSearch, $oPosition) { - if ($oSearch->hasCountry() || !$oPosition->maybePhrase('country')) { - return array(); - } - $oNewSearch = $oSearch->clone($oPosition->isLastToken() ? 1 : 6); $oNewSearch->setCountry($this->sCountryCode);