wp/wp-content/plugins/wp-filemanager/wp-filemanager.php
author ymh <ymh.work@gmail.com>
Tue, 15 Oct 2019 11:56:20 +0200
changeset 12 d8a8807227e4
parent 0 d970ebf37754
permissions -rw-r--r--
upgrade portofolio
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/*
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
Plugin Name: WP-FileManager
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
Plugin URI: http://blog.anantshri.info/projects/wp-filemanager/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
Description: FileManager for WordPress allows you to easily change, delete, organize and upload files.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
Version: 1.4.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
Author: Anant Shrivastava, Johannes Ries
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
Author URI: http://anantshri.info
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
*/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
/*
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
Todo list for PHPFM:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
-------------------------------------------------------------------------------------
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
- find work-around for permissions on GNU/Linux & UNIX systems.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
- make a login system where each user has his/hers own home directory and permissions.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
- some kind of logging system.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
- make an install script which makes it easier to install PHPFM.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
- add dos2unix or viceversa support
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
- make hidden files unaccessible by the script (again).
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
- index with thumbnails of all images in the current directory (uncertain).
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
- make it possible to change permissions (chmod) on files and directories.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
- make it so you can compress a directory and download it.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
- do so you can see the full size of a directory (including sub-directories) and how
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
  many files that are in the directory.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
- templates for new (created) files. For instance PHP, HTML etc.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
- unix style permissions (e.g. -rw-rw-rw-)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
- too long directory- and filenames are shortened so they do not ruin the design.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
- templates for PHPFM. Change the look of PHPFM easily! (not provisional)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
- more languages.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
- add some nifty DHTML?
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
- add the drive browser again?
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
- PDF viewer and text/PHP viewer with highlighting.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
*/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
/* DO NOT EDIT ANYTHING BELOW THIS LINE */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
if ( ! defined( 'ABSPATH' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
	die();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
function get_list_ext($lst_type)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
	if (get_option($lst_type)  != "")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
		$ext_list =  get_option($lst_type);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
	else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
		$ext_list =  get_option( $lst_type . '_default');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
	return $ext_list;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
function fm_post_add_options() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
	add_menu_page('FileManager', 'FileManager', 8, 'wp-filemanager/fm.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
	add_submenu_page('wp-filemanager/fm.php','FileManager','Configuration',8,'wpfileman', 'wpfileman_options_admin');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
function wpfileman_options_admin()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
//	echo "options panel for wordpress file man";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
include_once('conf/config.inc.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
include_once('wp_filemanager_admin.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
add_action('admin_menu', 'fm_post_add_options');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
//add_action('admin_menu', 'wpfileman_admin');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
if ($_GET['action'] == 'edit')
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
//	wp_enqueue_script('codepress');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
	wp_enqueue_script('jquery');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
function wp_fileman_rename_file()
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
include(WP_CONTENT_DIR . "/plugins/wp-filemanager/incl/rename.inc.php");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
	exit();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
add_action('wp_ajax_rename', 'rename_file');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
add_action("admin_print_scripts",'js_libs');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
add_action("admin_print_styles", 'style_libs');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
function js_libs() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
	wp_enqueue_script('jquery');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
	wp_enqueue_script('thickbox');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
} 
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
function style_libs() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
	wp_enqueue_style('thickbox');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
} 	
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
function wpfileman_download_page(){
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
    global $pagenow;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
//    header("Anant: Hello");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
    include_once('conf/config.inc.php');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
    //http://localhost/wordpress/wp-admin/admin.php?page=wp-filemanager%2Ffm.php&path=test_create%2F&filename=testme.txt&action=download
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
    $page = (isset($_GET['page']) ? $_GET['page'] : false);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
    $action = (isset($_GET['action']) ? $_GET['action'] : false);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
    $filename=(isset($_GET['filename']) ? $_GET['filename'] : false);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
    $wp_fileman_path=(isset($_GET['path']) ? $_GET['path'] : false);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
    //header("Anant: Hello");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
    if($pagenow=='admin.php' && $page=='wp-filemanager/fm.php' && $action=='download' )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
    {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
        //header("Anant: Hello");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
	if (is_file($home_directory.$wp_fileman_path.$filename))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
	{
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
		$fullpath = $home_directory.$wp_fileman_path.$filename;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
	//header("Anant2: Hello");    
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
	//wp_redirect('http://google.com');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
	global $MIMEtypes;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
	$mime="";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
	if (!empty($MIMEtypes))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
	{//reset($MIMEtypes);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
	$extension = strtolower(substr(strrchr($filename, "."),1));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
	if ($extension == "")
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
		$mime="Unknown/Unknown";
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
	while (list($mimetype, $file_extensions) = each($MIMEtypes))
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
		foreach (explode(" ", $file_extensions) as $file_extension)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
			if ($extension == $file_extension)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
				$mime=$mimetype;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
	header("Content-Type: ".$mime);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
	header("Content-Length: ".filesize($fullpath));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
	header("Content-Disposition: attachment; filename=$filename");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
	readfile($fullpath);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
    }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
add_action('admin_init', 'wpfileman_download_page');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
/**/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
?>