Möchte man die Umkreissuche z.B. nur mit Postleitzahlen nutzen, steht man vor dem Problem, dass das dt. Postleitzahlensystem identisch mit dem US amerikanischen ist. Google bevorzugt in diesem Fall US Daten.
Man benötigt daher den Zusatz "Deutschland" für die Abfrage.
Hier zeige ich einen Weg, wie man "Deutschland" an den aktuellen GET Parameter (intern) ergänzt, bevor der Filter ausgeführt wird.
Dies tut man am besten über den "processFilter" Hook in CC. Dieser wird VOR dem Ausführen des Filters getriggert und ermöglicht die komplette Manipulation des Filters.
(Individualisierungen am besten in Form einer eigenen kleinen Contao Erweiterung)
config.php
MyCustomCatalogCallbacks class
Anbei eine kleine Erw. mit diesem Script.
---
Einfache Methode mit initconfig.php (system/config/initconfig.php (ggf. erstellen))
Beschreibung: Prüft ob das Wort "deutschland" in dem GET-Parameter des Filters (Kleinbuchstaben) enthalten ist und ob dieser generell gesetzt / aktiv ist.
Wenn nicht: Wird der GET-Parameterwert um das Wort " Deutschland" ergänzt.
initconfig.php
ps. Diese Methode funktioniert auch für das Vorbelegen von Filtern etc.
Man benötigt daher den Zusatz "Deutschland" für die Abfrage.
Hier zeige ich einen Weg, wie man "Deutschland" an den aktuellen GET Parameter (intern) ergänzt, bevor der Filter ausgeführt wird.
Dies tut man am besten über den "processFilter" Hook in CC. Dieser wird VOR dem Ausführen des Filters getriggert und ermöglicht die komplette Manipulation des Filters.
(Individualisierungen am besten in Form einer eigenen kleinen Contao Erweiterung)
config.php
PHP-Code:
$GLOBALS['CUSTOMCATALOG_HOOKS']['processFilter'][] = array('MyCustomCatalogCallbacks','myProcessFilterCallback');
PHP-Code:
public function myProcessFilterCallback($objFilter, $objCC)
{
$strGeo = \Input::get($objFilter->getName().'_address');
// append Deutschland and set new GET filter parameter
if($objFilter->type == 'geolocation' && $strGeo != '' && strlen(strpos(strtolower($strGeo), 'deutschland')) < 1)
{
$strGeo .= ' Deutschland';
\Input::setGet($objFilter->getName().'_address',$strGeo);
}
return $objFilter;
}
Anbei eine kleine Erw. mit diesem Script.
---
Einfache Methode mit initconfig.php (system/config/initconfig.php (ggf. erstellen))
Beschreibung: Prüft ob das Wort "deutschland" in dem GET-Parameter des Filters (Kleinbuchstaben) enthalten ist und ob dieser generell gesetzt / aktiv ist.
Wenn nicht: Wird der GET-Parameterwert um das Wort " Deutschland" ergänzt.
initconfig.php
Code:
$strGeo = \Input::get('MY-FILTER_address'); // the GET parameter of the geo-filter _address if( !strpos(strtolower($strGeo),'deutschland') && strlen($strGeo) > 0 ) { \Input::setGet('MY-FILTER_address', $strGeo + " Deutschland" ); }
Kommentar