Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
  #1  
Old 04-29-2012, 09:44 PM
lordebon lordebon is offline
 
Join Date: Apr 2010
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Ampersand encoding in links in custom BBCode (Solved)

Hi Folks,

I'm looking to add some custom BBCode that uses an IFrame to link to a predetermined base site (for use with Amazon's Associates program).

The problem I'm coming across is when trying to put the source in the HTML in the BBCode manager, it's encoding the &'s in the src URL into & which then breaks the iframe link.

Is there any way to prevent vB from encoding ampersands in a URL? I've tried passing them in a parameter that appends on to the end of the base URL but it similarly encodes them as & and breaks the link.
Reply With Quote
  #2  
Old 04-29-2012, 09:51 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I find that if you have a bbcode replacement with "&" in it, when it displays the replacement in the bbcode manager it changes & to &, but when you actually use the bbcode in a post, the resulting html in the page is correct. I guess what I'm saying is, are you sure it's a misplaced & that's breaking the url? Does it look wrong if you view the html source of a page where that bbcode was used in a post?
Reply With Quote
  #3  
Old 04-29-2012, 09:56 PM
lordebon lordebon is offline
 
Join Date: Apr 2010
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
I find that if you have a bbcode replacement with "&" in it, when it displays the replacement in the bbcode manager it changes & to &, but when you actually use the bbcode in a post, the resulting html in the page is correct. I guess what I'm saying is, are you sure it's a misplaced & that's breaking the url? Does it look wrong if you view the html source of a page where that bbcode was used in a post?
It's definitely the & that is breaking it.

I've viewed the source of a test post using it and the link contains & instead of & as it should. If I copy the link and manually correct them to & it work's fine again.
Reply With Quote
  #4  
Old 04-29-2012, 10:08 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK, another dumb question - you don't have & actually in your replacement anywhere?

Is there any way you can post your bbcode replacement so we can try it?
Reply With Quote
  #5  
Old 04-30-2012, 07:02 PM
lordebon lordebon is offline
 
Join Date: Apr 2010
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
OK, another dumb question - you don't have & actually in your replacement anywhere?

Is there any way you can post your bbcode replacement so we can try it?
Sure. It's an amazon affiliate link designed to insert a small iframe (sadly thats what Amazon uses for most of their links). It doesnt have & in the replacement (I tried that before to see if it would do the opposite and replace it with &, but it just kept it as &amp.

I also have a google speadsheet embidding bbcode that has a similar issue, but it's less sensative to the URL (it works so long as the first parameter is passed, the rest just get ignored).

Replacement:
Code:
<div><iframe width="125" height="125" scrolling="no" border="0" marginwidth="0" style="border:none;" frameborder="0" src="http://rcm.amazon.com/e/cm?t=mayhem-20&o=1&p=21&l=ur1&category=game_downloads&banner=13PTQH69Q2290VF8SR82&f=ifr"></iframe></div>
What it gives rendered (from view source) is:
Code:
<div><iframe width="125" height="125" scrolling="no" border="0" marginwidth="0" style="border:none;" frameborder="0" src="http://rcm.amazon.com/e/cm?t=mayhem-20&amp;o=1&amp;p=21&amp;l=ur1&amp;category=game_downloads&amp;banner=13PTQH69Q2290VF8SR82&amp;f=ifr"></iframe></div>
As you can see, it replaces the & with & amp; The google spreadsheet one (which still works sorta) does the same:

Replacement
Code:
<div align="center"><iframe width="95%" height="500" frameborder="0" src="https://spreadsheets.google.com/pub?key={param}&hl=en&single=true&gid=0&output=html&widget=true">IFRAME Not Available. <a href="https://spreadsheets.google.com/pub?key={param}&hl=en&single=true&gid=0&output=html">Direct Link to Spreadsheet.</a></iframe></div>
The param you pass the spreadsheet key, and it again turns everything after that into
&amp;hl=en&amp;single=true&amp;gid=0&amp;output=ht ml

I didn't notice the issue before since google spreadsheets will output the spreadsheet in the iframe just with the first parameter (key=) and the rest just get ignored. For my Amazon link however all the parameters are needed or it doesn't generate anything.
Reply With Quote
  #6  
Old 04-30-2012, 08:20 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK, I tried it, and when I put the bbcode in a post then view the html source I see &amp;s in it. But I also see it in other src and href tags, and when I clicked on the link it seemed to work. Here's what the browser said when I got to amazon.com:

Code:
http://www.amazon.com/b/?node=979455011&tag=mayhem-20&camp=213517&creative=391561&linkCode=ur1&adid=16R7ZVMDJE5FD0HS2D4Z&&ref-refURL=http%3A%2F%2F10.0.0.4%2Fforum4%2Fshowthread.php%3F2-test2
Reply With Quote
  #7  
Old 05-01-2012, 04:27 AM
lordebon lordebon is offline
 
Join Date: Apr 2010
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

*Sigh* it's the little things that get us.

Turns out it was Adblock in Firefox that was preventing it from showing up, not the odd change to &amp; in the source. It must have reenabled on my home domain during an update and I didn't even notice it (since my site otherwise uses no ads).

Thanks for trying to figure things out with me kh99. It's still very odd that the page loads fine even when the source shows it using &amp; and yet if I try copying and pasting the src url that includes them into the nav bar it breaks.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:48 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08761 seconds
  • Memory Usage 2,222KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (4)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (7)postbit_onlinestatus
  • (7)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete