Guest

Gijscom

By: a guest on Jul 30th, 2008  |  syntax: PHP  |  size: 2.89 KB  |  hits: 117  |  expires: Never
download  |  raw  |  embed  |  report abuse
Copied
  1. <?php
  2. // ----------------------------------------------------------------
  3. // NOTE:
  4. // When using this field, the field type in the database can be set
  5. // to be anything, however 'varchar' is a popular setting.
  6. // ----------------------------------------------------------------
  7.  
  8. class Gmap
  9. {
  10.         var $value;
  11.  
  12.         function Gmap($value, $column, $settings)
  13.         {
  14.                 global $entry;
  15.                
  16.                 switch($_GET['module'])
  17.                 {
  18.                         // Overview output.
  19.                         // -------------------------------------------------
  20.                         case "overview":
  21.                                 $this->value = Utils::resizeValue(strip_tags($value), 30);
  22.                                 break;
  23.  
  24.                         // Entryview output.
  25.                         // -------------------------------------------------
  26.                         case "entryview":              
  27.                                
  28.                                 $this->value  = '<dt>' . $column . '</dt><dd><input type="text" name="' . $column . '" value="' . stripslashes(htmlentities($value)) . '" class="txt" /></dd>';                        
  29.                                 $this->value .= $this->setGmapCode();
  30.                                 $this->value .= '<dt>Latitude</dt><dd><input type="text" name="lt" id="lt" value="'.$entry['lt'].'" class="txt" /></dd>';
  31.                                 $this->value .= '<dt>Longitude</dt><dd><input type="text" name="lg" id="lg" value="'.$entry['lg'].'" class="txt" /></dd>';                             
  32.                                 break;
  33.  
  34.                         // Module not found so output typical value.
  35.                         // -------------------------------------------------
  36.                         default:
  37.                                 $this->value = $value;
  38.                 }                      
  39.         }
  40.        
  41.        
  42.         function setGmapCode(){
  43.                 global $settings, $entry;
  44.                
  45.                 ob_start();
  46.                 ?>
  47.                     <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=<?=$settings['gmap']['key'];?>" type="text/javascript"></script>
  48.                         <script type="text/javascript">
  49.                
  50.                         //<![CDATA[
  51.                
  52.                         function load() {
  53.                           if (GBrowserIsCompatible()) {
  54.                                 var map = new GMap2(document.getElementById("map"));
  55.                                 var center = new GLatLng(<?=$entry['lt']?$entry['lt']:$settings['gmap']['lat'];?>, <?=$entry['lg']?$entry['lg']:$settings['gmap']['lng'];?>);
  56.                         map.setCenter(center, 13);
  57.                                 map.addControl(new GSmallMapControl());
  58.                         map.addControl(new GMapTypeControl());
  59.  
  60.                                 var marker = new GMarker(center, {draggable: true});
  61.                
  62.                                 GEvent.addListener(marker, "dragstart", function() {
  63.                                   map.closeInfoWindow();
  64.                                 });
  65.                
  66.                                 GEvent.addListener(marker, "dragend", function() {
  67.                                         if (marker) {
  68.                                          var mpoint = marker.getPoint();
  69.                                          
  70.                                                 document.getElementById('lt').value = mpoint.lat();
  71.                                                 document.getElementById('lg').value = mpoint.lng();
  72.                                         }
  73.                                 });
  74.                                
  75.                                 GEvent.addListener(map, 'click',
  76.                                 function(overlay, point) {
  77.                                         if (point) {
  78.                                                 document.getElementById('lt').value = point.y;
  79.                                                 document.getElementById('lg').value = point.x;
  80.                                         }
  81.                                 });
  82.                                
  83.                                 map.addOverlay(marker);
  84.                                
  85.                                
  86.                           }
  87.                         }
  88.                
  89.                         //]]>
  90.                         </script>
  91.                         <div id="map" style="width: 500px; height: 300px"></div>
  92.                         <script>load();</script>
  93.                 <?
  94.                 $result = ob_get_contents();
  95.                 ob_end_clean();
  96.                 return $result;
  97.         }
  98. } // End of Txt
  99. ?>