?? browse.php
字號:
<?php
define ( 'NO_AUTH_CHECK', 1 );
define ( 'BROWSE_PHP', 1 );
require_once ( 'includes/commons.inc.php' );
$userfiles_url = $UPL['SETTINGS']['userfiles_url'];
$uploader_view = $UPL['SETTINGS']['uploader_view'];
if ( $UPL['SETTINGS']['browsing'] == 'none' )
{
$tpl_message->set ( 'message', $lang_browse['disabled'] );
$tpl_uploader->setr ( 'content', $tpl_message, 1 );
exit;
}
elseif ( $UPL['SETTINGS']['browsing'] == 'reg' && $UPL['USER']['logged_in'] == false )
{
$tpl_message->set ( 'message', $lang_misc['login_required'] );
$tpl_uploader->setr ( 'content', $tpl_message, 1 );
exit;
}
switch ( $action )
{
case 'browse':
{
$tpl_browse = new Template ( TPL_DIR . 'tpl_user.php' );
$tpl_browse->set ( 'action', $action );
$userid = abs ( (int)gpc ( 'userid', 'G', 0 ) );
$username = gpc ( 'username', 'G', '' );
$folder = path_decode ( gpc ( 'folder', 'G', '' ) );
$error = 'none';
if ( $username != '' )
$mysqlDB->query ( sprintf ( "SELECT * FROM uploader_users WHERE username='%s' LIMIT 1", $mysqlDB->escape ( $username ) ) );
else
$mysqlDB->query ( sprintf ( "SELECT * FROM uploader_users WHERE userid=%d LIMIT 1", $userid ) );
if ( $mysqlDB->getRowCount() )
{
$userinfo = $mysqlDB->getAssoc();
$userid = $userinfo['userid'];
$mysqlDB->free();
if ( $userinfo['fl_has_public'] )
{
// User directory and URL
$user_root = $UPL['SETTINGS']['userfiles_dir'] . $userid . '/';
$user_url = $UPL['SETTINGS']['userfiles_url'] . $userid . '/';
// get all folders
$user_contents = get_contents ( $user_root );
$user_folders =& $user_contents['dirs'];
$count = count ( $user_folders );
$public_folders = array ( );
for ( $i = 0; $i < $count; ++$i )
{
$folder_info = get_folder_info ( $user_root . $user_folders[$i]['path'] );
if ( $folder_info['is_public'] )
{
$public_folders [] = array_merge ( $user_folders[$i], $folder_info );
}
}
$public_folders_count = count ( $public_folders );
if ( !$public_folders_count )
{
$error = parse ( $lang_browse['no_public_folders'], '{user}', $userinfo['username'] );
// must be a mistake, user should not have public folders
$mysqlDB->query ( "UPDATE uploader_users SET fl_has_public=0 WHERE userid={$userid} LIMIT 1;" );
}
else
{
for ( $i = 0; $i < $public_folders_count; $i++ )
{
$public_folders[$i]['description'] = htmlentities ( $public_folders[$i]['description'] );
$public_folders[$i]['size'] = get_size ( $public_folders[$i]['size'], 'B', 0 );
$public_folders[$i]['browse_url'] = MOD_REWRITE ? 'members/browse/' . $userid . '/' . ( $public_folders[$i]['path'] ) : 'browse.php?action=browse&userid=' . $userid . ( $public_folders[$i]['path'] == '' ? '' : '&folder=' . path_encode ( $public_folders[$i]['path'] ) );
}
// No folder selected, pick the first selected folder
$index = $folder == '' ? '<MAIN_FOLDER>' : $folder;
if ( !isset ( $user_contents['files'][$index] ) )
{
$error = $lang_browse['bad_folder'];
}
else
{
$folder_info = get_folder_info ( $user_root . $folder );
if ( $index == '<MAIN_FOLDER>' && !$folder_info['is_public'] )
{
$index = $public_folders[0]['path'];
$folder = $public_folders[0]['path'];
$folder_info = get_folder_info ( $user_root . $index );
}
elseif ( !$folder_info['is_public'] )
{
$error = $lang_browse['bad_folder'];
}
}
}
if ( $error != 'none' )
{
$tpl_message->set ( 'message', $error );
$tpl_uploader->set ( 'page_title', $lang_misc['error'] );
$tpl_uploader->set ( 'content', $tpl_message, 1 );
exit;
}
$user_files = &$user_contents['files'][$index];
$user_files_count = count ( $user_files );
for ( $i = 0; $i < $user_files_count; ++$i )
{
$ref =& $user_files[$i];
$ref['ext'] = get_extension ( $ref['name'] );
if ( !isset ( $ref['date'] ) )
{
$ref['date'] = filemtime ( $user_root . $folder . '/' . $ref['name'] );
}
$ref['file_url'] = $user_url . clean_url ( $folder . '/' . rawurlencode ( $ref['name'] ) );
$ref['date_raw'] = $ref['date'];
$ref['date'] = date ( $UPL['CONFIGS']['TIME_FORMAT'], $ref['date'] );
$ref['size_raw'] = $ref['size'];
$ref['form_name'] = rawurlencode ( $ref['name'] );
$ref['full_name'] = htmlentities ( $ref['name'] );
$ref['has_thumb'] = $ref['is_image'] && is_file ( $user_root . $folder . '/thumbs/' . $ref['name'] ) ? 1 : 0;
$ref['thumb_url'] = $ref['has_thumb'] ? $user_url . $folder . '/thumbs/' . $ref['name'] : '';
if ( $ref['is_image'] && $uploader_view )
{
if ( MOD_REWRITE )
{
$ref['file_url'] = $userfiles_url . 'view/' . $userinfo['userid'] . '/' . trim ( clean_url ( $folder . '/' . rawurlencode ( $ref['name'] ) ), '/' );
}
else $ref['file_url'] = 'view.php?userid=' . $userinfo['userid'] . '&file=' . trim ( clean_url ( $folder . '/' . rawurlencode ( $ref['name'] ) ), '/' );
}
else $ref['file_url'] = $user_url . clean_url ( $folder . '/' . rawurlencode ( $ref['name'] ) );
}
$userinfo['info_url'] = MOD_REWRITE ? 'members/info/' . $userinfo['userid'] : 'browse.php?action=info&userid=' . $userinfo['userid'];
$userinfo['message_url'] = 'usercp.php?action=sendpm&userid=' . $userinfo['userid'];
$tpl_browse->set ( 'current_folder_name', basename ( $folder ) );
$tpl_browse->set ( 'current_folder_description', htmlentities ( $folder_info['description'] ) );
$tpl_browse->set ( 'current_folder_is_gallery', $folder_info['is_gallery'] );
$tpl_browse->setr ( 'user_files', $user_files );
$tpl_browse->setr ( 'user', $userinfo );
$tpl_browse->setr ( 'public_folders', $public_folders );
$tpl_uploader->setr ( 'content', $tpl_browse, 1 );
}
else
{
$tpl_message->set ( 'message', parse ( $lang_browse['no_public_folders'], '{user}', $userinfo['username'] ) );
$tpl_message->set ( 'back_url', 'browse.php' );
$tpl_uploader->setr ( 'content', $tpl_message, 1 );
exit;
}
}
else
{
$tpl_message->set ( 'message', $lang_misc['user_not_found'] );
$tpl_uploader->setr ( 'content', $tpl_message, 1 );
exit;
}
}
break;
case 'info':
{
$tpl_userinfo = new Template ( TPL_DIR . 'tpl_user.php' );
$tpl_userinfo->set ( 'action', $action );
$userid = abs((int)gpc ( 'userid', 'G', 0 ));
$mysqlDB->query ( "SELECT * FROM uploader_users WHERE userid=$userid LIMIT 1;" );
if ( $mysqlDB->getRowCount() )
{
$userinfo = $mysqlDB->getAssoc();
// format user info
$userinfo['reg_date_ago'] = number_format ( ( time() - $userinfo['reg_date'] ) / 86400, 1 );
$userinfo['reg_date'] = date ( $UPL['CONFIGS']['TIME_FORMAT'], $userinfo['reg_date'] );
$userinfo['last_login_ago'] = number_format ( ( time() - $userinfo['last_login_time'] ) / 86400, 1 );
$userinfo['last_login'] = date ( $UPL['CONFIGS']['TIME_FORMAT'], $userinfo['last_login_time'] );
$userinfo['browse_url'] = MOD_REWRITE ? 'members/browse/' . $userid : 'browse.php?action=browse&userid=' . $userid;
$userinfo['message_url'] = 'usercp.php?action=sendpm&userid=' . $userid;
$tpl_userinfo->setr ( 'user', $userinfo );
$tpl_uploader->set ( 'page_title', $lang_browse['title2'] );
$tpl_uploader->setr ( 'content', $tpl_userinfo, 1 );
}
else
{
$tpl_message->set ( 'message', $lang_misc['user_invalid'] );
$tpl_uploader->setr ( 'content', $tpl_message, 1 );
exit;
}
}
break;
default:
{
$tpl_browse_users = new Template ( TPL_DIR . 'tpl_browse.php' );
$public_only = gpc ( 'public', 'G', 0 );
$current_page = abs ( intval ( gpc ( 'page', 'G', 1 ) ) );
$where = $public_only ? 'WHERE fl_has_public=1' : '';
// get total users
$total_users = 0;
$all_users = array ( );
$mysqlDB->query ( "SELECT COUNT(*) AS total_users FROM uploader_users $where;" );
if ( $mysqlDB->getRowCount() )
{
$result = $mysqlDB->getAssoc();
$total_users = $result['total_users'];
$mysqlDB->free();
}
$number_of_pages = ceil ( $total_users / $UPL['CONFIGS']['USERLIST_PERPAGE'] );
if ( $current_page > $number_of_pages || $current_page < 1 )
{
$current_page = 1;
}
$start = ($current_page-1)*$UPL['CONFIGS']['USERLIST_PERPAGE'];
$end = $UPL['CONFIGS']['USERLIST_PERPAGE'];
if ( !$mysqlDB->query ( "SELECT userid,username,reg_date,email,pref_show_email,fl_has_public AS has_public FROM uploader_users $where ORDER BY username LIMIT $start, $end;" ) ) exit ( $mysqlDB->error ( __LINE__, __FILE__ ) );
if ( $mysqlDB->getRowCount() )
{
while ( false !== ( $user = $mysqlDB->getAssoc() ) )
{
$user['username'] = $user['username'];
$user['browse_url'] = MOD_REWRITE ? 'members/browse/' . $user['userid'] : 'browse.php?action=browse&userid=' . $user['userid'];
$user['info_url'] = MOD_REWRITE ? 'members/info/' . $user['userid'] : 'browse.php?action=info&userid=' . $user['userid'];
$user['message_url'] = 'usercp.php?action=sendpm&userid=' . $user['userid'];
$user['reg_date'] = date ( $UPL['CONFIGS']['TIME_FORMAT3'], $user['reg_date'] );
$user['email'] = $user['pref_show_email'] ? $user['email'] : $lang_misc['email_hidden'];
$user_list [] = $user;
}
$mysqlDB->free();
}
// pages links
$page_links = array ( );
if ( $total_users )
{
for ( $i = 1; $i <= $number_of_pages; ++$i ) $page_links [] = array ( 'url' => MOD_REWRITE ? 'members/' . ( $public_only ? 'public/' : '' ) . $i : 'browse.php?page=' . $i . ( $public_only ? '&public=1' : '' ), 'number' => $i );
if ( $current_page != $number_of_pages ) $page_links [] = array ( 'url' => MOD_REWRITE ? 'members/' . ( $public_only ? 'public/' : '' ) . ($current_page+1) : 'browse.php?page=' . ( $current_page + 1 ) . ( $public_only ? '&public=1' : '' ), 'number' => 'NEXT' );
if ( $current_page != 1 ) array_unshift ( $page_links, array ( 'url' => MOD_REWRITE ? 'members/' . ( $public_only ? 'public/' : '' ) . ($current_page-1) : 'browse.php?page=' . ( $current_page - 1 ) . ( $public_only ? '&public=1' : '' ), 'number' => 'PREV' ) );
}
$tpl_browse_users->set ( 'public_only', $public_only );
$tpl_browse_users->set ( 'pages', $page_links );
$tpl_browse_users->set ( 'current_page', $current_page );
$tpl_browse_users->set ( 'total_users', $total_users );
$tpl_browse_users->setr ( 'users', $user_list );
$tpl_uploader->set ( 'page_title', $lang_browse['title1'] );
$tpl_uploader->setr ( 'content', $tpl_browse_users, 1 );
}
break;
}
?>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -