geoAddress::WordPress-Plugin für Google-Maps

GeoAddress ist ein WordPress-Plugin zum Erstellen einer Kontakt-/Adressliste die in einer Google-Map mittels Markern dargestellt werden kann. Die Darstellung der Google-Map bzw. des Adressformulars kann im Adminbereich mittels zahlreicher Optionen beeinflusst werden.
Per Default wird unter der Google-Map eine vollständige Liste der (aktivierten) Adressen ausgegeben. Wer diese Liste lieber in eine Sidebar packen möchte, kann dies mittels des mitgelieferten GeoAddress-Sidebar-Widget realisieren.
Aktuelle Version:
1.0
Features:
- Umfangreiche Einstellmöglichkeiten für Karte und Formular
- Versenden einer Bestätigungsmail an den User
- Versenden einer Mitteilung an den Admin nachdem der User seine Angaben bestätigt hat
- Darstellung der Adressliste in einer Sidebar (GeoAddressSidebar-Widget ist im Download enthalten)
- Aktivierung kann nur durch den Admin durchgeführt werden.
- Bei der Aktivierung wird anhand einer zusätzlichen Karte direkt angezeigt ob die eingegebene Adresse von Google-Maps auch dargestellt werden kann.
- Spamschutz mittels captcha-Überprüfung
- XSS-Check der eingegebenen Formulardaten
Links:
Demo-Adressformular, Demo-Karte, GeoAddress-Download
Anmerkung
GeoAddress ist mein erstes WordPress-Plugin. Da ich eigentlich eher aus der Joomla-Programmierung komme und mich mit der WordPress-API noch nicht so gut (eher wenig) auskenne, sei mir Verziehen wenn ich in den Scripten evtl. das Rad an manchen Stellen neu erfunden habe
Wenn du einen Fehler gefunden hast, einen Wunsch für kommende Updates hast, oder einfach nur deinen Kommentar zu dem Plugin abgeben möchtest, so kannst du dies hier gerne tun ich freue mich über jede Reaktion (egal ob Pro oder Kontra): Comments
Voraussetzungen:
Getestet mit WordPress 2.2.1 und IE 7, Firefox 2.0.0.4 und Opera 9.21
Einschränkungen:
Die Adressliste sollte nicht zu groß werden da Google-Maps für jede Adresse eine GeoCode-Abfrage durchführen muss. Ich habe es mit ca. 30 Adressen getestet und konnte damit noch eine korrekte Geschwindigkeit der Kartendarstellung erzielen. Wo allerdings die Obergrenze liegt bei der der Kartenaufbau zu lange dauert lässt sich nur durch probieren herausfinden
Weitere Einschränkungen siehe: Google-Maps API, hier kann auch direkt ein API-Key generiert werden der zur Anzeige einer Google-Map benötigt wird.
Screenshots aus dem Adminbereich
|
|
|
|
|
|
|
|
|
|
|
|
Installation
Seiten-Templates
Zur Anzeige der Karte bzw. des Formulars werden 2 neue Seiten-Templates benötigt.
Da es aber bei der Unmenge von Templates nahezu Unmöglich ist eine All-in-One Lösung dieser 2 Templates anzufertigen, muß hier ein wenig do-it-yourself vorgenommen werden.
Im Download enthalten sind 2 Beispiel-Templates für das WordPress-Standard-Theme.
Workarround Seiten-Templates
1.) Aus dem Verzeichniss wp-content/themes/_dein_theme_/ deiner WordPress-Installation kopierst du dir die Datei pages.php auf deinen lokalen PC.
2.) Diese Datei muß nun 2x kopiert und als geoAddressForm.php und geoAddressMap.php abgespeichert werden.
3.) Änderungen in der (neuen Datei) geoAddressForm.php:
i.d.R. fängt diese Datei (in etwa) so an:
<?php get_header(); ?><div id="content" class="narrowcolumn">
...
...
dieses ändern wir in:
<?php/*
Template Name: GeoAddressForm
*/
get_header();
?>
<div id="content" class="narrowcolumn">
...
...
Sollte die Datei anders beginnen, ist dies nicht weiter tragisch, wichtig hierbei ist eigentlich nur, dass der Name des Templates ( hier: GeoAddressForm ) am ANFANG der Datei definiert wird.
als nächstes wird alles gelöscht das sich zwischen <div class="entry"> … </div> befindet:
<div class="entry">...
...
</div>
Hier fügen wir nun den Aufruf des GeoAdress-Formulars ein:
<div class="entry"><?php
if(!$_POST["addAddress"] &&
!$_POST["newId"] &&
!$_REQUEST["valid"] &&
!$_REQUEST["key"]) {
the_content();
}
?>
<br />
<?php
GeoAddress_display ();
?>
</div>
4.) Änderungen in der (neuen Datei) geoAddressMap.php:
Hier muß, wie zuvor, wieder der Name des Templates definiert und zusätzlich noch eine Datei inkludiert werden:
<?php/*
Template Name: GeoAddressMap
*/
include(ABSPATH."/wp-content/plugins/geoAddress/inc/mapDisplayHead.php");
get_header();
?>
<div id="content" class="narrowcolumn">
...
...
Anschießend wieder alles zwischen <div class="entry"> … </div> löschen und durch folgenden Code ersetzen:
<div class="entry"> <br />
<?php
the_content();
$gA->GeoAddress_displayMap();
if($params["ShowSideClick"] == "1") {
echo $gA->_GetSideClick;
}
GeoAdress_cp();
?>
</div>
5.) Sind alle Änderungen gemacht, die zwei neuen Template-Dateien auf den Webserver in das Verzeichnis: wp-content/themes/_dein_theme_/ hochladen.
Site-Click (Adressliste)
Die Adressliste wird per Default unter der Karte angezeigt, möchtest du die Adressliste allerdings in der rechten bzw. linken Sidebar haben, muß das geoAdressSidebar-Widget installiert sein (im Download enthalten).
!! WICHTIG !!
Das Verzeichnis wp-content/plugins/geoAddress/gd muss Schreibrechte haben ( chmod 757 ), sonst können die Captcha-Grafiken nicht erstellt werden!
Anwendung
Damit das Formular zur Adresseingabe angezeigt werden kann, muß nur eine statische Seite erstellt werden. Dieser muß unter dem Optionspunkt -Seiten-Template- das Template geoAddressForm zugewiesen werden.
Zusätzlich kann auch ein Einleitungstext für dieses Formular eingegeben werden, dieser erscheint über dem Formular.
Damit die Karte angezeigt werden kann, muß eine weitere statische Seite erstellt werden. Dieser muß unter dem Optionspunkt -Seiten-Template- das Template geoAddressMap zugewiesen werden.
Zusätzlich kann auch ein Einleitungstext für die Karte eingegeben werden, dieser erscheint über der Karte.
Siehe hierzu auch: Installation -> Seiten-Templates
Sollen die Adresseinträge ausschließlich vom Administrator gepflegt werden, kann das Adressformular natürlich auch weggelassen werden
!! WICHTIG !!
Zur Anzeige einer Google-Map wird ein API-Key benötigt, dieser kann hier -API-Key- kostenlos generiert werden.
ToDo
- Speicherung der ermittelten Koordinaten damit nicht immer eine GeoCoder-Abfrage an Google-Maps gesendet werden muß.
- Gruppierung von Markern die räumlich nicht weit voneinander entfernt sind.
- Möglichkeit für verschiedene Icon-Typen bzw. Icon-Farben je nach Kategorie.
- Möglichkeit zur Sortierung der Adressliste
- Filter zur Anzeige nach Kategorie
- Englische übersetzung
- …
- …
Danksagung
Da es ja nicht immer selbstverständlich ist sich bei jemanden zu bedanken, möchte ich dies an dieser Stelle trotzdem mal tun.
Danke für die 2 wirklich tollen PHP-Klassen an die Script-Autoren:
- Mitchelle C. Pascual http://ordinarywebguy.wordpress.com ( PHP-Klasse: Easy Google Map )
- Horst Nogajski http://www.nogajski.de/ ( PHP-Klasse: HN Captcha )
Hallo,
dein Plugin macht einen sehr guten Eindruck.
Aber ist es möglich html in das Infofenster zu integrieren? Das beispielsweise die Strasse einen Link darstellt, oder der Name.
Und wie kann ich den Copyrightverweise (GeoAddress 1.0.3 © 2007 by cp…) an einer anderen Stelle anzeigen? Am besten unter der Karte, da er in der jetzigen Form in meine Sidebar hinein läuft.
Ok, das Copyright habe ich gefunden und den align auf left geändert. nun wird es auch ordnungsgemäß angezeigt.
Aber ich finde nicht die Option, um die Anzeige der Adressleiste zu ändern.
Ich möchte, dass lediglich der Name angezeigt wird und sonst nichts.
@stopherl,
sorry für die späte Reaktion, aber ich war ein paar Tage nicht @home
Die Anzeige der Adressliste kannst du im Moment nur direkt im Script ändern.
Datei: inc/mapDisplayHead.php
Zeile: 37
=> $gm->SetSideClick(“…….
Hier wird die Ausgabe der Einträge _zusammengebaut_
Werde mir das für das nächste Update aber notieren
=> Admintool Ausgabe der Liste festlegen.
Leider habe ich ein Problem in Verbindung mit einem anderen guten Plugin (WP-Polls – http://www.lesterchan.net/portfolio/programming.php). Wenn geoAdress aktiviert ist kommt es bei Eingabe von Antworten zu folgender Fehlermeldung und die Antworten werden nicht übernommen:
Warning: urldecode() expects parameter 1 to be string, array given in /var/www/virtual/…../…/htdocs/wp-content/plugins/geoAddress/inc/chk_xss.php on line 17
Warning: urldecode() expects parameter 1 to be string, array given in /var/www/virtual/……/…./htdocs/wp-content/plugins/geoAddress/inc/chk_xss.php on line 17
Hi, ich habe die gleichen Probleme in Zusammenhang mit der Nextgen Bildergalerie. Es können keine Bilddaten gespeichert werden. Im Kopf der Administration erscheint dann:
Warning: urldecode() expects parameter 1 to be string, array given in /is/htdocs/wp-content/plugins/geoAddress/inc/chk_xss.php on line 17
Warning: urldecode() expects parameter 1 to be string, array given in /is/htdocs/wp-content/plugins/geoAddress/inc/chk_xss.php on line 17
hallo, leider habe ich noch andere Probleme: Die Adressliste wird nicht angezeigt und in der “Blase” wird die Formatierung der Styles des Themes übernommen, was das layout zerschlägt?
http://www.celtic-rock.de/links/celtic-folk-rock-event-locations-map
Hast Du vielleicht eine Idee oder kann es mit der letzten Meldung zusammen hängen?
zu 1. Warnings
Leider hatte sich in der aktuellen Version 1.5 eine veraltete Version der Datei chk_xss.php eingeschlichen.
Siehe: http://wp.php-guru.de/26/fehler-in-datei-chk_xssphp/
zu 2. Ansicht ändern
Siehe: http://wp.php-guru.de/27/ansicht-des-info-eintrags-in-der-karte-aendern/
Warum nun allerdings die Adressliste nicht angezeigt wird kann ich dir so nicht sagen, bislang hat es meines Wissens überall funktioniert
Wie willst du sie denn anzeigen lasse, mit dem Sidebar-Widget, oder unter der Karte?
Wenn 2. sende mir mal deine erstellte Seite zur Ausgabe der Karte per Mail.
Meine Mailadresse findest du hier:
http://wp.php-guru.de/impressum/
Moin moin
Wenn man jetzt noch frei definierbare Datenbankfelder hätte, die zudem auch noch durchsuchbar wären….
Klasse plugin auch jetzt schon.
Man könnte damit prima eine kommerzielle Site zur Objektvermietung bauen.
Für das Addin gibt es ein eigenes Blog unter http://wp.php-guru.de/ …
vielen dank für die tips!
Wirklich ein tolles PlugIn!
Ein klitzekleines Manko hätte ich:
Wenn ich die Seite mit der Karte öffne, passiert es gelegentlich, dass a) nicht alle Punkte auf der Karte gefunden werden (“location not found, ….”) und b) der kartenausschnitt relativ….weit verrutscht. Statt des Großraums KölnBonn sehe ich einen Ausschnitt aus den nördlichen USA. Lässt sich das irgendwie beseitigen? Würde das PlugIn gern einem Kunden vorstellen, da wäre es hinderlich, wenn beispielsweise für eine Filialübersicht auf einmal ein Kartenausschnitt vom anderen Ende der Welt erscheint…!?
Freue mich über jede Antwort!
vielen dank für die tips!
Hi,
Do you have instruction in English?
I install this plug-in and I do not know how to start using it.
BTW I expecting a lot from this plug-in …
Regards,
Marco
erstmal Lob an dieser Stelle, ein sehr nützliches und einfach zu verwaltendes Plugin!
leider habe ich aber genau das gleiche Problem wie Sven. Manchmal passiert es, dass die Map komischerweise komplett nach San Francisco verrutscht und die eingegebenen Adressen nicht gefunden werden. Ich könnte mir vorstellen, dass das an der Fülle der Adressen liegt. Ich hab knapp 30 Adressen eingepflegt, die alle im relativen Umkreis zueinander liegen. Vielleicht sind das einfach zu viele Anfragen auf einmal?
Kontakt zum Autor bitte über
http://wp.php-guru.de/
Thank you. You have helped someone more than you could know.
Sohbet Konya
ersteinmal: eine tolles plugin! Einfach genial, nur ich habe auch das problem wie sven, daß die Karte beim anklicken aud die westküste der usa springt. Und auf einmal werden Adressen, die erst funktionierten, nicht mehr angezeigt: “location not found”.
Wer kann mir helfen?
praxis@dres-harms.de
ist ein sehr schönes und nützliches plugin. leider habe ich ein kleines darstellungsproblem in safari. sobald das blugin aktiviert ist, färben sich alle links rot. das selbe geschieht auch im admin-bereich.
selber konnte ich den fehler nicht finden. vieleicht kann mir jemand weiterhelfen.
Auch ich möchte mich der Liste der Leute anschließen, die dieses Plugin toll finden und noch toller wenn es bei mir wie bei vielen anderen auch, nicht manchmal in den USA landet. Die Adresse kann anscheinend nicht ermittelt werden und so sind die Koordinaten für alle gepflegten Standorte immer gleich.
Hat dafür schon jemand eine Lösung gefunden?
Gruß Marco Musielak
Wird das Plugin noch weiterentwickelt? Auf http://wp.php-guru.de/ ist es ja ziemlich still geworden, kommentieren schaffe ich da auch nicht (wo kann ich mich regisitrieren?) Deshalb hier meine Frage: Hat jemand das oben beschriebene Problem gelöst, dass manche Adressen manchmal nicht eingezeichnet werden und die Karte (falls eben keine Adresse gefunden wird) in den USA landet? Falls nicht muss ich ich mal dahinter klemmen, brauchte das feine Plugin unbedingt, und das ist im Moment der einzige Haken. Oder kennt jemand Alternativen? Oder gibt es vielleicht doch noch eine Chance, dass das Teil weiterentwickelt wird? Bin für alle Hinweise und Rückmeldungen dankbar…
ist ein sehr schönes und nützliches plugin. leider habe ich ein kleines darstellungsproblem in safari. sobald das blugin aktiviert ist, färben sich alle links rot. das selbe geschieht auch im admin-bereich.
Das ist ja wunderschön…Das ist ein sehr schönes und eigentlich sehr nützliches Plugin.Danke:)
Bisher gehört dieses Plug-in. In der Tat, dann fand ich noch beim Anblick dieser Seite. Aber ich glaube, bei der ersten Gelegenheit zu versuchen. Wir danken Ihnen für den Austausch von
Leider kann ich dieses Plugin nicht herunterlagen, weil zuvor eine Passwort-Abfrage kommt. Kann mir jemand weiterhelfen?
Leider kann ich dieses Plugin nicht herunterlagen, weil zuvor eine Passwort-Abfrage kommt. Kann mir jemand weiterhelfen?
thanks admins.. devam….
You must write more
belkide himmMmm
is liked wrry nice
is liked wrry nice
nice comments editors
nice comments editors
You have helped someone more than you could know….Thanks
This blog post was absolutely fantastic. When I used to work in electroplating they sometimes encouraged us to write, but I could never come up with something as well written as that.
that’s actually a really good suggestion. Thanks so much for this!
thank you pls..
Thats a very helpfull opinion. I ll try to find out if its working for me too. tnks!