Location mit richtiger Adresse für Deutschland (PLZ Ort und nicht Ort PLZ
Eingetragen von drupalcentersven (44)
am 31.05.2011 - 16:01 Uhr in
am 31.05.2011 - 16:01 Uhr in
Nutzt jemand Location für Adressen in Deutschland?
Mit z.B. Views kann ich mir umständlich Adressfelder nach deutschem Muster bauen, aber im Modul-Verzeichnis gibt es eine .inc Datei für jedes Land, das wohl die Adressen korregt zusammensetzt.
Bei mir sind aber alle Adressen, egal in welchem Land, immer nach USA Schema.
Hat jemand das schon mal verwendet?
- Anmelden oder Registrieren um Kommentare zu schreiben
Kopiere die location.tpl.php
am 31.05.2011 - 16:24 Uhr
in dein theme-Verzeichnis und ändere die location.tpl.php nach deinen Wünschen. Die PLZ heisst hier postal_code und steht wie zu vermuten hinter city und province.
Die location.tpl.php findest du im location-Modulordner.
Das ist zumindest eine Möglichkeit die Reihenfolge der Elemente zu ändern. Ob diese template-Datei überall (wo nötig) aufgerufen wird, weiss ich nicht, es können also noch Stellen übrigbleiben, wo die Reihenfolge USA-mäßig bleibt.
Die function theme_location_de()
am 31.05.2011 - 16:48 Uhr
in supported/location.de.inc ist mir gar nicht "einleuchtend". Wo wird die aufgerufen?
Zudem gibt es einen Fehler in ca. Zeile 197:
Original:
if ((!empty($location['city']) && !in_array('city', $hide)) ||
(!empty($location['postal_codet']) && !in_array('postal_code', $hide))) {
Richtig:
if ((!empty($location['city']) && !in_array('city', $hide)) ||
(!empty($location['postal_code']) && !in_array('postal_code', $hide))) {
Ja, das ist eine Möglichkeit,
am 01.06.2011 - 10:29 Uhr
Ja, das ist eine Möglichkeit, läuft aber im Prinzip auf meine "Views-Lösung" hinaus.
Die Idee ist ja, dass die Adressen je nach Land automatisch richtig gesetzt werden, und nicht alle in Deutschland-Format oder alle in USA-Format.
Ist die Funktion überhaupt im Location-Modul vorgesehen, oder sind die .inc-Dateien nur Presets, die man dauerhaft austauschen kann?
ich habe mich nochmal ein
am 01.06.2011 - 13:38 Uhr
ich habe mich nochmal ein wenig im Code umgesehen und festgestellt:
Ich würde mit Hilfe von template_preprocess_location() nach Land filtern und die Daten entsprechend darstellen.
template_preprocess_location(
am 04.06.2011 - 16:27 Uhr
template_preprocess_location() klingt gut. Kannst du da ein paar Hinweise geben, wie mans macht? Welche Variable muss ich abfangen?
location.tpl.php
am 06.06.2011 - 07:49 Uhr
Entschuldige! location.tpl.php ist doch geschickter! (In template_preprocess_location() werden die Variablen zwar vorbereitet, aber nicht in Reihenfolge für die Ausgabe gebracht.)
Kopiere dir also die location.tpl.php in dein theme-Verzeichnis und ändere den code z.B. zu:
<?php
if ($language->language == "de") {
if ($postal_code) {
echo ' <span class="postal-code">' . $postal_code . '</span>';
}
if ($city) {
echo ' ';
echo '<span class="locality">' . $city . '</span>';
}
}
else {
if ($city) {
echo '<span class="locality">' . $city . '</span>';
if ($province) {
echo ', ';
}
}
if ($province) {
echo '<span class="region">' . $province_print . '</span> ';
}
if ($postal_code) {
echo ' <span class="postal-code">' . $postal_code . '</span>';
}
}
?>
Hab's jetzt nicht probiert, müßte aber stimmen.