|
|
Latest News |
Latest Threads |
|
 |
56.027 Posts & 4.945 Themen in 78 Foren |
|
|
|
 |
Forensuche |
|
Suchbegriff |
Benutzerauswahl |
Ergebnisse anzeigen |
 |
 |
UserMap ersetzen durch GoogleMap 24 Beiträge in diesem Thema |
|
|
 |
|
|
 |
|
 |
09.02.2013 - 20:48 Uhr |
|
|
|
Hallo,
ich habe kein zutreffendes Forum gefunden, also schreibe ich meinen Wunsch hier rein.
Ich glaube, irgend jemand hat den Wunsch hier schon mal geäußert.
Da ja das UserMap hier und da Probleme aufwirft, so ab und an, dachte ich mir, da nach langem suchen
nichts besseres zu finden war, dass man GoogleMap verwendet und zwar in der Form von UserMap.
Zumindest so in etwa.
Wenn jemand seine PLZ angibt, soll neben der PLZ stehen: (Auf der Karte anzeigen) << ---- Als Link
Also so: Plz: 11111 (Auf der Karte anzeigen)
Oder so: Plz: 11111 (Hier klicken)
Wenn man dann darauf klickt, geht ein Popup auf und wird dann so angezeigt:
Sie bitte Bild:
Wenn man dann mit der Maus (Die als Hand dargestellt wird) doppelt klickt, zoomt das automatisch ran.
Das wäre ne feine Map wie ich finde.
Vor allem wären alle Orte drin an der richtigen Stelle, man braucht nicht extra y und x erstellen usw.
Die wäre ein Wunsch von mir, klar jeder Admin muss sich vielleicht bei Google dann reg und sich die Karte laden irgendwie,
vielleicht auch noch einen Google Key anfordern, was ja dann das geringste Problem sein dürfte.
mfg
neumicha
|
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von neumicha - 10.02.2013 - 12:42 Uhr |
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 16:17 Uhr |
|
|
|
- Beschreibung:
Mit diesen kleinen Script ist es möglich, im Userprofil ein Popup (1. Bild) bzw. bei deaktivierten Javascript (2. Bild) ein Link und eine Karte anzeigen zu lassen. Dafür muss lediglich ein Profilfeld im AdminCenter erstellt werden, das im Namen das Wort plz* enthält. Für bessere Genauigkeit müssten weitere Profilfelder erstellt werden - in diesen muss einfach im Namen wohnort*, adress* oder land* beinhalten. Letzteres Profilfeld würde im Grunde nur die Herkunft-Angabe ersetzen (z.B. durch Lucky's Addon Profilerweiterung [+ Dropdown] können Auswahllisten erstellt werden -> bessere Möglichkeit für mehr Vielfalt).
Der User müsste am Ende einfach die Profilfelder ausfüllen, wodurch dann GoogleMaps den Aufenhaltsort auswertet und anzeigt. Im Falle, das keine Angabe getätigt wurde, wird auch nichts angezeigt. Unter umständen, je nach Eintragung der User, kann es passieren, das GoogleMaps den falschen Ort anzeigt - Aufgrund der ungenauen möglichen Angaben, die der Admin gibt, und der Eingabe der User.
Mehr unter den Bildern zu erkennen ;o
* = Groß- und Kleinschreibung spielen keine Rolle
- Bilder:
- Code:
- pkinc/public/userinfo.php
- Öffne o.g. Datei und suche dies:
| PHP-Quelltext $getprofilefields=$SQL->query("SELECT * FROM ".pkSQLTAB_USER_PROFILEFIELDS." ORDER by profilefields_order ASC");
while($profilefields=$SQL->fetch_array($getprofilefields)) | |
Und füge darüber das ein:
| PHP-Quelltext # pkGoogleMaps
$pkGM_loopName =
$pkGM_name =
$pkGM_content =NULL;
# pkGoogleMaps | |
- Suche weiter
| PHP-Quelltext eval("\$info_extended.= \"".pkTpl("userinfo_ext")."\";"); | |
Und füge darüber das ein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | | PHP-Quelltext # pkGoogleMaps
if ($fieldcontent!==$lang['not_specified'] && trim($fieldcontent)!='')
{
if (
!stristr($fieldname, 'plz')
&& !stristr($fieldname, 'wohnort')
&& !stristr($fieldname, 'adress')
&& !stristr($fieldname, 'land')
)
{
continue;
}
$pkGM_loopName
.=
$pkGM_loopName
? ',+'.$fieldcontent
: $fieldcontent
;
if (stristr($fieldname, 'plz'))
{
$pkGM_name =$fieldname;
$pkGM_content =$fieldcontent;
$info_extended .='$pkGM_loop';
continue;
}
}
# pkGoogleMaps | |
- Suche weiter
| PHP-Quelltext if($userinfo['user_emailshow']==1) | |
Und füge darüber das ein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | | PHP-Quelltext # pkGoogleMaps
if ($pkGM_name!==NULL && pkGM_content!==NULL && $pkGM_loopName!==NULL)
{
if (trim($userinfo['user_country'])!=='def' && trim($userinfo['user_country'])!=='oth' && !stristr($pkGM_loopName, pkGetLang('origin_'.$userinfo['user_country'])))
{
$pkGM_loopName .=',+'.$info_country;
}
$fieldname =$pkGM_name;
$fieldcontent =$pkGM_content;
$pkGM_frame ='http://maps.google.de/maps?q='.$pkGM_loopName.'&output=embed';
$pkGM_link ='http://maps.google.de/maps?q='.$pkGM_loopName;
$fieldcontent .='
<style type="text/css">
#pkGoogleMaps
{
position: relative;
height: 300px; /* an edit value */
}
#pkGoogleMaps iframe
{
border: 0px;
margin: 5px; /* an edit value */
padding: 0px;
width: 500px; /* an edit value */
height: 300px; /* an edit value */
position: absolute;
top: 0px;
left: -125px; /* an edit value */
}
</style>
<script type="text/javascript" language="javascript">
function pkGoogleMaps()
{
window.open("'.$pkGM_frame.'", "pkGoogleMaps", "toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,status=no,width=700,height=400");
}
document.write(\'<span class="small">[ <a class="small" onClick="pkGoogleMaps()">Karte anzeigen</a> ]</span>\');
</script>
<noscript>
<span class="small">[ <a class="small" target="_blank" href="'.$pkGM_link.'">große Karte anzeigen</a> ]</span>
<div id="pkGoogleMaps">
<iframe src="'.$pkGM_frame.'"></iframe>
</div>
</noscript>
';
eval("\$pkGM_loop= \"".pkTpl('userinfo_ext')."\";");
$info_extended =str_replace('$pkGM_loop', $pkGM_loop, $info_extended);
}
# pkGoogleMaps | |  |
- Einstellungen:
- Für Popup-Fenster:
Höhe und Breite des Fensters wird hier eingestellt:
| PHP-Quelltext window.open("'.$myField_googleMap.'", "pkGoogleMaps", "toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,status=no,width=700,height=400"); | |
Und zwar steht am Ende dieser Part:
| PHP-Quelltext width=700,height=400 | |
Einfach die 700 (Breite) oder die 400 (Höhe) nach eigenen belieben anpassen.
- Für Karte im Profil, wenn Javascript deaktiviert ist:
Hier wird direkt im Profil die Karte angezeigt (plus einen Link zu GoogleMaps). Diese Karte wird über CSS deklariert und alles, was geändert werden kann, ist im CSS-Code mit den Kommentar /* an edit value */ versehen.
Wobei die Werte für die Höhe, siehe dies:
| PHP-Quelltext height: 300px; /* an edit value */ | |
Zweimal erscheint und beide den gleichen Wert haben muss.
Ansonsten erklär ich nochmal alle Werte, die geändert werden können, im einzelnen:
| PHP-Quelltext height: 300px; /* an edit value */ | |
Die Höhe der Karte. Wie oben gesagt, müssen beide Angaben gleich sein.
| PHP-Quelltext margin: 5px; /* an edit value */ | |
Der Abstand von der Karte nach ausen hin.
| PHP-Quelltext width: 500px; /* an edit value */ | |
Die Breite der Karte.
| PHP-Quelltext left: -125px; /* an edit value */ | |
Die Position in der vertikalen. Normal ist die Karte direkt unterhalb der PLZ-Angabe. Es besteht aber die Möglichkeit, die Karte weiter nach links (negative Werte, z.B. -125px) oder rechts (positive Werte, z.B. 50px) zu setzen.
Bei mir hat alles funktioniert ;o Wenn was nicht klar ist, einfach meckern ;o
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von k!r!ka - 21.02.2013 - 20:47 Uhr |
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 17:38 Uhr |
|
|
|
Hallo k!r!ka,
lieben herzlichen dank klappt fast wunderbar. 
Ich wollte das mit dem Iframe ausprobieren weiß aber nicht so recht wie.
Dann habe ich noch ein kleines Problemchen.
Wenn ich jemand aus der ch oder austria habe, dann auf Karte klicke, lande ich entweder
in Australien pder Canada, lach>
Liegt das an Google?
Dann war ja die Grundeinstellung 700 x 400 als Kartengröße, da ging das Ran- Wegzoomen nicht,
habe dann die Zahl von 400 Höhe auf 700 Höhe gestellt, seitdem geht es.
mfg
neumicha
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 18:07 Uhr |
|
|
|
Zitat Original geschrieben von neumicha
[..] klappt fast wunderbar. |
Komm mir nicht so ;p Das hat zu klappen, ob du willst oder nicht ;p
Zitat Original geschrieben von neumicha
Ich wollte das mit dem Iframe ausprobieren weiß aber nicht so recht wie. |
Du meinst wie im 2. Bild? Das ist als Alternative für User, die kein Javascript aktiv haben.
Zitat Original geschrieben von neumicha
Wenn ich jemand aus der ch oder austria habe, dann auf Karte klicke, lande ich entweder
in Australien pder Canada, lach>
Liegt das an Google? |
Nicht direkt. Es ist, wie ich bereits sagte, eine reine PLZ-Suche. Stadt oder Land, die eine genaue Positionierung ergeben würden, entfallen ja. Daß das jetzt doch so arg ungeau wird - da müsste man ggf. noch das Land aus dem Kit dazu nehmen. Vielleicht auch noch ein weiteres Profilfeld .. Mal sehen ^^""
Zitat Original geschrieben von neumicha
Dann war ja die Grundeinstellung 700 x 400 als Kartengröße, da ging das Ran- Wegzoomen nicht,
habe dann die Zahl von 400 Höhe auf 700 Höhe gestellt, seitdem geht es. |
Das reinzoomen via. Mausrad geht in der Einbinde-Version von GoogleMaps nicht. Wahrscheinlich weil es einfach ein Ausschnitt sein soll, für mehr soll das Menu an den Rand drum herum da sein. Aber macht ja nichts, man kann ja die Werte des Popups entsprechend ändern ;o
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 18:31 Uhr |
|
|
|
Ah so,
ok, dann brauche ich das mit dem Iframe nicht, finde das Popup eh besser.
Vielleicht kann man ja das Feld Land =Herkunft noch irgendwie mit einbauen,
wäre super, bei Deutschland funktioniert es ja wunderbar.
Schön wäre es, wenn die ausländischen Länder (was für ein deutsch) auch noch gingen 
mfg
micha
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 19:58 Uhr |
|
|
|
Suche mal dies:
| PHP-Quelltext # pkGoogleMaps
if (stristr($fieldname, 'plz') && intval($fieldcontent) > 0)
{
$myField_plz =intval($fieldcontent); | |
Und mache daraus das:
| PHP-Quelltext # pkGoogleMaps
if (stristr($fieldname, 'plz') && intval($fieldcontent) > 0 && trim($userinfo['user_country'])!=='def' && trim($userinfo['user_country'])!=='oth')
{
$myField_plz =intval($fieldcontent);
$myField_plz .=',+'.$info_country; | |
Sobald der User seine PLZ eingetragen und sein Herkunftsland (außer Anderes und keine Angabe) gewählt hat, erscheint der Popup-Link bzw. für die non-Javascript-Nutzer ein Direktlink zu GoogleMaps und eine Karte in eingestellter Größe.
Obige Änderung ist im Post mit den gesamten Code ebenfalls nochmal enthalten.
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 21:07 Uhr |
|
|
|
gibt ja im prinzip keine blöden fragen ^^ aber...
wie bekommt man es hin die map in nem verweis aufzuführen damit alle member user... etc (wie bei der standart usermap) angezeigt werden?
vor allem wo bekomme ich das addon her für php 1.6.6 ? finde es nirgends.. forensuche hat auch nicht geholfen.
lg
pit
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 21:20 Uhr |
|
|
|
Die UserMap 1.6.5 geht auch für die 1.6.6. Einfach mal bei PimpYourKit gucken, unter Downloads > ESA-Clan (ist von denen).
Und GoogleMap kann man ansich auch entsprechend umgestalten. Dafür müsste man sich, soweit ich das von Google verstanden habe, auch bei Google registrieren, damit derren Service geladen und dann auf der jeweiligen Seite verarbeitet werden kann 
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 21:54 Uhr |
|
|
|
iCH HABE JA ALLES ANGEGEBEN
3 andere user auch, aber nada, erscheint nix mehr
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 22:02 Uhr |
|
|
|
Was hast du denn z.B. angegeben?
Ein Link erscheint, wenn folgende Bedinungen erfüllt sind:
- Hat das Profilfeld den Text plz (Groß- und Kleinschreibung sind egal) im Profilnamen
- Ist der zugehörige Wert des Profilfeldes größer als Zahl 0 (= Wert > 0)
- Ist die Herkunftsauswahl nicht def (= keine Angabe)
- Ist die Herkunftsauswahl nicht oth (= Anderes)
Sollte also bei dir kein Link erscheinen, dann wegen eines der letzten 3 Punkte von obiger Liste. Der rest ist Google-Arbeit.
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 22:06 Uhr |
|
|
|
Angegeben ist:
PLZ 65110
Ort: Wiesbaden
Land Deutschland
Bundesland Hessen
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 22:20 Uhr |
|
|
|
Und ist Land bei dir ein Profifeld, oder ist es das bereits von Anfang an enthaltene Herkunft?
Wenn letzteres, dann gibt es keinen Grund, das der Link nicht erscheint. Sollte es aber ein Profilfeld sein, dann ist es korrekt, das kein Link erscheint 
|
|
|
|
|
|
|
 |
|
 |
16.02.2013 - 22:26 Uhr |
|
|
|
ist bereits von Anfang an enthaltene Herkunft
|
|
|
|
|
|
|
 |
Ähnliche Themen |
|
|
|
|
|
|
|
|