📄 admin.php
字号:
$psettings2 = array
(
'public_files_dir' => trim ( $psettings['public_files_dir'] ),
'public_files_url' => trim ( $psettings['public_files_url'] ),
'enabled' => isset ( $psettings['enabled'] ) ? (int)$psettings['enabled'] : 0,
'allowed_filetypes' => trim ( $psettings['allowed_filetypes'], ', ' ), // blank means no files allowed. For any type, enter ANY
'max_file_size' => (float)$psettings['max_file_size'], // in KB
'images_only' => isset ( $psettings['images_only'] ) ? (int)$psettings['images_only'] : 0, // overrides allowed_filetypes (jpeg, png, and gif only)
'max_views' => (int)$psettings['max_views'], // 0 for unlimited
'max_bandwidth' => (float)$psettings['max_bandwidth'], // in MB, 0 for unlimited
'uploader_view' => (int)@$psettings['uploader_view'],
'allow_thumbnails' => isset ( $psettings['allow_thumbnails'] ) ? (int)$psettings['allow_thumbnails'] : 0,
'thumb_small' => trim($psettings['thumb_small']),
'thumb_large' => trim($psettings['thumb_large']),
'thumb_border' => isset ( $psettings['thumb_border'] ) ? (int)$psettings['thumb_border'] : 0,
);
$db = new DB;
if ( !$db->open ( PUBLIC_SETTINGS ) ) exit ( 'Could not open public settings file ' . PUBLIC_SETTINGS );
$db->set ( $psettings2, 1 );
$db->save();
}
go_to('admin.php?action=public&saved=1');
}
else
{
$db = new DB;
if ( !$db->open ( PUBLIC_SETTINGS ) ) exit ( 'Could not open public settings file ' . PUBLIC_SETTINGS );
$psettings = $db->all();
$tpl_settings = new Template ( TPL_DIR . 'tpl_settings.php' );
$tpl_settings->set ( 'action', 'public' );
$tpl_settings->set ( 'saved', gpc ( 'saved', 'G', 0 ) );
$tpl_settings->set ( 'psettings', $psettings );
$tpl_admin->set ( 'content', $tpl_settings,1 );
}
}
break;
case 'cleanpuploads':
{
$r = $mysqlDB->query ( "SELECT uploader_puploads.upload_id, COUNT(file_id) AS files FROM uploader_puploads LEFT JOIN uploader_pfiles USING (upload_id) GROUP BY uploader_puploads.upload_id;" );
$remove_ids = array();
while ( false !== ( $upload = $mysqlDB->getAssoc() ) )
{
if ( $upload['files'] == 0 )
{
$remove_ids[] = 'upload_id=' . $upload['upload_id'];
}
}
$mysqlDB->free();
$mysqlDB->query ( "DELETE FROM uploader_puploads WHERE (" . implode ( ' OR ', $remove_ids ) . ");" );
$tpl_message->set ( 'message', ( count ( $remove_ids ) . ' uploads removed.' ) );
$tpl_message->set ( 'back_url', 'admin.php?action=pupload' );
$tpl_admin->set ( 'content', $tpl_message, 1 );
}
break;
case 'pupload':
{
$tpl_upload = new Template ( TPL_DIR . 'tpl_pupload_admin.php' );
$current_page = gpc ( 'page', 'G', 1 );
$per_page = 25;
$files = array ( );
$uploads = array ( );
$db = new DB;
if ( !$db->open ( PUBLIC_SETTINGS ) ) exit ( 'Unable to load public settings ' . PUBLIC_SETTINGS );
$UPL['PUBLIC_SETTINGS'] = $db->all();
$db->close();
$public_url = $UPL['PUBLIC_SETTINGS']['public_files_url'];
$mysqlDB->query ( "SELECT COUNT(file_id) AS total_files FROM uploader_pfiles;" );
$result = $mysqlDB->getAssoc();
$total_files = $result['total_files'];
$mysqlDB->free();
$total_pages = ceil ( $total_files / $per_page );
if ( $current_page < 1 ) $current_page = 1;
elseif ( $current_page > $total_pages ) $current_page = $total_pages;
$limit = ( $current_page - 1 ) * $per_page;
$mysqlDB->query ( "SELECT * FROM uploader_pfiles ORDER BY file_id DESC LIMIT $limit, $per_page" );
if ( $mysqlDB->getRowCount() )
{
while ( false !== ( $f = $mysqlDB->getAssoc ( ) ) )
{
$f['file_url'] = MOD_REWRITE ? ( $public_url . $f['file_id'] . '/' . $f['file_name'] ) : $public_url . $f['file_rname'];
$files [] = $f;
}
$mysqlDB->free();
}
$tplvars = array
(
'files' => $files,
'uploads' => $uploads,
'total_files' => $total_files,
'total_pages' => $total_pages,
'current_page' => $current_page,
'next_page_url' => 'admin.php?action=pupload&page=' . ( $current_page + 1 ),
'prev_page_url' => 'admin.php?action=pupload&page=' . ( $current_page - 1 ),
);
$tpl_upload->set ( $tplvars );
$tpl_admin->set ( 'content', $tpl_upload, 1 );
}
break;
case 'pupload_action':
{
$db = new DB;
if ( !$db->open ( PUBLIC_SETTINGS ) ) exit ( 'Unable to load public settings ' . PUBLIC_SETTINGS );
$UPL['PUBLIC_SETTINGS'] = $db->all();
$db->close();
$public_dir = $UPL['PUBLIC_SETTINGS']['public_files_dir'];
$files = gpc ( 'files', 'P', array ( ) );
$ids = array ( );
for ( $i =0; $i < count ( $files ); ++$i )
{
$ids[] = 'file_id=' . $files[$i];
}
if ( $task == 'reset_views' )
{
$mysqlDB->query ( "UPDATE uploader_pfiles SET file_views=0 WHERE (" . implode ( ' OR ', $ids ) . ");" );
}
elseif ( $task == 'delete' )
{
$mysqlDB->query ( "SELECT * FROM uploader_pfiles WHERE (" . implode ( ' OR ', $ids ) . ");" );
if ( $mysqlDB->getRowCount() )
{
while ( false !== ( $file = $mysqlDB->getAssoc ( ) ) )
{
unlink ( $public_dir . $file['file_rname'] );
if ( $file['file_hasthumb'] )
{
unlink ( $public_dir . 'thumb_' . $file['file_rname'] );
}
}
}
$mysqlDB->free();
$mysqlDB->query ( "DELETE FROM uploader_pfiles WHERE (" . implode ( ' OR ', $ids ) . ");" );
}
go_to();
}
break;
// email templates
case 'emails':
{
$emails_db = new DB;
if ( !$emails_db->open ( EMAIL_TEMPLATES ) )
{
exit ( 'Unable to open the email templates ' . EMAIL_TEMPLATES );
}
if ( $task == 'save' )
{
$emails = gpc ( 'emails', 'P', array ( ) );
if ( count ( $emails ) )
{
while ( list ( $k, $v ) = each ( $emails ) )
{
$emails_db->set ( $k, $v );
}
$emails_db->save ();
}
go_to ( );
}
else
{
$tpl_settings = new Template ( TPL_DIR . 'tpl_settings.php' );
$emails = $emails_db->all ();
$tpl_settings->set ( 'emails', $emails );
$tpl_settings->set ( 'action', $action );
$tpl_admin->set ( 'page_title', 'Email Templates' );
$tpl_admin->setr ( 'content', $tpl_settings );
$tpl_admin->display ( );
}
}
break;
// uploader log
case 'logs':
{
$tpl_logs = new Template ( TPL_DIR . 'tpl_logs.php' );
$log_files = array ( );
$log_total_size = 0;
if ( false !== ( $h = opendir ( LOGS_DIR ) ) )
{
while ( false !== ( $f = readdir ( $h ) ) )
{
if ( get_extension ( $f ) == 'log' )
{
$log_size = filesize ( LOGS_DIR . $f );
$log_total_size += $log_size;
$log_files [] = array
(
'name' => $f,
'size' => get_size ( $log_size, 'B', 0 ),
'view_url' => 'admin.php?action=logs&log_file=' . $f,
'delete_url' => 'admin.php?action=logs&task=del&log_file=' . $f,
);
}
}
reset ( $log_files );
}
else exit ( sprintf ( 'Unable to open the logs directory "%s"', LOGS_DIR ) ); closedir ( $h );
$log_files = multi_sort ( $log_files, 'name' );
switch ( $task )
{
case 'del':
{
if ( $demo ) exit ( 'Demo only!' );
$log_file = gpc ( 'log_file', 'G', '' );
if ( is_file ( LOGS_DIR . $log_file ) && unlink ( LOGS_DIR . $log_file ) )
{
header ( 'Location: admin.php?action=logs' );
}
exit ( 'Could not delete ' . $log_file );
}
break;
case 'delall':
{
if ( $demo ) exit ( 'Demo only!' );
for ( $i = 0; $i < count ( $log_files ); $i++ )
{
if ( is_file ( LOGS_DIR . $log_files[$i]['name'] ) )
{
if ( !unlink ( LOGS_DIR . $log_files[$i]['name'] ) )
{
exit ( 'Could not delete log file.' );
}
}
}
header ( 'Location: admin.php?action=logs' );
}
case 'clear':
{
if ( $demo ) exit ( 'Demo only!' );
$log_file = gpc ( 'log_file', 'G', '' );
if ( is_file ( LOGS_DIR . $log_file ) )
{
fclose ( fopen ( LOGS_DIR . $log_file, 'w' ) );
header ( 'Location: admin.php?action=logs' );
}
exit ( 'Could not delete ' . $log_file );
}
break;
case 'archive':
{
$archive_file = 'archive_' . date ( 'M_d_Y' ) . '.log';
$fp = fopen ( LOGS_DIR . $archive_file, 'wt' );
if ( !$fp ) exit ( 'Error creating log file, check that log directory is chmodded' );
for ( $i = 0; $i < count ( $log_files ); $i++ )
{
$fh = fopen ( LOGS_DIR . $log_files[$i]['name'], 'rt' );
if ( $fh )
{
while ( !feof ( $fh ) )
{
fwrite ( $fp, fread ( $fh, 1024000 ) );
}
fclose ( $fh );
}
unlink ( LOGS_DIR . $log_files[$i]['name'] );
}
fclose ( $fp );
header ( 'Location: admin.php?action=logs' );
}
break;
default:
{
$log_file = gpc ( 'log_file', 'G', '' );
if ( $log_file == '' && count ( $log_files ) )
{
$last = end ( $log_files );
$log_file = $last['name'];
}
// read log data
if ( $log_file != '' && is_file ( LOGS_DIR . $log_file ) )
{
$fp = fopen ( LOGS_DIR . $log_file, 'rt' );
$log_data = filesize ( LOGS_DIR . $log_file ) > 0 ? fread ( $fp, filesize ( LOGS_DIR . $log_file ) ) : 'This log file is empty.';
//$log_data = nl2br ( $log_data );
fclose ( $fp );
}
else
{
$log_data = 'Invalid log file.';
}
// display
$tpl_logs->set ( 'log_total_size', get_size ( $log_total_size, 'B' ) );
$tpl_logs->setr ( 'log_files', $log_files );
$tpl_logs->set ( 'log_file', $log_file );
$tpl_logs->set ( 'archive_url', 'admin.php?action=logs&task=archive' );
$tpl_logs->set ( 'delete_all_url', 'admin.php?action=logs&task=delall' );
$tpl_logs->setr ( 'log_data', $log_data );
$tpl_admin->setr ( 'content', $tpl_logs );
$tpl_admin->set ( 'page_title', 'Uploader logs' );
$tpl_admin->display ( );
}
}
}
break;
// show user info
case 'user_info':
{
$tpl_userinfo = new Template ( TPL_DIR . 'tpl_user_admin.php' );
$tpl_userinfo->set ( 'action', $action );
$userid = (int)gpc ( 'userid', 'GP', 0 );
$mysqlDB->query ( "SELECT * FROM uploader_users WHERE userid={$userid} LIMIT 1;" );
if ( $mysqlDB->getRowCount() )
{
$userinfo = $mysqlDB->getAssoc();
$mysqlDB->free();
$userinfo['comments'] = trim ( $userinfo['xtr_admin_comments'] ) == '' ? 'No comments' : nl2br ( $userinfo['xtr_admin_comments'] );
// urls
$userinfo['email_url'] = 'admin.php?action=emailer&to=' . $userinfo['email'];
$userinfo['edit_url'] = 'admin.php?action=edit_user&userid=' . $userid;
$userinfo['manage_files_url'] = 'admin.php?action=user_files&userid=' . $userid;
$userinfo['bandwidth_reset_url'] = 'admin.php?action=quick_edit_user_info&task=bandwidth_counter&userid=' . $userid;
// regdate
$userinfo['reg_date'] = date ( $UPL['CONFIGS']['TIME_FORMAT2'], $userinfo['reg_date'] );
// login record
$userinfo['last_login_time'] = date ( $UPL['CONFIGS']['TIME_FORMAT2'], $userinfo['last_login_time'] );
$userinfo['last_login_ip'] = $userinfo['last_login_ip'];
// stats
$userinfo['max_storage'] = get_size ( $userinfo['fl_max_storage'], 'MB', 1 );
$userinfo['max_filesize'] = get_size ( $userinfo['fl_max_filesize'], 'KB', 1 );
$userinfo['filetypes'] = str_replace ( ',', ', ', $userinfo['fl_allowed_types'] );
$userinfo['bw_used'] = get_size ( $userinfo['bw_used'], 'KB' );
$userinfo['max_bandwidth'] = get_size ( $userinfo['bw_max'], 'MB' );
$userinfo['bw_last_reset_days'] = floor ( ( time ( ) - $userinfo['bw_reset_last'] ) / 86400 );
$userinfo['bw_last_reset'] = date ( $UPL['CONFIGS']['TIME_FORMAT2'], $userinfo['bw_reset_last'] );
$userinfo['allow_rename'] = $userinfo['fl_rename_permission'];
$userinfo['allow_create_folder'] = $userinfo['fl_allow_folders'];
$userinfo['max_folders'] = $userinfo['fl_max_folders'];
$userinfo['images_only'] = $userinfo['fl_images_only'];
$tpl_userinfo->setr ( 'userinfo', $userinfo );
$tpl_admin->setr ( 'content', $tpl_userinfo );
$tpl_admin->set ( 'page_title', 'Account info', 1 );
}
else
{
$tpl_message->set ( 'message', 'Unable to load user data, perhaps user does not exists.' );
$tpl_message->set ( 'back_url', 'admin.php?action=users' );
$tpl_admin->setr ( 'content', $tpl_message, 1 );
}
}
break;
// show user files
case 'user_files':
{
// get inputs
$folder = isset ( $_GET['folder'] ) ? path_decode ( $_GET['folder'] ) : '';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -