[ticket/7778] BBCode single limit

There are currently two hard limits for the number of BBCodes
allowed. One is enforced by the type of the `bbcode_id` column,
the other by an hard limit in `acp/acp_bbcode.php`. However this
limit can never be reached due to the size of the database column.

Suggested fix involves adding a new constant to define the max.
number of BBCodes (as with smilies) and chaning the database
column from a tinyint to a smallint to actually allow 1511 BBCodes

PHPBB3-7778
This commit is contained in:
Erik Frèrejean 2011-01-11 13:48:13 +01:00 committed by Oleg Pudeyev
parent 510248da28
commit a7bc76d246
4 changed files with 14 additions and 4 deletions

View file

@ -926,7 +926,7 @@ function get_schema_struct()
$schema_data['phpbb_bbcodes'] = array( $schema_data['phpbb_bbcodes'] = array(
'COLUMNS' => array( 'COLUMNS' => array(
'bbcode_id' => array('TINT:3', 0), 'bbcode_id' => array('USINT', 0),
'bbcode_tag' => array('VCHAR:16', ''), 'bbcode_tag' => array('VCHAR:16', ''),
'bbcode_helpline' => array('VCHAR_UNI', ''), 'bbcode_helpline' => array('VCHAR_UNI', ''),
'display_on_posting' => array('BOOL', 0), 'display_on_posting' => array('BOOL', 0),

View file

@ -213,7 +213,7 @@ class acp_bbcodes
$bbcode_id = NUM_CORE_BBCODES + 1; $bbcode_id = NUM_CORE_BBCODES + 1;
} }
if ($bbcode_id > 1511) if ($bbcode_id > BBCODE_LIMIT)
{ {
trigger_error($user->lang['TOO_MANY_BBCODES'] . adm_back_link($this->u_action), E_USER_WARNING); trigger_error($user->lang['TOO_MANY_BBCODES'] . adm_back_link($this->u_action), E_USER_WARNING);
} }

View file

@ -173,6 +173,9 @@ define('BBCODE_UID_LEN', 8);
// Number of core BBCodes // Number of core BBCodes
define('NUM_CORE_BBCODES', 12); define('NUM_CORE_BBCODES', 12);
// BBCode hard limit
define('BBCODE_LIMIT', 1511);
// Smiley hard limit // Smiley hard limit
define('SMILEY_LIMIT', 1000); define('SMILEY_LIMIT', 1000);

View file

@ -916,8 +916,15 @@ function database_update_info()
'3.0.7-PL1' => array(), '3.0.7-PL1' => array(),
// No changes from 3.0.8-RC1 to 3.0.8 // No changes from 3.0.8-RC1 to 3.0.8
'3.0.8-RC1' => array(), '3.0.8-RC1' => array(),
// No changes from 3.0.8 to 3.0.9-RC1
'3.0.8' => array(), // Changes from 3.0.8 to 3.0.9-RC1
'3.0.8' => array(
'change_columns' => array(
BBCODES_TABLE => array(
'bbcode_id' => array('USINT', 0),
),
),
),
); );
} }