|
| IP: |
n/a |
| Rang: |
|
| Registrierung: |
30.08.2006, 22:31 |
| Homepage: |
http://HomepageStarter.de |
| Wohnort: |
O-BW |
| |
 Forum-Gott mit 1463 Punkte, 1295 Beiträge |
|
UPDATE: Edit Nr. 3 unbedingt lesen!
Hallo,
mit dieser Modifikation wird der Wohnort eurer User auf einer Google-Maps-Karte per Marker und Infofenster dargestellt, sofern der User es im Profil eingetragen hat.
Klickt man auf einen Marker, werden genauere Daten angezeigt.
Die Modifikation sieht dann z.B. so aus:

Das ganze wurde mit Boardsolution 1.36 getestet, dürfte aber auch mit jeder anderen 1.3x Version funktionieren.
Diese Mod beinhaltet folgende Sprachen:
- "ger_du" direkt eingetragen.
#### Installation
Öffne den Ordner modules/ und erstellt eine Datei mit dem Namen membermap.php. Füge nun folgenden Code hinein:
PHP: 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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| <?php if(!class_exists('BS_Module')) die();
class BS_Module_membermap extends BS_Module { function run() { $this->tpl->set_template('membermap.htm'); echo $this->tpl->parse_template(); } function get_map_vars() { $qry = $this->db->sql_qry( 'SELECT u.id,u.user_name, p.add_Membermap FROM '.BS_TB_PROFILES.' as p, '.BS_TB_USER.' as u WHERE u.id = p.id and p.add_Membermap != ""');
$map_vars = '<script type="text/javascript"> //<![CDATA[ /* * GTAvision.com Membermap for Boardsolution 1.3x * Copyright by GTAvision.com */ var map = null; var geocoder = null; var point = null;
if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GMapTypeControl()); //Kartentyp auswählbar map.addControl(new GLargeMapControl()); //Große Navi map.addControl(new GScaleControl()); //Maßstab map.addControl(new GOverviewMapControl()); //Übersichtskarte map.enableScrollWheelZoom(); //Scrollbare Karte point = new GLatLng(28.304380682962783, -10.1953125); map.setCenter(point, 2, G_HYBRID_MAP); geocoder = new GClientGeocoder(); ';
while($data = $this->db->sql_fetch_assoc($qry)) { $map_vars .= ' if (geocoder) { geocoder.getLatLng("'.$data['add_Membermap'].'", function(point) { if (!point) { alert("Adresse '.$data['add_Membermap'].' von '.$data['user_name'].' nicht gefunden."); } else { var marker_helper = new GMarker(point); GEvent.addListener(marker_helper, "click", function() { marker_helper.openInfoWindowHtml("<div style=\"margin:12px 0px 0px 0px; text-align:left;\"><span style=\"color:#000000;\">>> Hier wohnt <a class=\"bs_main\" href=\"index.php?action=userdetails&id='.$data['id'].'\"><b>'.$data['user_name'].'</b></a><hr />'.$data['add_Membermap'].'</span></div>"); } ); map.addOverlay(marker_helper); } } ); }'; } $map_vars .= ' } //]]> </script>'; return $map_vars; } function get_location() { return array($this->url->get_URL('membermap') => 'Membermap'); } function has_access() { return $this->sess->is_loggedin(); } function is_guest_only() { return false; }
function get_robots_value() { return "noindex,follow"; } } ?> |
Nun muss die src/page.php geöffnet werden und unter Zeile ~Z.193
PHP: 1
| $this->_module->tpl->set_template('footer.htm',0); | folgendes eingefügt werden:
PHP: 1 2
| if($this->_module_name == 'membermap') $this->_module->tpl->add_variables(array('map_vars' => $this->_module->get_map_vars())); |
Öffne anschließend den Ordner themes/<style>/templates/ und erstellt eine Datei mit dem Namen membermap.htm. Füge hier folgendes ein:
HTML: 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
| <table width="100%" align="center" cellpadding="0" cellspacing="0"> <tr> <td class="bs_tbl_top_left"></td> <td class="bs_tbl_top"></td> <td class="bs_tbl_top_right"></td> </tr> <tr> <td class="bs_tbl_left"></td> <td> <table width="100%" cellpadding="2" cellspacing="1"> <tr> <td align="center" height="22" class="bs_topic">Membermap</td> </tr> <tr> <td class="bs_main"> <p>Anhand dieser Karte siehst du, wo die User wohnen. Dies setzt natürlich voraus, dass man seinen Wohnort im <a href="index.php?action=userprofile&loc=pr_infos" title="Profil" class="bs_main">Profil</a> unter <b>Persönliche Infos >> Membermap</b> auch eingetragen hat.<br /><br /> Je genauer man seinen Wohnort beschreibt, desto genauer landet der Marker auf der Karte. <br /> Beispiel: "D, 88888 Testhausen, Teststraße 1" -> "Land, PLZ Stadt, Straße Hausnummer" </p> <script src="http://maps.google.com/maps?file=api&v=2&sensor=true&key=DEIN_API_CODE" type="text/javascript"> </script> <div id="map" style="margin:0px auto 0px auto; width: 100%; height: 620px"></div> <p>Die Membermap ist nur für eingeloggte User erreichbar. <br />Jegliche Nutzung der Userdaten außerhalb dieser Membermap ist strengstens untersagt und wird mit rechtlichen Schritten verfolgt!</p> </td> </tr> </table> </td> <td class="bs_tbl_right"></td> </tr> <tr> <td class="bs_tbl_bottom_left"></td> <td class="bs_tbl_bottom"></td> <td class="bs_tbl_bottom_right"></td> </tr> </table> |
Wobei DEIN_API_CODE...
HTML: 1
| <script src="http://maps.google.com/maps?file=api&v=2&sensor=true&key=DEIN_API_CODE" type="text/javascript"> | ...mit deinem Google-API-Code ersetzt werden muss. Einen Google-API-Code kannst du hier beantragen.
Öffne nun die themes/<style>/templates/footer.htm und füge vor </body>
HTML: 1 2 3
| {IF map_vars} {map_vars} {ENDIF}
| ein.
#### Installation des Profilfelds
Gehe in den Adminbereich und anschließend nach User >> Zusätzliche Profilfelder. Klicke dort auf "Neues Feld hinzufügen" und trage folgende Daten ein:
Zitat: Feldname: Membermap Angezeigter Name: Membermap
Feldtyp: Text (255 )
Anzeigen: Beiträge: Nein Registrierung: Nein User-Details: Nein User-Profil: Ja
Pflichtfeld: Nein Immer anzeigen: Nein
Suffix: Bearbeitungshinweis: Hier kannst du deinen Wohnort in die Membermap eintragen. Der Wohnort wird nur in der Membermap angezeigt. Je genauer die Wohnortbeschreibung, desto genauer landet der Marker auf der Karte. Beispiel: "D, 88888 Testhausen, Teststraße 1" -> "Land, PLZ Stadt, Straße Hausnummer" Benutzerdefinierte Darstellung:
Eingabe-Überprüfung:
//Edit PS: Aufgerufen wird die Map mit index.php?action=membermap
//Edit 2 Keine Templatevariablenübergabe außerhalb des Moduls behoben.
//Edit 3 Solltet ihr unbedingt ändern modules/membermap.php wurde überarbeitet. src/page.php muss neu geändert werden. ##############################################
Das wars.
Viel Spaß damit 
MfG Rafioso
Dieser Beitrag wurde insgesamt 3 mal editiert. Das letzte mal 18.05.2009, 12:51 von Rafioso.
|
|