Allow multiple domain name references to the same map.
- Associative GmaKey patch (RussFink): Google binds your API key to your domain name, such that if you have multiple domains registered for your site, you need to have multiple API keys. In my case, I have www.finalscoretrivia.com and www.finalscoreohio.com pointing to the same set of pages. By default, the GmaKey contains only one key, and thus only one domain is "registered." The users using the unregistered domain to view the page won't see the map.
I fixed this by making GmaKey an associative array. The following patch will do it (use the patch program. If you don't know what that is, perhaps the maintainer will upload a patched version.)
- This can also be done more efficiently by putting the lookup code in the config.php. There is always an easier way. Just released pre4, which has a one-liner that does what you're looking for. BenWilson February 08, 2007, at 01:29 PM
--- gma-2.2.0-pre2.php.ORIG Thu Feb 1 11:24:05 2007
+++ gma-2.2.0-pre2.php Thu Feb 1 11:26:52 2007
@@ -212,11 +212,12 @@
}
function gmaAddressLookup($a) {
global $GmaKey;
+ $_gmakey = $GmaKey[$_SERVER['HTTP_HOST']];
$res = false;
$url = sprintf(
'http://maps.google.com/maps/geo?&q=%s&output=csv&key=%s',
rawurlencode($a),
- $GmaKey
+ $_gmakey
);
$coords = array();
if($res = file_get_contents($url)) {
@@ -231,12 +232,13 @@
global $GmaEnable, $GmaVersion, $GmaScript;
global $GmaMaps, $GmaPoints, $GmaLines;
global $GmaKey, $GmaDebugMsg, $GmaDefaults;
+ $_gmakey = $GmaKey[$_SERVER['HTTP_HOST']];
GmaDoIEFix();
$HTMLHeaderFmt[]
= '<style type=\'text/css\'>v:* { behavior:url(#default#VML); }</style>'
."\n<script src='http://maps.google.com/maps?file=api&v=2&key="
- .$GmaKey."' type='text/javascript'></script>";
+ .$_gmakey."' type='text/javascript'></script>";
$HTMLHeaderFmt[]
= "\n<script language='javascript' src='\$FarmPubDirUrl/scripts/gmaJs.js'
>"
."</script>\n";
Usage: in config.php, change $GmaKey = 'abcde...';
to $GmaKey['mydomain.com'] = 'abcde...';
. NOTE, the patch above distinguishes between "www.mydomain.com" and "mydomain.com" but Google does not, so you need to copy the key from the first into the second (just use two lines of identical key)... Either that, or the maintainer can do the Php trickery to strip off the "www." portion and just use 'mydomain.com'.
Status:Planned
Version:2.2