<?php
// ----------------------------------------------------------------
// NOTE:
// When using this field, the field type in the database can be set
// to be anything, however 'varchar' is a popular setting.
// ----------------------------------------------------------------
class Gmap
{
var $value;
function Gmap($value, $column, $settings)
{
global $entry;
switch($_GET['module'])
{
// Overview output.
// -------------------------------------------------
case "overview":
$this->value = Utils
::resizeValue(strip_tags($value), 30
);
break;
// Entryview output.
// -------------------------------------------------
case "entryview":
$this->value = '<dt>' . $column . '</dt><dd><input type="text" name="' . $column . '" value="' . stripslashes(htmlentities($value)) . '" class="txt" /></dd>';
$this->value .= $this->setGmapCode();
$this->value .= '<dt>Latitude</dt><dd><input type="text" name="lt" id="lt" value="'.$entry['lt'].'" class="txt" /></dd>';
$this->value .= '<dt>Longitude</dt><dd><input type="text" name="lg" id="lg" value="'.$entry['lg'].'" class="txt" /></dd>';
break;
// Module not found so output typical value.
// -------------------------------------------------
default:
$this->value = $value;
}
}
function setGmapCode(){
global $settings, $entry;
?>
<script src="http://maps.google.com/maps?file=api&v=2&key=<?=$settings['gmap']['key'];?>" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
var center = new GLatLng(<?=$entry['lt']?$entry['lt']:$settings['gmap']['lat'];?>, <?=$entry['lg']?$entry['lg']:$settings['gmap']['lng'];?>);
map.setCenter(center, 13);
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
var marker = new GMarker(center, {draggable: true});
GEvent.addListener(marker, "dragstart", function() {
map.closeInfoWindow();
});
GEvent.addListener(marker, "dragend", function() {
if (marker) {
var mpoint = marker.getPoint();
document.getElementById('lt').value = mpoint.lat();
document.getElementById('lg').value = mpoint.lng();
}
});
GEvent.addListener(map, 'click',
function(overlay, point) {
if (point) {
document.getElementById('lt').value = point.y;
document.getElementById('lg').value = point.x;
}
});
map.addOverlay(marker);
}
}
//]]>
</script>
<div id="map" style="width: 500px; height: 300px"></div>
<script>load();</script>
<?
return $result;
}
} // End of Txt
?>