mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 14:00:31 +02:00
my turn to break things... harharhar
- checking in permission settings and permission masks - permission presets and documentation not finished yet - added backtrace function to determine file/line for sql errors - fixed marlist for orphan attachments/groups/logs/users - able to change anonymous user settings/permissions now - re-arranged admin permissions a bit (added some and removed some) - setting forum permissions after creating/editing forum now selects every default group (copy permisson/dropdown to be added for adding forums) - finished user permissions in users acp note: the layout for permissions might change devs: please empty the user_permissions in phpbb_users. Also, first change your auth_options table, remove all cache files and then re-set admin permissions. After having set the admin permissions you can update your modules table (else you will not see the permission tabs) - or empty the auth setting within the modules table to be able to see the permission modules (they rely on newly added permission options) git-svn-id: file:///svn/phpbb/trunk@5553 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
@@ -2165,4 +2165,76 @@ function page_footer()
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a nicely formatted backtrace (parts from the php manual by diz at ysagoon dot com)
|
||||
*/
|
||||
function get_backtrace()
|
||||
{
|
||||
global $phpbb_root_path;
|
||||
|
||||
$output = '<div style="font-family: monospace;">';
|
||||
$backtrace = debug_backtrace();
|
||||
$path = realpath($phpbb_root_path);
|
||||
|
||||
foreach ($backtrace as $number => $trace)
|
||||
{
|
||||
// We skip the first one, because it only shows this file/function
|
||||
if ($number == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Strip the current directory from path
|
||||
$trace['file'] = str_replace(array($path, '\\'), array('', '/'), $trace['file']);
|
||||
$trace['file'] = substr($trace['file'], 1);
|
||||
|
||||
$args = array();
|
||||
foreach ($trace['args'] as $argument)
|
||||
{
|
||||
switch (gettype($argument))
|
||||
{
|
||||
case 'integer':
|
||||
case 'double':
|
||||
$args[] = $argument;
|
||||
break;
|
||||
|
||||
case 'string':
|
||||
$argument = htmlspecialchars(substr($argument, 0, 64)) . ((strlen($argument) > 64) ? '...' : '');
|
||||
$args[] = '"' . $argument . '"';
|
||||
break;
|
||||
|
||||
case 'array':
|
||||
$args[] = 'Array(' . sizeof($argument) . ')';
|
||||
break;
|
||||
|
||||
case 'object':
|
||||
$args[] = 'Object(' . get_class($argument) . ')';
|
||||
break;
|
||||
|
||||
case 'resource':
|
||||
$args[] = 'Resource(' . strstr($a, '#') . ')';
|
||||
break;
|
||||
|
||||
case 'boolean':
|
||||
$args[] = ($argument) ? 'true' : 'false';
|
||||
break;
|
||||
|
||||
case 'NULL':
|
||||
$args[] = 'NULL';
|
||||
break;
|
||||
|
||||
default:
|
||||
$args[] = 'Unknown';
|
||||
}
|
||||
}
|
||||
|
||||
$output .= '<br />';
|
||||
$output .= '<b>FILE:</b> ' . htmlspecialchars($trace['file']) . '<br />';
|
||||
$output .= '<b>LINE:</b> ' . $trace['line'] . '<br />';
|
||||
$output .= '<b>CALL:</b> ' . htmlspecialchars($trace['class'] . $trace['type'] . $trace['function']) . '(' . ((sizeof($args)) ? implode(', ', $args) : '') . ')<br />';
|
||||
}
|
||||
$output .= '</div>';
|
||||
return $output;
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user