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

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(); 

      }

    ?>

    &nbsp;<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">

      &nbsp;<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 )


37 Responses to “geoAddress::WordPress-Plugin für Google-Maps”

  • 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!







XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



Blogroll

Lorem ipsum

These 3 boxes are widgets and can be edited through the admin page, just like the sidebar.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Impressum