Version: 1.1, by oasi
Developer Last Online: Dec 2008
Category: BB Code Enhancements -
Version: 3.7.x
Rating:
Released: 10-15-2008
Last Update: Never
Installs: 86
Re-useable Code Translations Is in Beta Stage
No support by the author.
Hi all
I've made a Custom BBcode to be able to insert any kind of google map into the forum posts, so the Plugins I tried were'nt working as we expected.
I post the code, I hope it can be useful for anyone.
Security problems, improvements and tunning will be apreciated...
I used the tag [gmap], and inside you have to copy the code for the HTML inclusion you can copy when you click the link icon in the map:
Code:
<script type="text/javascript">
function ckURL()
{ if ((u.indexOf("http://")!=u.lastIndexOf("http://"))||u.lastIndexOf("http://")!=0){return false;}
if (u.indexOf('"')>=0) {return false;}
if (u.indexOf("http://maps.google")!=0){return false;}
return true;
}
t='';incr=0;t_i="{param}";
t_n_q=t_i.replace(/"/g,'"');
if(t_n_q.indexOf("91;url")>0)
{ if(t_n_q.indexOf('91;url="')>0){t=t_n_q.substr(t_n_q.indexOf('91;url="')+8,t_n_q.length);t_n_q='';}
if(t_n_q.indexOf('91;url=')>0) {t=t_n_q.substr(t_n_q.indexOf('91;url=')+7,t_n_q.length);t_n_q='';a=t.replace(/93;/g,'"');t=a;incr=2;}
if(t_n_q.indexOf('91;url')>0) {if (t_n_q.indexOf('93;')==(t_n_q.indexOf('91;url')+8)){t=t_n_q.substr(t_n_q.indexOf('91;url')+11,t_n_q.length);a=t.replace(/91;/g,'"');t=a;}}
}
else
{ t=t_n_q.substr(t_n_q.indexOf('src="')+5,t_n_q.length);}
u=t.substr(0,t.indexOf('"')-incr);
up=u.replace(/amp;/g,'');u=up;
if (ckURL())
{ document.write('<iframe width="640" height="480" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="'+u+'"></iframe>');}
else
{document.write("<p><b>Wrong map URL, edit the post to change it.</b></p>Reload the page when finished to check if correct.");}
</script>
The others settings for the BBCode are:
Use {option}: -> No Remove Tag If Empty -> Yes Disable BB Code Within This BB Code -> Yes Disable Smilies Within This BB Code -> Yes Disable Word Wrapping Within This BB Code ->Yes
Please, mark as installed if it worked and you are using it.
Hope it helps!
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
This is great, thankyou very much for providing this.
I have been looking at doing it myself but could not find a secure solution that would prevent people embedding any link. Looking at the javascript it looks like this solves that problem
hey guys, I got a problem using this wonderful code..
when I paste the html code (iframe...)
I have this message in the post :
Google
Error
Forbidden
Your client does not have permission to get URL /maps?f=q&hl=fr&geocode=&q=tour+eiffel+%20%20paris& ie=UTF8&ll=48.858072,2.294859&sp%20%20n=0.006295,0 .006295&output=embed&s=AARTsJr%20%20CvdyoV0AZQw6_B VqD495b8b0qyA from this server. (Client IP address: 82.238.112.139)
Me too.
As I recall, Google requires an API key on a server to dish out their maps. Any leads on this? I know their licensing levels for businesses is really steep.
My first try was with a Google search on my town. It had one pin in the map. That URL got a permissions error from the Google server.
When I tried to paste in a URL with driving directions, it embedded the page, albeit in a small form, and with the driving directions hogging a lot of the IFRAME space. I can alter the scripts' width and height, but are there any pointers for embedding the map alone as showing on the Tinet.org website?
It iframes the entire page as I see. Is there a way to display just a map?
I could reproduce this situation here. It gave me the intire page if I use a link that comes for the first page when you open googlemaps, like your country. If you get a close up one it gave me only the map.
Quote:
Originally Posted by skcyber
hey guys, I got a problem using this wonderful code..
when I paste the html code (iframe...)
I have this message in the post :
Google
Error
Forbidden
Your client does not have permission to get URL /maps?f=q&hl=fr&geocode=&q=tour+eiffel+%20%20paris& ie=UTF8&ll=48.858072,2.294859&sp%20%20n=0.006295,0 .006295&output=embed&s=AARTsJr%20%20CvdyoV0AZQw6_B VqD495b8b0qyA from this server. (Client IP address: 82.238.112.139)
I've got the same here. I don't know why but If use a code from anyplace in US it works fine but anything from out side like my country, it gives me the same error.
Any idea what could it be ?
If this problem can be solved this will be one of the best BBCode ever.
I compared my HTML source with yours, and noticed that mine contains some extra space characters. Not sure if that matters or not, but here they are, represented by underline characters for ease of viewing:
&__amp;t=h
&a__mp;ll=38.1 . . .
&amp;ou__tput=embed" . . .
&__amp;t=h
&amp;so__urce=embed" . . .
The URL source from Google didn't contain any of these extra space characters.
On another note, would you mind sharing how you acquired the URL from Google? Did you use the "My Maps" feature? And do just plain driving directions embedd a map, too? Or a whole webpage as it does for me?
I could reproduce this situation here. It gave me the intire page if I use a link that comes for the first page when you open googlemaps, like your country. If you get a close up one it gave me only the map.
I've got the same here. I don't know why but If use a code from anyplace in US it works fine but anything from out side like my country, it gives me the same error.
Any idea what could it be ?
If this problem can be solved this will be one of the best BBCode ever.
Tks
I noticed that using a URL of just a town's location returned the forbidden permissions error, but using a URL of driving directions of maybe 80 miles embeds a whole page. Update: Page embeds also for a 1.6 mile drive.