Cap'n Steve
01-15-2006, 10:00 PM
HTML Entities Fix 1.0 (ported from vBulletin 3.0)
What does this hack do?
The short explanation: It makes it so & entities aren't escaped when posting.
The long explanation: As you may know, HTML uses entities in the form of &(something); to represent certain characters. For example, & will show up as & in the browser. vBulletin escapes any of these that you post so they show up as plain text. However, to be compatible with languages other than English, any entities in the form of &#(number); can't be escaped. That means things like ' (that represents a '), can't be posted as plain text without inserting empty bbcode in the middle of it. That's an ugly workaround, so I came up with this hack. Now, if you want to post ', just post ' and it will show up properly in the browser.
Why would I want to use this?
Well, if your forum involves discussing HTML or programming, or perhaps making modifications for popular forum software, this will let your users post instructions with entities in a way that makes much more sense than the current way. (hint, hint)
Here are the instructions, it should work on all 3.5 versions:
In includes/class_core.php find
'/&(?!' . ($entities ? '#[0-9]+' : '(#[0-9]+|[a-z]+)') . ';)/si',
Replace that with
//##################### Start HTML Entities Hack ###############################
'/&(?!' . ($entities ? '(#[0-9]+|amp)' : '(#[0-9]+|[a-z]+)') . ';)/si',
//##################### End HTML Entities Hack ###############################
What does this hack do?
The short explanation: It makes it so & entities aren't escaped when posting.
The long explanation: As you may know, HTML uses entities in the form of &(something); to represent certain characters. For example, & will show up as & in the browser. vBulletin escapes any of these that you post so they show up as plain text. However, to be compatible with languages other than English, any entities in the form of &#(number); can't be escaped. That means things like ' (that represents a '), can't be posted as plain text without inserting empty bbcode in the middle of it. That's an ugly workaround, so I came up with this hack. Now, if you want to post ', just post ' and it will show up properly in the browser.
Why would I want to use this?
Well, if your forum involves discussing HTML or programming, or perhaps making modifications for popular forum software, this will let your users post instructions with entities in a way that makes much more sense than the current way. (hint, hint)
Here are the instructions, it should work on all 3.5 versions:
In includes/class_core.php find
'/&(?!' . ($entities ? '#[0-9]+' : '(#[0-9]+|[a-z]+)') . ';)/si',
Replace that with
//##################### Start HTML Entities Hack ###############################
'/&(?!' . ($entities ? '(#[0-9]+|amp)' : '(#[0-9]+|[a-z]+)') . ';)/si',
//##################### End HTML Entities Hack ###############################