'map', 'style'=>'"width: 85%; height: 400px; text-align: center;"' ) ); SDVA($MarkerDefaults, array( 'id' => 'map' ) ); Markup('map', '>if', '/\(:Google-Map\s*(.*?):\)/e',"google_map('$1');"); Markup('marker', '$v) $div.=" $k=".stripslashes($v); $div.=">"; return(Keep($div)); } function google_marker($args) { global $MarkerCode,$MarkerDefaults; $opts = array_merge($MarkerDefaults,parseArgs($args)); $opts['text'] = preg_replace('/</','<', $opts['text']); $opts['text'] = preg_replace('/>/','>', $opts['text']); $opts['text'] = _quote($opts['text']); $opts['icon'] = stripslashes($opts['icon']); $MarkerCode.="\nAddMarker({$opts['id']},{$opts['lat']},{$opts['lon']},{$opts['text']},{$opts['icon']});"; return(''); } function GoogleMapScript() { global $HTMLHeaderFmt, $HTMLStylesFmt, $HTMLFooterFmt, $MapCode, $MarkerCode; $HTMLHeaderFmt[] = '' ."\n"; $HTMLHeaderFmt[] = "\n\n"; $HTMLFooterFmt['google-maps'] =<< SCRIPT; } function AddressLookup($a) { if (!is_string($a) or !$a) return false; global $CacheDir; $fname = preg_replace("/\/\//", "/", "$CacheDir/".md5($a).".txt"); if ($CacheDir && file_exists($fname)) { $f = fopen($fname, 'r'); if ($f) { $_coords = unserialize(fread($f, filesize($fname))); fclose($f); return $_coords; } } $_url = sprintf('http://maps.google.com/maps?output=js&q=%s',rawurlencode($a)); $_result = false; $_coords = false; if($_result = file_get_contents($_url)) { if(strpos($_result,'errortips') > 1 || strpos($_result,'Did you mean:') !== false) return false; preg_match('!center:\s*{lat:\s*(-?\d+\.\d+),lng:\s*(-?\d+\.\d+)}!U', $_result, $_match); if($_match){ $_coords['lat'] = $_match[1]; $_coords['lon'] = $_match[2]; $f = fopen($fname, 'w'); if($f){ fwrite($f,serialize($_coords)); fclose($f); } } } return $_coords; }