diff options
-rw-r--r-- | phpBB/adm/style/acp_main.html | 7 | ||||
-rw-r--r-- | phpBB/includes/acm/acm_file.php | 2 | ||||
-rw-r--r-- | phpBB/includes/acp/acp_main.php | 6 | ||||
-rw-r--r-- | phpBB/includes/db/mysql.php | 2 | ||||
-rw-r--r-- | phpBB/install/database_update.php | 247 | ||||
-rw-r--r-- | phpBB/language/en/acp/common.php | 2 | ||||
-rw-r--r-- | phpBB/language/en/acp/permissions_phpbb.php | 9 |
7 files changed, 240 insertions, 35 deletions
diff --git a/phpBB/adm/style/acp_main.html b/phpBB/adm/style/acp_main.html index f9a74e23c6..364525e860 100644 --- a/phpBB/adm/style/acp_main.html +++ b/phpBB/adm/style/acp_main.html @@ -14,13 +14,6 @@ <p>{L_ADMIN_INTRO}</p> - <!-- IF S_DEBUG_EXTRA --> - <div class="errorbox"> - <h3>{L_WARNING}</h3> - <p>{L_DEBUG_EXTRA_WARNING}</p> - </div> - <!-- ENDIF --> - <!-- IF S_REMOVE_INSTALL --> <div class="errorbox"> <h3>{L_WARNING}</h3> diff --git a/phpBB/includes/acm/acm_file.php b/phpBB/includes/acm/acm_file.php index f74ab2707f..b8aed9bcb7 100644 --- a/phpBB/includes/acm/acm_file.php +++ b/phpBB/includes/acm/acm_file.php @@ -371,7 +371,7 @@ class acm } $db->sql_freeresult($query_result); - fwrite($fp, "<?php\n\n/*\n$query\n*/\n\n\$expired = (time() > " . (time() + $ttl) . ") ? true : false;\nif (\$expired) { return; }\n\n\$this->sql_rowset[\$query_id] = array(" . implode(',', $lines) . ') ?>'); + fwrite($fp, "<?php\n\n/*\n" . str_replace('*/', '*\/', $query) . "\n*/\n\n\$expired = (time() > " . (time() + $ttl) . ") ? true : false;\nif (\$expired) { return; }\n\n\$this->sql_rowset[\$query_id] = array(" . implode(',', $lines) . ') ?>'); @flock($fp, LOCK_UN); fclose($fp); diff --git a/phpBB/includes/acp/acp_main.php b/phpBB/includes/acp/acp_main.php index f71965e375..b1331fa1ae 100644 --- a/phpBB/includes/acp/acp_main.php +++ b/phpBB/includes/acp/acp_main.php @@ -489,12 +489,6 @@ class acp_main ); } - // Display debug_extra notice - if (defined('DEBUG_EXTRA')) - { - $template->assign_var('S_DEBUG_EXTRA', true); - } - // Warn if install is still present if (file_exists($phpbb_root_path . 'install')) { diff --git a/phpBB/includes/db/mysql.php b/phpBB/includes/db/mysql.php index 48ae9e9773..099e1cf11a 100644 --- a/phpBB/includes/db/mysql.php +++ b/phpBB/includes/db/mysql.php @@ -26,7 +26,7 @@ if (!defined('SQL_LAYER')) /** * MySQL Database Abstraction Layer -* Minimum Requirement is 3.23+/4.0+/4.1+ +* Minimum Requirement is 3.23+/4.0+ (NOT 4.1+/5.0+) * @package dbal */ class dbal_mysql extends dbal diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index 73507455cd..793780aa6b 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -87,12 +87,194 @@ include($phpbb_root_path . 'language/' . $row['config_value'] . '/install.' . $p // Database column types mapping $dbms_type_map = array( - 'mysql' => array('INT:' => 'int(%d)', 'BINT' => 'bigint(20)', 'UINT' => 'mediumint(8) UNSIGNED', 'UINT:' => 'int(%d) UNSIGNED', 'TINT:' => 'tinyint(%d)', 'USINT' => 'smallint(4) UNSIGNED', 'BOOL' => 'tinyint(1) UNSIGNED', 'VCHAR' => 'varchar(255)', 'VCHAR:' => 'varchar(%d)', 'CHAR:' => 'char(%d)', 'XSTEXT' => 'text', 'STEXT' => 'text', 'TEXT' => 'text', 'MTEXT' => 'mediumtext', 'TIMESTAMP' => 'int(11) UNSIGNED', 'DECIMAL' => 'decimal(5,2)', 'VCHAR_BIN' => 'varchar(252) /*!40101 CHARACTER SET utf8 */ BINARY', 'VCHAR_CI' => 'varchar(252)', 'VARBINARY' => 'varbinary(255)'), - 'firebird' => array('INT:' => 'INTEGER', 'BINT' => 'DOUBLE PRECISION', 'UINT' => 'INTEGER', 'UINT:' => 'INTEGER', 'TINT:' => 'INTEGER', 'USINT' => 'INTEGER', 'BOOL' => 'INTEGER', 'VCHAR' => 'VARCHAR(255)', 'VCHAR:' => 'VARCHAR(%d)', 'CHAR:' => 'CHAR(%d)', 'XSTEXT' => 'BLOB SUB_TYPE TEXT', 'STEXT' => 'BLOB SUB_TYPE TEXT','TEXT' => 'BLOB SUB_TYPE TEXT', 'MTEXT' => 'BLOB SUB_TYPE TEXT', 'TIMESTAMP' => 'INTEGER', 'DECIMAL' => 'DOUBLE PRECISION','VCHAR_BIN' => 'VARCHAR(84) CHARACTER SET UNICODE_FSS', 'VCHAR_CI' => 'VARCHAR(252)', 'VARBINARY' => 'CHAR(255)'), - 'mssql' => array('INT:' => '[int]', 'BINT' => '[float]', 'UINT' => '[int]', 'UINT:' => '[int]', 'TINT:' => '[int]', 'USINT' => '[int]', 'BOOL' => '[int]', 'VCHAR' => '[varchar] (255)', 'VCHAR:' => '[varchar] (%d)', 'CHAR:' => '[char] (%d)', 'XSTEXT' => '[varchar] (1000)', 'STEXT' => '[varchar] (3000)', 'TEXT' => '[varchar] (8000)', 'MTEXT' => '[text]', 'TIMESTAMP' => '[int]', 'DECIMAL' => '[float]', 'VCHAR_BIN' => '[nvarchar] (252)', 'VCHAR_CI' => '[varchar] (252)','VARBINARY' => '[varbinary] (255)'), - 'oracle' => array('INT:' => 'number(%d)','BINT' => 'number(20)', 'UINT' => 'number(8)', 'UINT:' => 'number(%d)', 'TINT:' => 'number(%d)', 'USINT' => 'number(4)', 'BOOL' => 'number(1)', 'VCHAR' => 'varchar2(255)', 'VCHAR:' => 'varchar2(%d)', 'CHAR:' => 'char(%d)', 'XSTEXT' => 'varchar2(1000)', 'STEXT' => 'varchar2(3000)', 'TEXT' => 'clob', 'MTEXT' => 'clob', 'TIMESTAMP' => 'number(11)', 'DECIMAL' => 'number(5, 2)', 'VCHAR_BIN' => 'nvarchar2(252)', 'VCHAR_CI' => 'varchar2(252)', 'VARBINARY' => 'raw(255)'), - 'sqlite' => array('INT:' => 'int(%d)', 'BINT' => 'bigint(20)', 'UINT' => 'INTEGER UNSIGNED', 'UINT:' => 'INTEGER UNSIGNED', 'TINT:' => 'tinyint(%d)', 'USINT' => 'INTEGER UNSIGNED', 'BOOL' => 'INTEGER UNSIGNED', 'VCHAR' => 'varchar(255)', 'VCHAR:' => 'varchar(%d)', 'CHAR:' => 'char(%d)', 'XSTEXT' => 'text(65535)', 'STEXT' => 'text(65535)', 'TEXT' => 'text(65535)', 'MTEXT' => 'mediumtext(16777215)', 'TIMESTAMP' => 'INTEGER UNSIGNED', 'DECIMAL' => 'decimal(5,2)', 'VCHAR_BIN' => 'nvarchar(252)', 'VCHAR_CI' => 'varchar(252)', 'VARBINARY' => 'blob'), - 'postgres' => array('INT:' => 'INT4', 'BINT' => 'INT8', 'UINT' => 'INT4', 'UINT:' => 'INT4', 'TINT:' => 'INT2', 'USINT' => 'INT2', 'BOOL' => 'INT2', 'VCHAR' => 'varchar(255)', 'VCHAR:' => 'varchar(%d)', 'CHAR:' => 'char(%d)', 'XSTEXT' => 'varchar(1000)', 'STEXT' => 'varchar(3000)', 'TEXT' => 'varchar(8000)', 'MTEXT' => 'TEXT', 'TIMESTAMP' => 'INT4', 'DECIMAL' => 'decimal(5,2)', 'VCHAR_BIN' => 'varchar(252)', 'VCHAR_CI' => 'varchar_ci', 'VARBINARY' => 'bytea'), + 'mysql_41' => array( + 'INT:' => 'int(%d)', + 'BINT' => 'bigint(20)', + 'UINT' => 'mediumint(8) UNSIGNED', + 'UINT:' => 'int(%d) UNSIGNED', + 'TINT:' => 'tinyint(%d)', + 'USINT' => 'smallint(4) UNSIGNED', + 'BOOL' => 'tinyint(1) UNSIGNED', + 'VCHAR' => 'varchar(255)', + 'VCHAR:' => 'varchar(%d)', + 'CHAR:' => 'char(%d)', + 'XSTEXT' => 'text', + 'XSTEXT_UNI'=> 'text', + 'STEXT' => 'text', + 'STEXT_UNI' => 'text', + 'TEXT' => 'text', + 'TEXT_UNI' => 'text', + 'MTEXT' => 'mediumtext', + 'MTEXT_UNI' => 'mediumtext', + 'TIMESTAMP' => 'int(11) UNSIGNED', + 'DECIMAL' => 'decimal(5,2)', + 'VCHAR_UNI' => 'varchar(255)', + 'VCHAR_UNI:'=> 'varchar(%d)', + 'VCHAR_CI' => 'varchar(252)', + 'VARBINARY' => 'varbinary(255)', + ), + + 'mysql_40' => array( + 'INT:' => 'int(%d)', + 'BINT' => 'bigint(20)', + 'UINT' => 'mediumint(8) UNSIGNED', + 'UINT:' => 'int(%d) UNSIGNED', + 'TINT:' => 'tinyint(%d)', + 'USINT' => 'smallint(4) UNSIGNED', + 'BOOL' => 'tinyint(1) UNSIGNED', + 'VCHAR' => 'varchar(255)', + 'VCHAR:' => 'varchar(%d)', + 'CHAR:' => 'char(%d)', + 'XSTEXT' => 'text', + 'XSTEXT_UNI'=> 'text', + 'STEXT' => 'text', + 'STEXT_UNI' => 'text', + 'TEXT' => 'text', + 'TEXT_UNI' => 'text', + 'MTEXT' => 'mediumtext', + 'MTEXT_UNI' => 'mediumtext', + 'TIMESTAMP' => 'int(11) UNSIGNED', + 'DECIMAL' => 'decimal(5,2)', + 'VCHAR_UNI' => 'varchar(255)', + 'VCHAR_UNI:'=> array('varchar(%d)', 'limit' => array('mult', 3, 255, 'text')), + 'VCHAR_CI' => 'varchar(252)', + 'VARBINARY' => 'varbinary(255)', + ), + + 'firebird' => array( + 'INT:' => 'INTEGER', + 'BINT' => 'DOUBLE PRECISION', + 'UINT' => 'INTEGER', + 'UINT:' => 'INTEGER', + 'TINT:' => 'INTEGER', + 'USINT' => 'INTEGER', + 'BOOL' => 'INTEGER', + 'VCHAR' => 'VARCHAR(255)', + 'VCHAR:' => 'VARCHAR(%d)', + 'CHAR:' => 'CHAR(%d)', + 'XSTEXT' => 'BLOB SUB_TYPE TEXT', + 'STEXT' => 'BLOB SUB_TYPE TEXT', + 'TEXT' => 'BLOB SUB_TYPE TEXT', + 'MTEXT' => 'BLOB SUB_TYPE TEXT', + 'XSTEXT_UNI'=> 'BLOB SUB_TYPE TEXT', + 'STEXT_UNI' => 'BLOB SUB_TYPE TEXT', + 'TEXT_UNI' => 'BLOB SUB_TYPE TEXT', + 'MTEXT_UNI' => 'BLOB SUB_TYPE TEXT', + 'TIMESTAMP' => 'INTEGER', + 'DECIMAL' => 'DOUBLE PRECISION', + 'VCHAR_UNI' => 'VARCHAR(84) CHARACTER SET UNICODE_FSS', + 'VCHAR_UNI:'=> array('VARCHAR(%d) CHARACTER SET UNICODE_FSS', 'rule' => array('div', 3)), + 'VCHAR_CI' => 'VARCHAR(84) CHARACTER SET UNICODE_FSS', + 'VARBINARY' => 'CHAR(255)', + ), + + 'mssql' => array( + 'INT:' => '[int]', + 'BINT' => '[float]', + 'UINT' => '[int]', + 'UINT:' => '[int]', + 'TINT:' => '[int]', + 'USINT' => '[int]', + 'BOOL' => '[int]', + 'VCHAR' => '[varchar] (255)', + 'VCHAR:' => '[varchar] (%d)', + 'CHAR:' => '[char] (%d)', + 'XSTEXT' => '[varchar] (1000)', + 'STEXT' => '[varchar] (3000)', + 'TEXT' => '[varchar] (8000)', + 'MTEXT' => '[text]', + 'XSTEXT_UNI'=> '[nvarchar] (1000)', + 'STEXT_UNI' => '[nvarchar] (3000)', + 'TEXT_UNI' => '[nvarchar] (8000)', + 'MTEXT_UNI' => '[ntext]', + 'TIMESTAMP' => '[int]', + 'DECIMAL' => '[float]', + 'VCHAR_UNI' => '[nvarchar] (255)', + 'VCHAR_UNI:'=> '[nvarchar] (%d)', + 'VCHAR_CI' => '[nvarchar] (252)', + 'VARBINARY' => '[varbinary] (255)', + ), + + 'oracle' => array( + 'INT:' => 'number(%d)', + 'BINT' => 'number(20)', + 'UINT' => 'number(8)', + 'UINT:' => 'number(%d)', + 'TINT:' => 'number(%d)', + 'USINT' => 'number(4)', + 'BOOL' => 'number(1)', + 'VCHAR' => 'varchar2(255)', + 'VCHAR:' => 'varchar2(%d)', + 'CHAR:' => 'char(%d)', + 'XSTEXT' => 'varchar2(1000)', + 'STEXT' => 'varchar2(3000)', + 'TEXT' => 'clob', + 'MTEXT' => 'clob', + 'XSTEXT_UNI'=> 'varchar2(1000)', + 'STEXT_UNI' => 'varchar2(3000)', + 'TEXT_UNI' => 'clob', + 'MTEXT_UNI' => 'clob', + 'TIMESTAMP' => 'number(11)', + 'DECIMAL' => 'number(5, 2)', + 'VCHAR_UNI' => 'varchar2(255)', + 'VCHAR_UNI:'=> 'varchar2(%d)', + 'VCHAR_CI' => 'varchar2(252)', + 'VARBINARY' => 'raw(255)', + ), + + 'sqlite' => array( + 'INT:' => 'int(%d)', + 'BINT' => 'bigint(20)', + 'UINT' => 'INTEGER UNSIGNED', //'mediumint(8) UNSIGNED', + 'UINT:' => 'INTEGER UNSIGNED', // 'int(%d) UNSIGNED', + 'TINT:' => 'tinyint(%d)', + 'USINT' => 'INTEGER UNSIGNED', //'mediumint(4) UNSIGNED', + 'BOOL' => 'INTEGER UNSIGNED', //'tinyint(1) UNSIGNED', + 'VCHAR' => 'varchar(255)', + 'VCHAR:' => 'varchar(%d)', + 'CHAR:' => 'char(%d)', + 'XSTEXT' => 'text(65535)', + 'STEXT' => 'text(65535)', + 'TEXT' => 'text(65535)', + 'MTEXT' => 'mediumtext(16777215)', + 'XSTEXT_UNI'=> 'text(65535)', + 'STEXT_UNI' => 'text(65535)', + 'TEXT_UNI' => 'text(65535)', + 'MTEXT_UNI' => 'mediumtext(16777215)', + 'TIMESTAMP' => 'INTEGER UNSIGNED', //'int(11) UNSIGNED', + 'DECIMAL' => 'decimal(5,2)', + 'VCHAR_UNI' => 'varchar(255)', + 'VCHAR_UNI:'=> 'varchar(%d)', + 'VCHAR_CI' => 'varchar(252)', + 'VARBINARY' => 'blob', + ), + + 'postgres' => array( + 'INT:' => 'INT4', + 'BINT' => 'INT8', + 'UINT' => 'INT4', // unsigned + 'UINT:' => 'INT4', // unsigned + 'USINT' => 'INT2', // unsigned + 'BOOL' => 'INT2', // unsigned + 'TINT:' => 'INT2', + 'VCHAR' => 'varchar(255)', + 'VCHAR:' => 'varchar(%d)', + 'CHAR:' => 'char(%d)', + 'XSTEXT' => 'varchar(1000)', + 'STEXT' => 'varchar(3000)', + 'TEXT' => 'varchar(8000)', + 'MTEXT' => 'TEXT', + 'XSTEXT_UNI'=> 'varchar(1000)', + 'STEXT_UNI' => 'varchar(3000)', + 'TEXT_UNI' => 'varchar(8000)', + 'MTEXT_UNI' => 'TEXT', + 'TIMESTAMP' => 'INT4', // unsigned + 'DECIMAL' => 'decimal(5,2)', + 'VCHAR_UNI' => 'varchar(255)', + 'VCHAR_UNI:'=> 'varchar(%d)', + 'VCHAR_CI' => 'varchar_ci', + 'VARBINARY' => 'bytea', + ), ); // A list of types being unsigned for better reference in some db's @@ -127,9 +309,12 @@ $map_dbms = SQL_LAYER; switch (SQL_LAYER) { case 'mysql': + $map_dbms = 'mysql_40'; + break; + case 'mysql4': case 'mysqli': - $map_dbms = 'mysql'; + $map_dbms = 'mysql_41'; break; case 'mssql': @@ -441,12 +626,47 @@ function prepare_column_data($dbms, $column_data) { global $dbms_type_map, $unsigned_types; - // Get final column type... + // Get type if (strpos($column_data[0], ':') !== false) { list($orig_column_type, $column_length) = explode(':', $column_data[0]); - $column_type = sprintf($dbms_type_map[$dbms][$orig_column_type . ':'], $column_length); + if (!is_array($dbms_type_map[$dbms][$orig_column_type . ':'])) + { + $column_type = sprintf($dbms_type_map[$dbms][$orig_column_type . ':'], $column_length); + } + else + { + if (isset($dbms_type_map[$dbms][$orig_column_type . ':']['rule'])) + { + switch ($dbms_type_map[$dbms][$orig_column_type . ':']['rule'][0]) + { + case 'div': + $column_length /= $dbms_type_map[$dbms][$orig_column_type . ':']['rule'][1]; + $column_length = ceil($column_length); + $column_type = sprintf($dbms_type_map[$dbms][$orig_column_type . ':'][0], $column_length); + break; + } + } + + if (isset($dbms_type_map[$dbms][$orig_column_type . ':']['limit'])) + { + switch ($dbms_type_map[$dbms][$orig_column_type . ':']['limit'][0]) + { + case 'mult': + $column_length *= $dbms_type_map[$dbms][$orig_column_type . ':']['limit'][1]; + if ($column_length > $dbms_type_map[$dbms][$orig_column_type . ':']['limit'][2]) + { + $column_type = $dbms_type_map[$dbms][$orig_column_type . ':']['limit'][3]; + } + else + { + $column_type = sprintf($dbms_type_map[$dbms][$orig_column_type . ':'][0], $column_length); + } + break; + } + } + } $orig_column_type .= ':'; } else @@ -495,7 +715,8 @@ function prepare_column_data($dbms, $column_data) $sql .= 'NOT NULL'; break; - case 'mysql': + case 'mysql_40': + case 'mysql_41': $sql .= " {$column_type} "; // For hexadecimal values do not use single quotes @@ -560,7 +781,8 @@ function sql_column_add($dbms, $table_name, $column_name, $column_data) _sql($sql, $errored, $error_ary); break; - case 'mysql': + case 'mysql_40': + case 'mysql_41': $sql = 'ALTER TABLE `' . $table_name . '` ADD COLUMN `' . $column_name . '` ' . $column_data['column_type_sql']; _sql($sql, $errored, $error_ary); break; @@ -658,7 +880,8 @@ function sql_column_change($dbms, $table_name, $column_name, $column_data) _sql($sql, $errored, $error_ary); break; - case 'mysql': + case 'mysql_40': + case 'mysql_41': $sql = 'ALTER TABLE `' . $table_name . '` CHANGE `' . $column_name . '` `' . $column_name . '` ' . $column_data['column_type_sql']; _sql($sql, $errored, $error_ary); break; diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index 50f09f156b..269cea8254 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -262,8 +262,6 @@ $lang = array_merge($lang, array( 'USER_CONTROL_PANEL' => 'User Control Panel', 'WARNING' => 'Warning', - - 'DEBUG_EXTRA_WARNING' => 'The DEBUG_EXTRA constant is defined which is only meant for development purposes by the developers.<br />The board is running additional code to display sql reports, which slows down the board in a significant manner. Additionally sql errors are always displayed with a full backtrace to all users instead of displaying it solely to administrators, which is the default setting.<br /><br />With this said, please be aware that you are currently running your installation in <b>Debug Mode</b> and should you take this board live, please remove the constant from the config file.', )); // PHP info diff --git a/phpBB/language/en/acp/permissions_phpbb.php b/phpBB/language/en/acp/permissions_phpbb.php index b0bc770a74..8577210862 100644 --- a/phpBB/language/en/acp/permissions_phpbb.php +++ b/phpBB/language/en/acp/permissions_phpbb.php @@ -8,6 +8,7 @@ * @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License * +* @todo You are able to put your permission sets into a seperate file too by prefixing it with permissions_ and putting it into the acp language folder. */ /** @@ -34,20 +35,16 @@ if (empty($lang) || !is_array($lang)) Please add your permission settings this way: // Adding new category - $lang['permission_cats']['bugs'] = 'Bugs'; + $lang['permission_cat']['bugs'] = 'Bugs'; // Adding new permission set - $lang['permission_sets']['bug_'] = 'Bug Permissions'; + $lang['permission_type']['bug_'] = 'Bug Permissions'; // Adding the permissions $lang = array_merge($lang, array( 'acl_bug_view' => array('lang' => 'Can view bug reports', 'cat' => 'bugs'), 'acl_bug_post' => array('lang' => 'Can post bugs', 'cat' => 'post'), // Using a phpBB category here )); - - TODO: - You are able to put your permission sets into a seperate file too by - prefixing it with permissions_ and putting it into the acp language folder. */ // Define categories and permission types |