mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
Merge branch 'develop' of github.com:EXreaction/phpbb3 into ticket/11103
This commit is contained in:
commit
84ba10ec8c
41 changed files with 230 additions and 106 deletions
|
@ -39,7 +39,7 @@ function do_cron($cron_lock, $run_tasks)
|
||||||
|
|
||||||
foreach ($run_tasks as $task)
|
foreach ($run_tasks as $task)
|
||||||
{
|
{
|
||||||
if (defined('DEBUG_EXTRA') && $config['use_system_cron'])
|
if (defined('DEBUG') && $config['use_system_cron'])
|
||||||
{
|
{
|
||||||
echo "[phpBB cron] Running task '{$task->get_name()}'\n";
|
echo "[phpBB cron] Running task '{$task->get_name()}'\n";
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ function do_cron($cron_lock, $run_tasks)
|
||||||
//
|
//
|
||||||
// Attempt to alleviate the problem by doing setup outside of the lock as much as possible.
|
// Attempt to alleviate the problem by doing setup outside of the lock as much as possible.
|
||||||
//
|
//
|
||||||
// If DEBUG_EXTRA is defined and cron lock cannot be obtained, a message will be printed.
|
// If DEBUG is defined and cron lock cannot be obtained, a message will be printed.
|
||||||
|
|
||||||
if ($config['use_system_cron'])
|
if ($config['use_system_cron'])
|
||||||
{
|
{
|
||||||
|
@ -100,7 +100,7 @@ if ($cron_lock->acquire())
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
echo "Could not obtain cron lock.\n";
|
echo "Could not obtain cron lock.\n";
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,7 +150,7 @@ if ($config['gzip_compress'])
|
||||||
}
|
}
|
||||||
|
|
||||||
// IF debug extra is enabled and admin want to "explain" the page we need to set other headers...
|
// IF debug extra is enabled and admin want to "explain" the page we need to set other headers...
|
||||||
if (defined('DEBUG_EXTRA') && request_var('explain', 0) && $auth->acl_get('a_'))
|
if (defined('DEBUG') && request_var('explain', 0) && $auth->acl_get('a_'))
|
||||||
{
|
{
|
||||||
header('Content-type: text/html; charset=UTF-8');
|
header('Content-type: text/html; charset=UTF-8');
|
||||||
header('Cache-Control: private, no-cache="set-cookie"');
|
header('Cache-Control: private, no-cache="set-cookie"');
|
||||||
|
|
|
@ -26,6 +26,7 @@ class acp_groups
|
||||||
{
|
{
|
||||||
global $config, $db, $user, $auth, $template, $cache;
|
global $config, $db, $user, $auth, $template, $cache;
|
||||||
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix, $file_uploads;
|
global $phpbb_root_path, $phpbb_admin_path, $phpEx, $table_prefix, $file_uploads;
|
||||||
|
global $request;
|
||||||
|
|
||||||
$user->add_lang('acp/groups');
|
$user->add_lang('acp/groups');
|
||||||
$this->tpl_name = 'acp_groups';
|
$this->tpl_name = 'acp_groups';
|
||||||
|
@ -323,7 +324,8 @@ class acp_groups
|
||||||
$submit_ary['founder_manage'] = isset($_REQUEST['group_founder_manage']) ? 1 : 0;
|
$submit_ary['founder_manage'] = isset($_REQUEST['group_founder_manage']) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($_FILES['uploadfile']['tmp_name']) || $data['uploadurl'] || $data['remotelink'])
|
$uploadfile = $request->file('uploadfile');
|
||||||
|
if (!empty($uploadfile['tmp_name']) || $data['uploadurl'] || $data['remotelink'])
|
||||||
{
|
{
|
||||||
// Avatar stuff
|
// Avatar stuff
|
||||||
$var_ary = array(
|
$var_ary = array(
|
||||||
|
@ -337,7 +339,7 @@ class acp_groups
|
||||||
{
|
{
|
||||||
$data['user_id'] = "g$group_id";
|
$data['user_id'] = "g$group_id";
|
||||||
|
|
||||||
if ((!empty($_FILES['uploadfile']['tmp_name']) || $data['uploadurl']) && $can_upload)
|
if ((!empty($uploadfile['tmp_name']) || $data['uploadurl']) && $can_upload)
|
||||||
{
|
{
|
||||||
list($submit_ary['avatar_type'], $submit_ary['avatar'], $submit_ary['avatar_width'], $submit_ary['avatar_height']) = avatar_upload($data, $error);
|
list($submit_ary['avatar_type'], $submit_ary['avatar'], $submit_ary['avatar_width'], $submit_ary['avatar_height']) = avatar_upload($data, $error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -766,8 +766,8 @@ class dbal
|
||||||
|
|
||||||
// Show complete SQL error and path to administrators only
|
// Show complete SQL error and path to administrators only
|
||||||
// Additionally show complete error on installation or if extended debug mode is enabled
|
// Additionally show complete error on installation or if extended debug mode is enabled
|
||||||
// The DEBUG_EXTRA constant is for development only!
|
// The DEBUG constant is for development only!
|
||||||
if ((isset($auth) && $auth->acl_get('a_')) || defined('IN_INSTALL') || defined('DEBUG_EXTRA'))
|
if ((isset($auth) && $auth->acl_get('a_')) || defined('IN_INSTALL') || defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$message .= ($sql) ? '<br /><br />SQL<br /><br />' . htmlspecialchars($sql) : '';
|
$message .= ($sql) ? '<br /><br />SQL<br /><br />' . htmlspecialchars($sql) : '';
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,7 +150,7 @@ class dbal_firebird extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -251,7 +251,7 @@ class dbal_firebird extends dbal
|
||||||
$this->sql_error($query);
|
$this->sql_error($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -279,7 +279,7 @@ class dbal_firebird extends dbal
|
||||||
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,7 +139,7 @@ class dbal_mssql extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ class dbal_mssql extends dbal
|
||||||
$this->sql_error($query);
|
$this->sql_error($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -169,7 +169,7 @@ class dbal_mssql extends dbal
|
||||||
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,7 +157,7 @@ class dbal_mssql_odbc extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -173,7 +173,7 @@ class dbal_mssql_odbc extends dbal
|
||||||
$this->sql_error($query);
|
$this->sql_error($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ class dbal_mssql_odbc extends dbal
|
||||||
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,7 +311,7 @@ class dbal_mssqlnative extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -329,7 +329,7 @@ class dbal_mssqlnative extends dbal
|
||||||
// reset options for next query
|
// reset options for next query
|
||||||
$this->query_options = array();
|
$this->query_options = array();
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -344,7 +344,7 @@ class dbal_mssqlnative extends dbal
|
||||||
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,7 +167,7 @@ class dbal_mysql extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ class dbal_mysql extends dbal
|
||||||
$this->sql_error($query);
|
$this->sql_error($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -197,7 +197,7 @@ class dbal_mysql extends dbal
|
||||||
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,7 +174,7 @@ class dbal_mysqli extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -189,7 +189,7 @@ class dbal_mysqli extends dbal
|
||||||
$this->sql_error($query);
|
$this->sql_error($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -199,7 +199,7 @@ class dbal_mysqli extends dbal
|
||||||
$this->query_result = $cache->sql_save($query, $this->query_result, $cache_ttl);
|
$this->query_result = $cache->sql_save($query, $this->query_result, $cache_ttl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,7 +236,7 @@ class dbal_oracle extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -413,7 +413,7 @@ class dbal_oracle extends dbal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -428,7 +428,7 @@ class dbal_oracle extends dbal
|
||||||
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -194,7 +194,7 @@ class dbal_postgres extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ class dbal_postgres extends dbal
|
||||||
$this->sql_error($query);
|
$this->sql_error($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -225,7 +225,7 @@ class dbal_postgres extends dbal
|
||||||
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ class dbal_sqlite extends dbal
|
||||||
global $cache;
|
global $cache;
|
||||||
|
|
||||||
// EXPLAIN only in extra debug mode
|
// EXPLAIN only in extra debug mode
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('start', $query);
|
$this->sql_report('start', $query);
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ class dbal_sqlite extends dbal
|
||||||
$this->sql_error($query);
|
$this->sql_error($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('stop', $query);
|
$this->sql_report('stop', $query);
|
||||||
}
|
}
|
||||||
|
@ -142,7 +142,7 @@ class dbal_sqlite extends dbal
|
||||||
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
$this->open_queries[(int) $this->query_result] = $this->query_result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (defined('DEBUG_EXTRA'))
|
else if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
$this->sql_report('fromcache', $query);
|
$this->sql_report('fromcache', $query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4239,12 +4239,12 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
|
||||||
$log_text .= '<br /><br />BACKTRACE<br />' . $backtrace;
|
$log_text .= '<br /><br />BACKTRACE<br />' . $backtrace;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defined('IN_INSTALL') || defined('DEBUG_EXTRA') || isset($auth) && $auth->acl_get('a_'))
|
if (defined('IN_INSTALL') || defined('DEBUG') || isset($auth) && $auth->acl_get('a_'))
|
||||||
{
|
{
|
||||||
$msg_text = $log_text;
|
$msg_text = $log_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((defined('DEBUG') || defined('IN_CRON') || defined('IMAGE_OUTPUT')) && isset($db))
|
if ((defined('IN_CRON') || defined('IMAGE_OUTPUT')) && isset($db))
|
||||||
{
|
{
|
||||||
// let's avoid loops
|
// let's avoid loops
|
||||||
$db->sql_return_on_error(true);
|
$db->sql_return_on_error(true);
|
||||||
|
@ -5308,14 +5308,14 @@ function page_footer($run_cron = true)
|
||||||
$mtime = explode(' ', microtime());
|
$mtime = explode(' ', microtime());
|
||||||
$totaltime = $mtime[0] + $mtime[1] - $starttime;
|
$totaltime = $mtime[0] + $mtime[1] - $starttime;
|
||||||
|
|
||||||
if ($request->variable('explain', false) && $auth->acl_get('a_') && defined('DEBUG_EXTRA') && method_exists($db, 'sql_report'))
|
if ($request->variable('explain', false) && $auth->acl_get('a_') && defined('DEBUG') && method_exists($db, 'sql_report'))
|
||||||
{
|
{
|
||||||
$db->sql_report('display');
|
$db->sql_report('display');
|
||||||
}
|
}
|
||||||
|
|
||||||
$debug_output = sprintf('Time : %.3fs | ' . $db->sql_num_queries() . ' Queries | GZIP : ' . (($config['gzip_compress'] && @extension_loaded('zlib')) ? 'On' : 'Off') . (($user->load) ? ' | Load : ' . $user->load : ''), $totaltime);
|
$debug_output = sprintf('Time : %.3fs | ' . $db->sql_num_queries() . ' Queries | GZIP : ' . (($config['gzip_compress'] && @extension_loaded('zlib')) ? 'On' : 'Off') . (($user->load) ? ' | Load : ' . $user->load : ''), $totaltime);
|
||||||
|
|
||||||
if ($auth->acl_get('a_') && defined('DEBUG_EXTRA'))
|
if ($auth->acl_get('a_') && defined('DEBUG'))
|
||||||
{
|
{
|
||||||
if (function_exists('memory_get_peak_usage'))
|
if (function_exists('memory_get_peak_usage'))
|
||||||
{
|
{
|
||||||
|
|
|
@ -145,14 +145,14 @@ function adm_page_footer($copyright_html = true)
|
||||||
$mtime = explode(' ', microtime());
|
$mtime = explode(' ', microtime());
|
||||||
$totaltime = $mtime[0] + $mtime[1] - $starttime;
|
$totaltime = $mtime[0] + $mtime[1] - $starttime;
|
||||||
|
|
||||||
if ($request->variable('explain', false) && $auth->acl_get('a_') && defined('DEBUG_EXTRA') && method_exists($db, 'sql_report'))
|
if ($request->variable('explain', false) && $auth->acl_get('a_') && defined('DEBUG') && method_exists($db, 'sql_report'))
|
||||||
{
|
{
|
||||||
$db->sql_report('display');
|
$db->sql_report('display');
|
||||||
}
|
}
|
||||||
|
|
||||||
$debug_output = sprintf('Time : %.3fs | ' . $db->sql_num_queries() . ' Queries | GZIP : ' . (($config['gzip_compress']) ? 'On' : 'Off') . (($user->load) ? ' | Load : ' . $user->load : ''), $totaltime);
|
$debug_output = sprintf('Time : %.3fs | ' . $db->sql_num_queries() . ' Queries | GZIP : ' . (($config['gzip_compress']) ? 'On' : 'Off') . (($user->load) ? ' | Load : ' . $user->load : ''), $totaltime);
|
||||||
|
|
||||||
if ($auth->acl_get('a_') && defined('DEBUG_EXTRA'))
|
if ($auth->acl_get('a_') && defined('DEBUG'))
|
||||||
{
|
{
|
||||||
if (function_exists('memory_get_peak_usage'))
|
if (function_exists('memory_get_peak_usage'))
|
||||||
{
|
{
|
||||||
|
|
|
@ -528,12 +528,10 @@ function phpbb_create_config_file_data($data, $dbms, $debug = false, $debug_test
|
||||||
if ($debug)
|
if ($debug)
|
||||||
{
|
{
|
||||||
$config_data .= "@define('DEBUG', true);\n";
|
$config_data .= "@define('DEBUG', true);\n";
|
||||||
$config_data .= "@define('DEBUG_EXTRA', true);\n";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$config_data .= "// @define('DEBUG', true);\n";
|
$config_data .= "// @define('DEBUG', true);\n";
|
||||||
$config_data .= "// @define('DEBUG_EXTRA', true);\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($debug_test)
|
if ($debug_test)
|
||||||
|
|
|
@ -566,10 +566,11 @@ class fileupload
|
||||||
*/
|
*/
|
||||||
function form_upload($form_name)
|
function form_upload($form_name)
|
||||||
{
|
{
|
||||||
global $user;
|
global $user, $request;
|
||||||
|
|
||||||
unset($_FILES[$form_name]['local_mode']);
|
$upload = $request->file($form_name);
|
||||||
$file = new filespec($_FILES[$form_name], $this);
|
unset($upload['local_mode']);
|
||||||
|
$file = new filespec($upload, $this);
|
||||||
|
|
||||||
if ($file->init_error)
|
if ($file->init_error)
|
||||||
{
|
{
|
||||||
|
@ -578,9 +579,9 @@ class fileupload
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error array filled?
|
// Error array filled?
|
||||||
if (isset($_FILES[$form_name]['error']))
|
if (isset($upload['error']))
|
||||||
{
|
{
|
||||||
$error = $this->assign_internal_error($_FILES[$form_name]['error']);
|
$error = $this->assign_internal_error($upload['error']);
|
||||||
|
|
||||||
if ($error !== false)
|
if ($error !== false)
|
||||||
{
|
{
|
||||||
|
@ -590,7 +591,7 @@ class fileupload
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if empty file got uploaded (not catched by is_uploaded_file)
|
// Check if empty file got uploaded (not catched by is_uploaded_file)
|
||||||
if (isset($_FILES[$form_name]['size']) && $_FILES[$form_name]['size'] == 0)
|
if (isset($upload['size']) && $upload['size'] == 0)
|
||||||
{
|
{
|
||||||
$file->error[] = $user->lang[$this->error_prefix . 'EMPTY_FILEUPLOAD'];
|
$file->error[] = $user->lang[$this->error_prefix . 'EMPTY_FILEUPLOAD'];
|
||||||
return $file;
|
return $file;
|
||||||
|
@ -631,17 +632,17 @@ class fileupload
|
||||||
*/
|
*/
|
||||||
function local_upload($source_file, $filedata = false)
|
function local_upload($source_file, $filedata = false)
|
||||||
{
|
{
|
||||||
global $user;
|
global $user, $request;
|
||||||
|
|
||||||
$form_name = 'local';
|
$upload = array();
|
||||||
|
|
||||||
$_FILES[$form_name]['local_mode'] = true;
|
$upload['local_mode'] = true;
|
||||||
$_FILES[$form_name]['tmp_name'] = $source_file;
|
$upload['tmp_name'] = $source_file;
|
||||||
|
|
||||||
if ($filedata === false)
|
if ($filedata === false)
|
||||||
{
|
{
|
||||||
$_FILES[$form_name]['name'] = utf8_basename($source_file);
|
$upload['name'] = utf8_basename($source_file);
|
||||||
$_FILES[$form_name]['size'] = 0;
|
$upload['size'] = 0;
|
||||||
$mimetype = '';
|
$mimetype = '';
|
||||||
|
|
||||||
if (function_exists('mime_content_type'))
|
if (function_exists('mime_content_type'))
|
||||||
|
@ -655,16 +656,16 @@ class fileupload
|
||||||
$mimetype = 'application/octetstream';
|
$mimetype = 'application/octetstream';
|
||||||
}
|
}
|
||||||
|
|
||||||
$_FILES[$form_name]['type'] = $mimetype;
|
$upload['type'] = $mimetype;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$_FILES[$form_name]['name'] = $filedata['realname'];
|
$upload['name'] = $filedata['realname'];
|
||||||
$_FILES[$form_name]['size'] = $filedata['size'];
|
$upload['size'] = $filedata['size'];
|
||||||
$_FILES[$form_name]['type'] = $filedata['type'];
|
$upload['type'] = $filedata['type'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$file = new filespec($_FILES[$form_name], $this);
|
$file = new filespec($upload, $this);
|
||||||
|
|
||||||
if ($file->init_error)
|
if ($file->init_error)
|
||||||
{
|
{
|
||||||
|
@ -672,9 +673,9 @@ class fileupload
|
||||||
return $file;
|
return $file;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_FILES[$form_name]['error']))
|
if (isset($upload['error']))
|
||||||
{
|
{
|
||||||
$error = $this->assign_internal_error($_FILES[$form_name]['error']);
|
$error = $this->assign_internal_error($upload['error']);
|
||||||
|
|
||||||
if ($error !== false)
|
if ($error !== false)
|
||||||
{
|
{
|
||||||
|
@ -709,6 +710,7 @@ class fileupload
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->common_checks($file);
|
$this->common_checks($file);
|
||||||
|
$request->overwrite('local', $upload, phpbb_request_interface::FILES);
|
||||||
|
|
||||||
return $file;
|
return $file;
|
||||||
}
|
}
|
||||||
|
@ -1001,7 +1003,10 @@ class fileupload
|
||||||
*/
|
*/
|
||||||
function is_valid($form_name)
|
function is_valid($form_name)
|
||||||
{
|
{
|
||||||
return (isset($_FILES[$form_name]) && $_FILES[$form_name]['name'] != 'none') ? true : false;
|
global $request;
|
||||||
|
$upload = $request->file($form_name);
|
||||||
|
|
||||||
|
return (!empty($upload) && $upload['name'] !== 'none');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2140,13 +2140,14 @@ function avatar_remote($data, &$error)
|
||||||
*/
|
*/
|
||||||
function avatar_upload($data, &$error)
|
function avatar_upload($data, &$error)
|
||||||
{
|
{
|
||||||
global $phpbb_root_path, $config, $db, $user, $phpEx;
|
global $phpbb_root_path, $config, $db, $user, $phpEx, $request;
|
||||||
|
|
||||||
// Init upload class
|
// Init upload class
|
||||||
include_once($phpbb_root_path . 'includes/functions_upload.' . $phpEx);
|
include_once($phpbb_root_path . 'includes/functions_upload.' . $phpEx);
|
||||||
$upload = new fileupload('AVATAR_', array('jpg', 'jpeg', 'gif', 'png'), $config['avatar_filesize'], $config['avatar_min_width'], $config['avatar_min_height'], $config['avatar_max_width'], $config['avatar_max_height'], (isset($config['mime_triggers']) ? explode('|', $config['mime_triggers']) : false));
|
$upload = new fileupload('AVATAR_', array('jpg', 'jpeg', 'gif', 'png'), $config['avatar_filesize'], $config['avatar_min_width'], $config['avatar_min_height'], $config['avatar_max_width'], $config['avatar_max_height'], (isset($config['mime_triggers']) ? explode('|', $config['mime_triggers']) : false));
|
||||||
|
|
||||||
if (!empty($_FILES['uploadfile']['name']))
|
$uploadfile = $request->file('uploadfile');
|
||||||
|
if (!empty($uploadfile['name']))
|
||||||
{
|
{
|
||||||
$file = $upload->form_upload('uploadfile');
|
$file = $upload->form_upload('uploadfile');
|
||||||
}
|
}
|
||||||
|
@ -2369,7 +2370,7 @@ function avatar_get_dimensions($avatar, $avatar_type, &$error, $current_x = 0, $
|
||||||
*/
|
*/
|
||||||
function avatar_process_user(&$error, $custom_userdata = false, $can_upload = null)
|
function avatar_process_user(&$error, $custom_userdata = false, $can_upload = null)
|
||||||
{
|
{
|
||||||
global $config, $phpbb_root_path, $auth, $user, $db;
|
global $config, $phpbb_root_path, $auth, $user, $db, $request;
|
||||||
|
|
||||||
$data = array(
|
$data = array(
|
||||||
'uploadurl' => request_var('uploadurl', ''),
|
'uploadurl' => request_var('uploadurl', ''),
|
||||||
|
@ -2411,7 +2412,8 @@ function avatar_process_user(&$error, $custom_userdata = false, $can_upload = nu
|
||||||
$can_upload = ($config['allow_avatar_upload'] && file_exists($phpbb_root_path . $config['avatar_path']) && phpbb_is_writable($phpbb_root_path . $config['avatar_path']) && $change_avatar && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on')) ? true : false;
|
$can_upload = ($config['allow_avatar_upload'] && file_exists($phpbb_root_path . $config['avatar_path']) && phpbb_is_writable($phpbb_root_path . $config['avatar_path']) && $change_avatar && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on')) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!empty($_FILES['uploadfile']['name']) || $data['uploadurl']) && $can_upload)
|
$uploadfile = $request->file('uploadfile');
|
||||||
|
if ((!empty($uploadfile['name']) || $data['uploadurl']) && $can_upload)
|
||||||
{
|
{
|
||||||
list($sql_ary['user_avatar_type'], $sql_ary['user_avatar'], $sql_ary['user_avatar_width'], $sql_ary['user_avatar_height']) = avatar_upload($data, $error);
|
list($sql_ary['user_avatar_type'], $sql_ary['user_avatar'], $sql_ary['user_avatar_width'], $sql_ary['user_avatar_height']) = avatar_upload($data, $error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1363,13 +1363,14 @@ class parse_message extends bbcode_firstpass
|
||||||
*/
|
*/
|
||||||
function parse_attachments($form_name, $mode, $forum_id, $submit, $preview, $refresh, $is_message = false)
|
function parse_attachments($form_name, $mode, $forum_id, $submit, $preview, $refresh, $is_message = false)
|
||||||
{
|
{
|
||||||
global $config, $auth, $user, $phpbb_root_path, $phpEx, $db;
|
global $config, $auth, $user, $phpbb_root_path, $phpEx, $db, $request;
|
||||||
|
|
||||||
$error = array();
|
$error = array();
|
||||||
|
|
||||||
$num_attachments = sizeof($this->attachment_data);
|
$num_attachments = sizeof($this->attachment_data);
|
||||||
$this->filename_data['filecomment'] = utf8_normalize_nfc(request_var('filecomment', '', true));
|
$this->filename_data['filecomment'] = utf8_normalize_nfc(request_var('filecomment', '', true));
|
||||||
$upload_file = (isset($_FILES[$form_name]) && $_FILES[$form_name]['name'] != 'none' && trim($_FILES[$form_name]['name'])) ? true : false;
|
$upload = $request->file($form_name);
|
||||||
|
$upload_file = (!empty($upload) && $upload['name'] !== 'none' && trim($upload['name']));
|
||||||
|
|
||||||
$add_file = (isset($_POST['add_file'])) ? true : false;
|
$add_file = (isset($_POST['add_file'])) ? true : false;
|
||||||
$delete_file = (isset($_POST['delete_file'])) ? true : false;
|
$delete_file = (isset($_POST['delete_file'])) ? true : false;
|
||||||
|
|
|
@ -30,6 +30,7 @@ interface phpbb_request_interface
|
||||||
const REQUEST = 2;
|
const REQUEST = 2;
|
||||||
const COOKIE = 3;
|
const COOKIE = 3;
|
||||||
const SERVER = 4;
|
const SERVER = 4;
|
||||||
|
const FILES = 5;
|
||||||
/**#@-*/
|
/**#@-*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -34,6 +34,7 @@ class phpbb_request implements phpbb_request_interface
|
||||||
phpbb_request_interface::REQUEST => '_REQUEST',
|
phpbb_request_interface::REQUEST => '_REQUEST',
|
||||||
phpbb_request_interface::COOKIE => '_COOKIE',
|
phpbb_request_interface::COOKIE => '_COOKIE',
|
||||||
phpbb_request_interface::SERVER => '_SERVER',
|
phpbb_request_interface::SERVER => '_SERVER',
|
||||||
|
phpbb_request_interface::FILES => '_FILES',
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -268,6 +269,19 @@ class phpbb_request implements phpbb_request_interface
|
||||||
return $this->server($var_name, $default);
|
return $this->server($var_name, $default);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shortcut method to retrieve $_FILES variables
|
||||||
|
*
|
||||||
|
* @param string $form_name The name of the file input form element
|
||||||
|
*
|
||||||
|
* @return array The uploaded file's information or an empty array if the
|
||||||
|
* variable does not exist in _FILES.
|
||||||
|
*/
|
||||||
|
public function file($form_name)
|
||||||
|
{
|
||||||
|
return $this->variable($form_name, array('name' => 'none'), false, phpbb_request_interface::FILES);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether a certain variable was sent via POST.
|
* Checks whether a certain variable was sent via POST.
|
||||||
* To make sure that a request was sent using POST you should call this function
|
* To make sure that a request was sent using POST you should call this function
|
||||||
|
|
|
@ -474,7 +474,7 @@ class phpbb_session
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Added logging temporarly to help debug bugs...
|
// Added logging temporarly to help debug bugs...
|
||||||
if (defined('DEBUG_EXTRA') && $this->data['user_id'] != ANONYMOUS)
|
if (defined('DEBUG') && $this->data['user_id'] != ANONYMOUS)
|
||||||
{
|
{
|
||||||
if ($referer_valid)
|
if ($referer_valid)
|
||||||
{
|
{
|
||||||
|
|
|
@ -361,6 +361,43 @@ class phpbb_template_filter extends php_user_filter
|
||||||
return $text_blocks;
|
return $text_blocks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse paths of the form {FOO}/a/{BAR}/b
|
||||||
|
*
|
||||||
|
* Note: this method assumes at least one variable in the path, this should
|
||||||
|
* be checked before this method is called.
|
||||||
|
*
|
||||||
|
* @param string $path The path to parse
|
||||||
|
* @param string $include_type The type of template function to call
|
||||||
|
* @return string An appropriately formatted string to include in the
|
||||||
|
* template or an empty string if an expression like S_FIRST_ROW was
|
||||||
|
* incorrectly used
|
||||||
|
*/
|
||||||
|
private function parse_dynamic_path($path, $include_type)
|
||||||
|
{
|
||||||
|
$matches = array();
|
||||||
|
$replace = array();
|
||||||
|
$is_expr = true;
|
||||||
|
|
||||||
|
preg_match_all('#\{((?:' . self::REGEX_NS . '\.)*)(\$)?(' . self::REGEX_VAR . ')\}#', $path, $matches);
|
||||||
|
foreach ($matches[0] as $var_str)
|
||||||
|
{
|
||||||
|
$tmp_is_expr = false;
|
||||||
|
$var = $this->get_varref($var_str, $tmp_is_expr);
|
||||||
|
$is_expr = $is_expr && $tmp_is_expr;
|
||||||
|
$replace[] = "' . $var . '";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$is_expr)
|
||||||
|
{
|
||||||
|
return " \$_template->$include_type('" . str_replace($matches[0], $replace, $path) . "', true);";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compile variables
|
* Compile variables
|
||||||
*
|
*
|
||||||
|
@ -774,15 +811,9 @@ class phpbb_template_filter extends php_user_filter
|
||||||
private function compile_tag_include($tag_args)
|
private function compile_tag_include($tag_args)
|
||||||
{
|
{
|
||||||
// Process dynamic includes
|
// Process dynamic includes
|
||||||
if ($tag_args[0] == '{')
|
if (strpos($tag_args, '{') !== false)
|
||||||
{
|
{
|
||||||
$var = $this->get_varref($tag_args, $is_expr);
|
return $this->parse_dynamic_path($tag_args, '_tpl_include');
|
||||||
|
|
||||||
// Make sure someone didn't try to include S_FIRST_ROW or similar
|
|
||||||
if (!$is_expr)
|
|
||||||
{
|
|
||||||
return "if (isset($var)) { \$_template->_tpl_include($var); }";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return "\$_template->_tpl_include('$tag_args');";
|
return "\$_template->_tpl_include('$tag_args');";
|
||||||
|
@ -796,6 +827,11 @@ class phpbb_template_filter extends php_user_filter
|
||||||
*/
|
*/
|
||||||
private function compile_tag_include_php($tag_args)
|
private function compile_tag_include_php($tag_args)
|
||||||
{
|
{
|
||||||
|
if (strpos($tag_args, '{') !== false)
|
||||||
|
{
|
||||||
|
return $this->parse_dynamic_path($tag_args, '_php_include');
|
||||||
|
}
|
||||||
|
|
||||||
return "\$_template->_php_include('$tag_args');";
|
return "\$_template->_php_include('$tag_args');";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -883,14 +919,9 @@ class phpbb_template_filter extends php_user_filter
|
||||||
private function compile_tag_include_js($tag_args)
|
private function compile_tag_include_js($tag_args)
|
||||||
{
|
{
|
||||||
// Process dynamic includes
|
// Process dynamic includes
|
||||||
if ($tag_args[0] == '{')
|
if (strpos($tag_args, '{') !== false)
|
||||||
{
|
{
|
||||||
$var = $this->get_varref($tag_args, $is_expr);
|
return $this->parse_dynamic_path($tag_args, '_js_include');
|
||||||
if (!$is_expr)
|
|
||||||
{
|
|
||||||
return " \$_template->_js_include($var, true);";
|
|
||||||
}
|
|
||||||
return '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Locate file
|
// Locate file
|
||||||
|
|
|
@ -250,7 +250,7 @@ class phpbb_template
|
||||||
* If template cache is writable the compiled php code will be stored
|
* If template cache is writable the compiled php code will be stored
|
||||||
* on filesystem and template will not be subsequently recompiled.
|
* on filesystem and template will not be subsequently recompiled.
|
||||||
* If template cache is not writable template source will be recompiled
|
* If template cache is not writable template source will be recompiled
|
||||||
* every time it is needed. DEBUG_EXTRA define and load_tplcompile
|
* every time it is needed. DEBUG define and load_tplcompile
|
||||||
* configuration setting may be used to force templates to be always
|
* configuration setting may be used to force templates to be always
|
||||||
* recompiled.
|
* recompiled.
|
||||||
*
|
*
|
||||||
|
@ -268,7 +268,7 @@ class phpbb_template
|
||||||
{
|
{
|
||||||
$output_file = $this->_compiled_file_for_handle($handle);
|
$output_file = $this->_compiled_file_for_handle($handle);
|
||||||
|
|
||||||
$recompile = defined('DEBUG_EXTRA') ||
|
$recompile = defined('DEBUG') ||
|
||||||
!file_exists($output_file) ||
|
!file_exists($output_file) ||
|
||||||
@filesize($output_file) === 0;
|
@filesize($output_file) === 0;
|
||||||
|
|
||||||
|
@ -538,7 +538,11 @@ class phpbb_template
|
||||||
// Locate file
|
// Locate file
|
||||||
if ($locate)
|
if ($locate)
|
||||||
{
|
{
|
||||||
$file = $this->locator->get_first_file_location(array($file), true, true);
|
$located = $this->locator->get_first_file_location(array($file), false, true);
|
||||||
|
if ($located)
|
||||||
|
{
|
||||||
|
$file = $located;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ($relative)
|
else if ($relative)
|
||||||
{
|
{
|
||||||
|
|
|
@ -513,7 +513,8 @@ class ucp_groups
|
||||||
$data['height'] = request_var('height', '');
|
$data['height'] = request_var('height', '');
|
||||||
$delete = request_var('delete', '');
|
$delete = request_var('delete', '');
|
||||||
|
|
||||||
if (!empty($_FILES['uploadfile']['tmp_name']) || $data['uploadurl'] || $data['remotelink'])
|
$uploadfile = $request->file('uploadfile');
|
||||||
|
if (!empty($uploadfile['tmp_name']) || $data['uploadurl'] || $data['remotelink'])
|
||||||
{
|
{
|
||||||
// Avatar stuff
|
// Avatar stuff
|
||||||
$var_ary = array(
|
$var_ary = array(
|
||||||
|
@ -527,7 +528,7 @@ class ucp_groups
|
||||||
{
|
{
|
||||||
$data['user_id'] = "g$group_id";
|
$data['user_id'] = "g$group_id";
|
||||||
|
|
||||||
if ((!empty($_FILES['uploadfile']['tmp_name']) || $data['uploadurl']) && $can_upload)
|
if ((!empty($uploadfile['tmp_name']) || $data['uploadurl']) && $can_upload)
|
||||||
{
|
{
|
||||||
list($submit_ary['avatar_type'], $submit_ary['avatar'], $submit_ary['avatar_width'], $submit_ary['avatar_height']) = avatar_upload($data, $error);
|
list($submit_ary['avatar_type'], $submit_ary['avatar'], $submit_ary['avatar_width'], $submit_ary['avatar_height']) = avatar_upload($data, $error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,8 +162,8 @@ class phpbb_user extends phpbb_session
|
||||||
// We include common language file here to not load it every time a custom language file is included
|
// We include common language file here to not load it every time a custom language file is included
|
||||||
$lang = &$this->lang;
|
$lang = &$this->lang;
|
||||||
|
|
||||||
// Do not suppress error if in DEBUG_EXTRA mode
|
// Do not suppress error if in DEBUG mode
|
||||||
$include_result = (defined('DEBUG_EXTRA')) ? (include $this->lang_path . $this->lang_name . "/common.$phpEx") : (@include $this->lang_path . $this->lang_name . "/common.$phpEx");
|
$include_result = (defined('DEBUG')) ? (include $this->lang_path . $this->lang_name . "/common.$phpEx") : (@include $this->lang_path . $this->lang_name . "/common.$phpEx");
|
||||||
|
|
||||||
if ($include_result === false)
|
if ($include_result === false)
|
||||||
{
|
{
|
||||||
|
@ -252,7 +252,7 @@ class phpbb_user extends phpbb_session
|
||||||
|
|
||||||
// Disable board if the install/ directory is still present
|
// Disable board if the install/ directory is still present
|
||||||
// For the brave development army we do not care about this, else we need to comment out this everytime we develop locally
|
// For the brave development army we do not care about this, else we need to comment out this everytime we develop locally
|
||||||
if (!defined('DEBUG_EXTRA') && !defined('ADMIN_START') && !defined('IN_INSTALL') && !defined('IN_LOGIN') && file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install'))
|
if (!defined('DEBUG') && !defined('ADMIN_START') && !defined('IN_INSTALL') && !defined('IN_LOGIN') && file_exists($phpbb_root_path . 'install') && !is_file($phpbb_root_path . 'install'))
|
||||||
{
|
{
|
||||||
// Adjust the message slightly according to the permissions
|
// Adjust the message slightly according to the permissions
|
||||||
if ($auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))
|
if ($auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))
|
||||||
|
@ -618,8 +618,8 @@ class phpbb_user extends phpbb_session
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do not suppress error if in DEBUG_EXTRA mode
|
// Do not suppress error if in DEBUG mode
|
||||||
$include_result = (defined('DEBUG_EXTRA')) ? (include $language_filename) : (@include $language_filename);
|
$include_result = (defined('DEBUG')) ? (include $language_filename) : (@include $language_filename);
|
||||||
|
|
||||||
if ($include_result === false)
|
if ($include_result === false)
|
||||||
{
|
{
|
||||||
|
|
|
@ -620,7 +620,7 @@ function _sql($sql, &$errored, &$error_ary, $echo_dot = true)
|
||||||
{
|
{
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
if (defined('DEBUG_EXTRA'))
|
if (defined('DEBUG'))
|
||||||
{
|
{
|
||||||
echo "<br />\n{$sql}\n<br />";
|
echo "<br />\n{$sql}\n<br />";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1196,7 +1196,7 @@ class install_convert extends module
|
||||||
|
|
||||||
$template->assign_block_vars('checks', array(
|
$template->assign_block_vars('checks', array(
|
||||||
'TITLE' => "skip_rows = $skip_rows",
|
'TITLE' => "skip_rows = $skip_rows",
|
||||||
'RESULT' => $rows . ((defined('DEBUG_EXTRA') && function_exists('memory_get_usage')) ? ceil(memory_get_usage()/1024) . ' ' . $user->lang['KIB'] : ''),
|
'RESULT' => $rows . ((defined('DEBUG') && function_exists('memory_get_usage')) ? ceil(memory_get_usage()/1024) . ' ' . $user->lang['KIB'] : ''),
|
||||||
));
|
));
|
||||||
|
|
||||||
$mtime = explode(' ', microtime());
|
$mtime = explode(' ', microtime());
|
||||||
|
@ -1380,7 +1380,7 @@ class install_convert extends module
|
||||||
}
|
}
|
||||||
|
|
||||||
// When we reach this point, either the current table has been processed or we're running out of time.
|
// When we reach this point, either the current table has been processed or we're running out of time.
|
||||||
if (still_on_time() && $counting < $convert->batch_size/* && !defined('DEBUG_EXTRA')*/)
|
if (still_on_time() && $counting < $convert->batch_size/* && !defined('DEBUG')*/)
|
||||||
{
|
{
|
||||||
$skip_rows = 0;
|
$skip_rows = 0;
|
||||||
$current_table++;
|
$current_table++;
|
||||||
|
@ -1469,7 +1469,7 @@ class install_convert extends module
|
||||||
sync('topic', 'range', 'topic_id BETWEEN ' . $sync_batch . ' AND ' . $end, true, true);
|
sync('topic', 'range', 'topic_id BETWEEN ' . $sync_batch . ' AND ' . $end, true, true);
|
||||||
|
|
||||||
$template->assign_block_vars('checks', array(
|
$template->assign_block_vars('checks', array(
|
||||||
'TITLE' => sprintf($user->lang['SYNC_TOPIC_ID'], $sync_batch, ($sync_batch + $batch_size)) . ((defined('DEBUG_EXTRA') && function_exists('memory_get_usage')) ? ' [' . ceil(memory_get_usage()/1024) . ' ' . $user->lang['KIB'] . ']' : ''),
|
'TITLE' => sprintf($user->lang['SYNC_TOPIC_ID'], $sync_batch, ($sync_batch + $batch_size)) . ((defined('DEBUG') && function_exists('memory_get_usage')) ? ' [' . ceil(memory_get_usage()/1024) . ' ' . $user->lang['KIB'] . ']' : ''),
|
||||||
'RESULT' => $user->lang['DONE'],
|
'RESULT' => $user->lang['DONE'],
|
||||||
));
|
));
|
||||||
|
|
||||||
|
@ -1757,7 +1757,7 @@ class install_convert extends module
|
||||||
global $convert;
|
global $convert;
|
||||||
|
|
||||||
// Can we use IGNORE with this DBMS?
|
// Can we use IGNORE with this DBMS?
|
||||||
$sql_ignore = (strpos($db->sql_layer, 'mysql') === 0 && !defined('DEBUG_EXTRA')) ? 'IGNORE ' : '';
|
$sql_ignore = (strpos($db->sql_layer, 'mysql') === 0 && !defined('DEBUG')) ? 'IGNORE ' : '';
|
||||||
$insert_query = 'INSERT ' . $sql_ignore . 'INTO ' . $schema['target'] . ' (';
|
$insert_query = 'INSERT ' . $sql_ignore . 'INTO ' . $schema['target'] . ' (';
|
||||||
|
|
||||||
$aliases = array();
|
$aliases = array();
|
||||||
|
|
|
@ -11,13 +11,14 @@ class phpbb_mock_request implements phpbb_request_interface
|
||||||
{
|
{
|
||||||
protected $data;
|
protected $data;
|
||||||
|
|
||||||
public function __construct($get = array(), $post = array(), $cookie = array(), $server = array(), $request = false)
|
public function __construct($get = array(), $post = array(), $cookie = array(), $server = array(), $request = false, $files = array())
|
||||||
{
|
{
|
||||||
$this->data[phpbb_request_interface::GET] = $get;
|
$this->data[phpbb_request_interface::GET] = $get;
|
||||||
$this->data[phpbb_request_interface::POST] = $post;
|
$this->data[phpbb_request_interface::POST] = $post;
|
||||||
$this->data[phpbb_request_interface::COOKIE] = $cookie;
|
$this->data[phpbb_request_interface::COOKIE] = $cookie;
|
||||||
$this->data[phpbb_request_interface::REQUEST] = ($request === false) ? $post + $get : $request;
|
$this->data[phpbb_request_interface::REQUEST] = ($request === false) ? $post + $get : $request;
|
||||||
$this->data[phpbb_request_interface::SERVER] = $server;
|
$this->data[phpbb_request_interface::SERVER] = $server;
|
||||||
|
$this->data[phpbb_request_interface::FILES] = $files;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function overwrite($var_name, $value, $super_global = phpbb_request_interface::REQUEST)
|
public function overwrite($var_name, $value, $super_global = phpbb_request_interface::REQUEST)
|
||||||
|
@ -42,6 +43,12 @@ class phpbb_mock_request implements phpbb_request_interface
|
||||||
return $this->server($var_name, $default);
|
return $this->server($var_name, $default);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function file($form_name)
|
||||||
|
{
|
||||||
|
$super_global = phpbb_request_interface::FILES;
|
||||||
|
return isset($this->data[$super_global][$form_name]) ? $this->data[$super_global][$form_name] : array();
|
||||||
|
}
|
||||||
|
|
||||||
public function is_set_post($name)
|
public function is_set_post($name)
|
||||||
{
|
{
|
||||||
return $this->is_set($name, phpbb_request_interface::POST);
|
return $this->is_set($name, phpbb_request_interface::POST);
|
||||||
|
|
|
@ -21,6 +21,13 @@ class phpbb_request_test extends phpbb_test_case
|
||||||
$_COOKIE['test'] = 3;
|
$_COOKIE['test'] = 3;
|
||||||
$_REQUEST['test'] = 3;
|
$_REQUEST['test'] = 3;
|
||||||
$_GET['unset'] = '';
|
$_GET['unset'] = '';
|
||||||
|
$_FILES['test'] = array(
|
||||||
|
'name' => 'file',
|
||||||
|
'tmp_name' => 'tmp',
|
||||||
|
'size' => 256,
|
||||||
|
'type' => 'application/octet-stream',
|
||||||
|
'error' => UPLOAD_ERR_OK,
|
||||||
|
);
|
||||||
|
|
||||||
$_SERVER['HTTP_HOST'] = 'example.com';
|
$_SERVER['HTTP_HOST'] = 'example.com';
|
||||||
$_SERVER['HTTP_ACCEPT'] = 'application/json';
|
$_SERVER['HTTP_ACCEPT'] = 'application/json';
|
||||||
|
@ -42,6 +49,7 @@ class phpbb_request_test extends phpbb_test_case
|
||||||
$this->assertEquals(2, $_GET['test'], 'Checking $_GET after enable_super_globals');
|
$this->assertEquals(2, $_GET['test'], 'Checking $_GET after enable_super_globals');
|
||||||
$this->assertEquals(3, $_COOKIE['test'], 'Checking $_COOKIE after enable_super_globals');
|
$this->assertEquals(3, $_COOKIE['test'], 'Checking $_COOKIE after enable_super_globals');
|
||||||
$this->assertEquals(3, $_REQUEST['test'], 'Checking $_REQUEST after enable_super_globals');
|
$this->assertEquals(3, $_REQUEST['test'], 'Checking $_REQUEST after enable_super_globals');
|
||||||
|
$this->assertEquals(256, $_FILES['test']['size']);
|
||||||
|
|
||||||
$_POST['x'] = 2;
|
$_POST['x'] = 2;
|
||||||
$this->assertEquals($_POST, $GLOBALS['_POST'], 'Checking whether $_POST can still be accessed via $GLOBALS[\'_POST\']');
|
$this->assertEquals($_POST, $GLOBALS['_POST'], 'Checking whether $_POST can still be accessed via $GLOBALS[\'_POST\']');
|
||||||
|
@ -85,6 +93,23 @@ class phpbb_request_test extends phpbb_test_case
|
||||||
$this->request->header('SOMEVAR');
|
$this->request->header('SOMEVAR');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_file()
|
||||||
|
{
|
||||||
|
$file = $this->request->file('test');
|
||||||
|
$this->assertEquals('file', $file['name']);
|
||||||
|
$this->assertEquals('tmp', $file['tmp_name']);
|
||||||
|
$this->assertEquals(256, $file['size']);
|
||||||
|
$this->assertEquals('application/octet-stream', $file['type']);
|
||||||
|
$this->assertEquals(UPLOAD_ERR_OK, $file['error']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_file_not_exists()
|
||||||
|
{
|
||||||
|
$file = $this->request->file('404');
|
||||||
|
$this->assertTrue(is_array($file));
|
||||||
|
$this->assertTrue(empty($file));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that directly accessing $_POST will trigger
|
* Checks that directly accessing $_POST will trigger
|
||||||
* an error.
|
* an error.
|
||||||
|
|
|
@ -23,6 +23,18 @@ class phpbb_template_includephp_test extends phpbb_template_template_test_case
|
||||||
$this->assertEquals("Path is relative to board root.\ntesting included php", $this->display('test'), "Testing INCLUDEPHP");
|
$this->assertEquals("Path is relative to board root.\ntesting included php", $this->display('test'), "Testing INCLUDEPHP");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_includephp_variables()
|
||||||
|
{
|
||||||
|
$this->setup_engine(array('tpl_allow_php' => true));
|
||||||
|
|
||||||
|
$cache_file = $this->template->cachepath . 'includephp_variables.html.php';
|
||||||
|
|
||||||
|
$this->run_template('includephp_variables.html', array('TEMPLATES' => 'templates'), array(), array(), "Path includes variables.\ntesting included php", $cache_file);
|
||||||
|
|
||||||
|
$this->template->set_filenames(array('test' => 'includephp_variables.html'));
|
||||||
|
$this->assertEquals("Path includes variables.\ntesting included php", $this->display('test'), "Testing INCLUDEPHP");
|
||||||
|
}
|
||||||
|
|
||||||
public function test_includephp_absolute()
|
public function test_includephp_absolute()
|
||||||
{
|
{
|
||||||
$path_to_php = dirname(__FILE__) . '/templates/_dummy_include.php.inc';
|
$path_to_php = dirname(__FILE__) . '/templates/_dummy_include.php.inc';
|
||||||
|
|
|
@ -20,11 +20,14 @@ class phpbb_template_template_includejs_test extends phpbb_template_template_tes
|
||||||
$scripts = array(
|
$scripts = array(
|
||||||
'<script src="' . $this->test_path . '/templates/parent_and_child.js?assets_version=1"></script>',
|
'<script src="' . $this->test_path . '/templates/parent_and_child.js?assets_version=1"></script>',
|
||||||
'<script src="' . $this->test_path . '/parent_templates/parent_only.js?assets_version=1"></script>',
|
'<script src="' . $this->test_path . '/parent_templates/parent_only.js?assets_version=1"></script>',
|
||||||
'<script src="' . $this->test_path . '/templates/child_only.js?assets_version=1"></script>'
|
'<script src="' . $this->test_path . '/templates/child_only.js?assets_version=1"></script>',
|
||||||
|
'<script src="' . $this->test_path . '/templates/subdir/parent_only.js?assets_version=1"></script>',
|
||||||
|
'<script src="' . $this->test_path . '/templates/subdir/subsubdir/parent_only.js?assets_version=1"></script>',
|
||||||
|
'<script src="' . $this->test_path . '/templates/subdir/parent_only.js?assets_version=1"></script>',
|
||||||
);
|
);
|
||||||
|
|
||||||
// Run test
|
// Run test
|
||||||
$cache_file = $this->template->cachepath . 'includejs.html.php';
|
$cache_file = $this->template->cachepath . 'includejs.html.php';
|
||||||
$this->run_template('includejs.html', array('PARENT' => 'parent_only.js'), array(), array(), implode('', $scripts), $cache_file);
|
$this->run_template('includejs.html', array('PARENT' => 'parent_only.js', 'SUBDIR' => 'subdir', 'EXT' => 'js'), array(), array(), implode('', $scripts), $cache_file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -183,6 +183,13 @@ class phpbb_template_template_test extends phpbb_template_template_test_case
|
||||||
array(),
|
array(),
|
||||||
'value',
|
'value',
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'include_variables.html',
|
||||||
|
array('SUBDIR' => 'subdir', 'VARIABLE' => 'value'),
|
||||||
|
array(),
|
||||||
|
array(),
|
||||||
|
'value',
|
||||||
|
),
|
||||||
array(
|
array(
|
||||||
'loop_vars.html',
|
'loop_vars.html',
|
||||||
array(),
|
array(),
|
||||||
|
|
1
tests/template/templates/include_variables.html
Normal file
1
tests/template/templates/include_variables.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<!-- INCLUDE {SUBDIR}/variable.html -->
|
|
@ -2,4 +2,7 @@
|
||||||
<!-- INCLUDEJS {PARENT} -->
|
<!-- INCLUDEJS {PARENT} -->
|
||||||
<!-- DEFINE $TEST = 'child_only.js' -->
|
<!-- DEFINE $TEST = 'child_only.js' -->
|
||||||
<!-- INCLUDEJS {$TEST} -->
|
<!-- INCLUDEJS {$TEST} -->
|
||||||
|
<!-- INCLUDEJS subdir/{PARENT} -->
|
||||||
|
<!-- INCLUDEJS {SUBDIR}/subsubdir/{PARENT} -->
|
||||||
|
<!-- INCLUDEJS {SUBDIR}/parent_only.{EXT} -->
|
||||||
{SCRIPTS}
|
{SCRIPTS}
|
2
tests/template/templates/includephp_variables.html
Normal file
2
tests/template/templates/includephp_variables.html
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Path includes variables.
|
||||||
|
<!-- INCLUDEPHP ../tests/template/{TEMPLATES}/_dummy_include.php.inc -->
|
0
tests/template/templates/subdir/parent_only.js
Normal file
0
tests/template/templates/subdir/parent_only.js
Normal file
0
tests/template/templates/subdir/subsubdir/parent_only.js
Normal file
0
tests/template/templates/subdir/subsubdir/parent_only.js
Normal file
1
tests/template/templates/subdir/variable.html
Normal file
1
tests/template/templates/subdir/variable.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{VARIABLE}
|
|
@ -125,7 +125,7 @@ class phpbb_functional_test_case extends phpbb_test_case
|
||||||
{
|
{
|
||||||
$this->extension_manager = new phpbb_extension_manager(
|
$this->extension_manager = new phpbb_extension_manager(
|
||||||
$this->get_db(),
|
$this->get_db(),
|
||||||
new phpbb_config(),
|
new phpbb_config(array()),
|
||||||
self::$config['table_prefix'] . 'ext',
|
self::$config['table_prefix'] . 'ext',
|
||||||
$phpbb_root_path,
|
$phpbb_root_path,
|
||||||
".$phpEx",
|
".$phpEx",
|
||||||
|
|
|
@ -19,7 +19,8 @@ class phpbb_fileupload_test extends phpbb_test_case
|
||||||
{
|
{
|
||||||
// Global $config required by unique_id
|
// Global $config required by unique_id
|
||||||
// Global $user required by several functions dealing with translations
|
// Global $user required by several functions dealing with translations
|
||||||
global $config, $user;
|
// Global $request required by form_upload, local_upload and is_valid
|
||||||
|
global $config, $user, $request;
|
||||||
|
|
||||||
if (!is_array($config))
|
if (!is_array($config))
|
||||||
{
|
{
|
||||||
|
@ -31,6 +32,9 @@ class phpbb_fileupload_test extends phpbb_test_case
|
||||||
|
|
||||||
$user = new phpbb_mock_user();
|
$user = new phpbb_mock_user();
|
||||||
$user->lang = new phpbb_mock_lang();
|
$user->lang = new phpbb_mock_lang();
|
||||||
|
|
||||||
|
$request = new phpbb_mock_request();
|
||||||
|
|
||||||
$this->path = __DIR__ . '/fixture/';
|
$this->path = __DIR__ . '/fixture/';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue