Zu sehen ist das Ergebnis unter www.kleinaitingen.com und einem Klick auf einen Firmenamen. Die Kontaktdaten werden dann in der Google Maps dargestellt. Vielleicht hat der ein oder andere noch tolle Ideen das ganze zu erweitern, wäre toll!
Im Input-Modul nutzen wir die CMS_VALUE[99], um auf einfache Art und Weise den Ort mit einem Namen z.B. "Kleinaitingen" vorzubelegen.
INPUT-MODUL
Code: Alles auswählen
?><?php
/*****************************************************
* CONTENIDO MODUL INPUT - FIRMENLISTE MIT GOOGLE MAPS
*
* Modulname : Firmenliste inkl. Google Maps
* Author(s) : Wolfgang Kundler <kundler@wallaby.de>
* Copyright : www.onlineshop-handbuch.de
* Created : 2006-12-03
*****************************************************/
?>
<table border="0">
<tr>
<td><?php echo mi18n("Gemeinde");?></td>
<td><input type="text" name="<?php echo "CMS_VAR[99]";?>" value="<?php echo "CMS_VALUE[99]"; ?>"></td>
</tr>
</table>
<?php
Die Zahl "17" bei "map.setCenter(new GLatLng(<? echo "$lat, $lon"; ?>), 17, G_SATELLITE_MAP);" stellt den Zoomfaktor dar. Ist in der Kartendarstellung nichts sichtbar, den Wert verkleinern.
$row[0] = firmenid
$row[1] = firma
$row[2] = name
$row[3] = anschrift
$row[4] = plz
$row[5] = ort
$row[6] = lat
$row[7] = lon
$row[8] = fon
$row[9] = fax
$row[10] = mobil
$row[11] = email
$row[12] = homepage
$row[13] = branche
$row[14] = memo
OUTPUT-MODUL
Code: Alles auswählen
<?php
/*****************************************************
* CONTENIDO MODUL OUTPUT - FIRMENLISTE MIT GOOGLE MAPS
*
* Modulname : Firmenliste inkl. Google Maps
* Author(s) : Wolfgang Kundler <kundler@wallaby.de>
* Copyright : www.onlineshop-handbuch.de
* Created : 2006-12-03
*****************************************************/
$host=localhost;
$dbname='hierdatenbanknameeintragen';
$user='hierdatenbankusereintragen';
$pwd='hierdatenbankpassworteintragen';
$gemeinde = $_GET['Gemeinde'];
$idart = $_GET['idart'];
$idcat = $_GET['idcat'];
$firmenid = $_GET['firmenid'];
$lat = $_GET['lat'];
$lon = $_GET['lon'];
if(isset($firmenid))
{
if($lon==0)
{
echo"Für dieses Unternehmen sind leider keine genauen Geocoding-Daten hinterlegt! ";
echo"Wir hinterlegen für Sie auch kostenlos einen längeren HTML-Text zu Ihrem Unternehmen. ";
echo"Falls Sie wünschen, können Sie uns diese Information (und auch Geocoding-Koordinaten) gerne mitteilen.<br /><br />";
echo"Öffnen Sie dazu einfach per Mausklick unser <a href='http://www.kleinaitingen.com/front_content.php?idart=147&idcat=81'>Anmeldeformular</a>.";
}
Googlemaps($firmenid, $lat, $lon);
}
else
{
$gemeinde=CMS_VALUE[99];
if($sortierung=="") {$sortierung="branche";};
Firmenliste($gemeinde,$sortierung);
}
// Datenbank-Verbindung herstellen
function verbinden()
{
global $host;
global $dbname;
global $user;
global $pwd;
$db=mysql_connect($host, $user, $pwd) or die ("Keine Verbindung!");
$select=mysql_select_db($dbname,$db);
return $db;
}
// Geocoding-Daten einholen anhand der Adresse (= Strasse PLZ Ort)
function get_lat_long($q)
{
global $lat;
global $lon;
$q = urlencode($q);
$gm = fopen('http://maps.google.com/maps?q=' . str_replace('','+',$q) . '&output=js','r');
$tmp = @fread($gm,30000);
fclose($gm);
$pos=strpos($tmp,"center");
$wert=substr($tmp,$pos,40);
$lat=substr($wert,14,9);
$lon=substr($wert,29,9);
}
// Darstellung der Google Map inkl. aller Kontaktdaten aus der Datenbank
function Googlemaps($firmenid, $lat, $lon)
{
global $lat;
global $lon;
$db=verbinden();
$sql="SELECT * FROM con_firmenverzeichnis WHERE firmenid='$firmenid'";
$rs1=mysql_query($sql,$db);
$row=mysql_fetch_row($rs1);
if($row[6]>0.1)
{
// Die genauen Geodaten liegen in unserer Datenbank!
$lat=$row[6];
$lon=$row[7];
}
else
{
// Die Geodaten werden interpoliert dargestellt!
$tmp = get_lat_long("$row[3], $row[4] $row[5]");
}
?>
<h1><? echo "$row[1]"; ?></h1>
<h2><? echo "Branche: $row[13]"; ?></h2>
<p><? echo "$row[14]"; ?></p>
<div id="map" style="width:585px; height:425px"></div>
<script type="text/javascript">
//<![CDATA[
function load()
{
if (GBrowserIsCompatible())
{
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(<? echo "$lat, $lon"; ?>), 17, G_SATELLITE_MAP);
// Our info window content
var infoTabs = [
new GInfoWindowTab("Anschrift", "<? echo "<b>Firma:</b> $row[1] <br /><b>Name:</b> $row[2] <br /><b>Anschrift:</b> $row[3] <br /><b>PLZ/Ort:</b> $row[4] $row[5]"; ?>"),
new GInfoWindowTab("Kontakt", "<? echo "<b>Fon:</b> $row[8]<br /><b>Fax:</b> $row[9]<br /><b>Mobil:</b> $row[10]<br /><b>eMail:</b> "; if($row[11]=="k.A.") {echo "k.A.";} else {echo "<a href='mailto:$row[11]?subject=Kontakt%20%FCber%20www.kleinaitingen.com' target='_blank'>$row[11]</a>";} echo"<br /><b>Homepage:</b> "; if($row[12]=="k.A.") {echo "k.A.";} else {echo "<a href='$row[12]' target='_blank'>$row[12]</a>";} ?>"),
new GInfoWindowTab("Geocoding", "<? echo "<b>LAT:</b> $lat <br /><b>LON:</b> $lon"; ?>")
];
// Place a marker in the center of the map and open the info window automatically
var marker = new GMarker(map.getCenter());
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowTabsHtml(infoTabs);
});
map.addOverlay(marker);
marker.openInfoWindowTabsHtml(infoTabs);
}
}
//]]>
</script>
<?
}
// Ausgabe einer nach Branchen sortierten Firmenliste
function Firmenliste($gemeinde, $sortierung)
{
global $gemeinde;
global $lat;
global $lon;
if($gemeinde=="Oberottmarshausen") { $idart='165'; }
elseif($gemeinde=="Großaitingen") { $idart='169'; }
elseif($gemeinde=="Graben") {$idart='168';}
else { $idart='166'; };
?>
<div>
<table summary="Ausgabe eines Firmenverzeichnisses einer einzelnen Gemeinde" class="mytable" border="0" width="585">
<thead>
<tr>
<th id="branche" abbr="Branche"> <a href="/firmenverzeichnis/<? echo"$gemeinde"; ?>?sortierung=branche">Branche</a><img src="images/sort.gif" alt="V" hspace="10" /> </th>
<th id="firma" abbr="Firma"> <a href="/firmenverzeichnis/<? echo"$gemeinde"; ?>?sortierung=firma">Firma</a><img src="images/sort.gif" alt="V" hspace="10" /> </th>
<th id="anschrift" abbr="Anschrift"> <a href="/firmenverzeichnis/<? echo"$gemeinde"; ?>?sortierung=anschrift">Anschrift</a><img src="images/sort.gif" alt="V" hspace="10" /> </th>
</tr>
</thead>
<tfoot><tr><td></td><td></td><tr></tfoot>
<tbody>
<?
$db=verbinden();
$sql="SELECT * FROM con_firmenverzeichnis WHERE ort='$gemeinde' ORDER by $sortierung";
$rs=mysql_query($sql,$db);
while($row=mysql_fetch_row($rs))
{
echo"<tr><td headers='branche'> $row[13]</td>";
if($row[3]=="k.A.") { echo"<td headers='firma'> <a href='http://www.kleinaitingen.com/front_content.php?idart=147&idcat=81'>$row[1]</a></td>"; }
else { echo"<td headers='firma'> <a href='front_content.php?idart=$idart&firmenid=$row[0]&lat=$row[6]&lon=$row[7]'>$row[1]</a></td>"; }
echo"<td headers='anschrift'> $row[3]</td>";
echo"</tr>";
}
echo"</tbody></table>";
echo"<em><strong>Tabelle:</strong> Unternehmen in $gemeinde</em>";
?>
</div>
<?
}
?>
Gruss aus Bayern