--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/wp-explorer/wp-explorer.php Mon Feb 01 09:51:57 2010 +0000
@@ -0,0 +1,258 @@
+<?php
+/*
+Plugin Name: WP Explorer
+Plugin URI: http://www.t3-design.com/
+Description: A simple file indexing plugin with custom rules
+Version: 0.5
+Author: Chris T.
+Author URI: http://www.t3-design.com/
+
+2010-01-18 Edited By samuel Huron for MP3 player
+2010-01-18 Edited By samuel Huron for Downloader filter .iri
+*/
+
+add_action('init', 'wp_explorer_getvar');
+function wp_explorer_getvar($var = '')
+{
+ if (!in_array($var, array('REQUEST_URI', 'PATH_INFO'))) $var = 'REQUEST_URI';
+ $req = $_SERVER[$var];
+ if (preg_match('!^(.+/)browse/?(.*)?$!', $req, $match) && (url_to_postid($req) == 0))
+ {
+ $_GET['browse'] = $match[2];
+ $req = $match[1].'?browse='.$match[2];
+ $_SERVER[$var] = $req;
+ }
+ if (($var != 'PATH_INFO') && isset($_SERVER['PATH_INFO']))
+ {
+ wp_explorer_getvar('PATH_INFO');
+ }
+}
+
+add_action('admin_menu', 'wp_explorer_menu');
+function wp_explorer_menu()
+{
+ if(function_exists('add_menu_page'))
+ {
+ add_menu_page('WP Explorer', 'WP Explorer', 'manage_options', 'wp-explorer/wp-explorer-options.php') ;
+ }
+
+}
+
+add_action('activate_wp-explorer/wp-explorer.php', 'wp_explorer_install');
+function wp_explorer_install()
+{
+ require ('inc/functions_misc.php');
+ add_option('wp_explorer_options', wp_explorer_opmap(), '', 'no');
+}
+
+add_action('deactivate_wp-explorer/wp-explorer.php', 'wp_explorer_uninstall');
+function wp_explorer_uninstall()
+{
+ delete_option('wp_explorer_options');
+}
+
+add_filter('single_post_title', wp_explorer_location, 99999, 1);
+function wp_explorer_location()
+{
+ $arg = func_get_args();
+ $nargs = func_num_args();
+ $folders = array_map("urldecode", array_values(array_filter(explode('/', $_GET['browse']))));
+ if($nargs == 1)
+ {
+ $title = $arg[0];
+ return (!count($folders) ? $title : $title.' » '.implode(' » ', $folders));
+ }
+ elseif($nargs == 2)
+ {
+ $url = $arg[0];
+ $pretty = $arg[1];
+ $loc[] = __('Root', 'wp-explorer');
+ }
+ else { die("I don't Know You");}
+
+ foreach($folders AS $folder)
+ {
+ $tmp .= $folder;
+ $tlink = str_replace('%browse%', $tmp, $url);
+ $tlink = $pretty ? str_replace(array('/?browse=', '?browse=', '&browse='), '/browse/', $tlink) : $tlink;
+ $loc[] = '<a href="'.$tlink.'">'.$folder.'</a>';
+ $tmp .= '/';
+ }
+ return implode((count($loc) > 1 ? ' » ' : ''), $loc);
+}
+
+add_shortcode('wp_explorer', 'wp_explorer_caption');
+function wp_explorer_caption( $atts, $content = null )
+{
+ if(trim($content) == null) return;
+ load_plugin_textdomain('wp-explorer', 'wp-content/plugins/wp-explorer');
+ require ('inc/functions_misc.php');
+
+ $cfg = get_option('wp_explorer_options');
+ $no_folders = explode(',', $cfg['exclude_folders']);
+ $no_files = explode(',', $cfg['exclude_files']);
+ $no_ext = explode(',', $cfg['exclude_extensions']);
+ // Edit MP3
+ $spe_ext = ".mp3";
+ // ---
+ array_walk($no_folders, 'trim');
+ array_walk($no_files, 'trim');
+ array_walk($no_ext, 'trim');
+
+ $main_dir = trim(trim($content), '/');
+ $condom = $main_dir.'/.htaccess';
+ $siteurl = get_bloginfo('siteurl');
+ $url = get_permalink();
+
+ if($cfg['enable_antileech'])
+ {
+ if(!file_exists($condom))
+ {
+ $file = @fopen($condom, 'w');
+ if($file)
+ {
+ $patterns = array('http://', 'https://', 'www.', 'WWW.');
+ $cofipr = "RewriteEngine on\n";
+ $cofipr .= "RewriteCond %{HTTP_REFERER} !^http://(www\.)?".str_replace($patterns, '', $siteurl)."/(/)?.*$ [NC]\n";
+ $cofipr .= "RewriteRule .*\.*$ http://".str_replace($patterns, '', $url)." [R,NC]\n";
+ $cofipr .= "Options -Indexes";
+
+ fwrite($file, $cofipr);
+ fclose($file);
+ $leech_protection = __('Leech protection: ON', 'wp-explorer');
+
+ }
+ else
+ {
+ $leech_protection = __('Leech protection: Failed', 'wp-explorer');
+ }
+ }
+ else
+ {
+ $leech_protection = __('Leech protection: ON', 'wp-explorer');
+ }
+ }
+ elseif(!$cfg['enable_antileech'])
+ {
+ if(file_exists($condom)) unlink($condom);
+ $leech_protection = __('Leech protection: OFF', 'wp-explorer');
+ }
+
+ if($_GET['browse'] != '')
+ {
+ $_GET['browse'] = str_replace('<', '<', trim($_GET['browse']));
+ $f = $main_dir.'/'.urldecode($_GET['browse']);
+ }
+
+ if(is_dir($f))
+ {
+ $patterns = array(".", "/");
+ $real = str_replace($patterns, "", $main_dir);
+ $check = str_replace($patterns, "", $f);
+ $re = strlen($real);
+ if(substr($check, 0, $re)!= $real) $f = $main_dir;
+ if(substr($f,0,2) == ".." || substr($f,0,1) == "/" || $f == "./" || stristr($f, '../')) $f = $main_dir;
+ }
+ else
+ {
+ $f = $main_dir;
+ }
+
+ $files = array();
+ if(is_dir($f) && $handle = opendir($f))
+ {
+ $phrase['location'] = __('You are here:', 'wp-explorer');
+ $basedirurl = add_query_arg('browse', '%browse%', $url);
+ $location = wp_explorer_location($basedirurl, $cfg['enable_fancylinks']);
+
+ while(false !==($file = readdir($handle)))
+ {
+ if($file != '..' && $file != '.')
+ {
+ $filesize = @filesize($f.'/'.$file);
+ $files[] = array("name" => $file, "size" => size_format($filesize, 2), "date" => gmdate("d/m/Y",filemtime($f.'/'.$file)));
+ }
+ }
+ closedir($handle);
+ sort($files);
+
+ $dir_jj = $file_ii = 0;
+ foreach($files as $file)
+ {
+ $file['address'] = $f.'/'.$file['name'];
+ if(is_dir($file['address']) && !in_array($file['name'], $no_folders))
+ {
+ $dir_jj++;
+ $file['icon'] = 'folder.gif';
+ $file['url'] = urlencode($f.'/'.$file['name']);
+ $file['url'] = str_replace('%2F', '/', $file['url']);
+ $file['url'] = str_replace($main_dir.'/', '', $file['url']);
+ $file['url'] = str_replace('%browse%', $file['url'], $basedirurl);
+ $file['url'] = $cfg['enable_fancylinks'] ? str_replace(array('/?browse=', '?browse=', '&browse='), '/browse/', $file['url']) : $file['url'];
+ $file['class'] = $dir_jj % 2 == 0 ? 'even' : 'odd';
+ eval('$dirbit .= "' . wp_explorer_preptmp($cfg['tmp_dirbit']) . '";');
+ }
+ elseif(is_file($file['address']) && !in_array($file['name'], $no_files))
+ {
+ $file['ext'] = strtolower(substr(strrchr($file['name'], '.'), 1));
+ if(in_array($file['ext'], $no_ext)) continue;
+
+ $file_ii++;
+ $filename = explode("_", $file['name']);
+ $version = str_replace('.'.$file['ext'], '', end($filename));
+ $version = is_numeric($version) ? $version : '';
+ $file['version'] = empty($version) ? ' ' : $version;
+ $file['icon'] = substr(strrchr($file['name'], '.'), 1).'.gif';
+ $file['icon'] = file_exists('wp-content/plugins/wp-explorer/icons/'.$file['icon']) ? $file['icon'] : "unknown.png";
+ $file['name'] = wp_explorer_sanitize($file['name'], $file['ext'], $version);
+ ///$file['url'] = $file['address'];
+ $file['url'] = "/non-classe/telecharger/?URL=".$file['address'];
+ $file['class'] = $file_ii % 2 == 0 ? 'even' : 'odd';
+
+ // Edit MP3 / IRI ----------------------------------
+
+ if ($file['ext'] == "mp3"){
+ $file['player']="<script type='text/javascript' src='".get_bloginfo('stylesheet_directory')."/player/swfobject.js'></script>
+ <div id='mediaspace".$file_ii."'>Wait for the player of ".$filename."</div>
+ <script type='text/javascript'>
+ var so = new SWFObject('".get_bloginfo('stylesheet_directory')."/player/player.swf','ply','250','24','9','#EFEFEF');
+ so.addParam('allowfullscreen','true');
+ so.addParam('allowscriptaccess','always');
+ so.addParam('wmode','transparent');
+ so.addVariable('file','".get_bloginfo('url')."/".$file['address']."');
+ so.write('mediaspace".$file_ii."');
+ </script>";
+ } else if ($file['ext'] == "iri"){
+ $file['url']= $file['url']."&EXT=IRI";
+ } else {
+ $file['player']="";//$file['ext'];
+ }
+ //--------------------------------------------
+ eval('$filebit .= "' . wp_explorer_preptmp($cfg['tmp_filebit']) . '";');
+ }
+ }
+ $phrase['name'] = __('Name', 'wp-explorer');
+ $phrase['date'] = __('Last Modification Date', 'wp-explorer');
+
+ if($dirbit)
+ {
+ eval('$display_dirs .= "' . wp_explorer_preptmp($cfg['tmp_dirtbl']) . '";');
+ }
+ if($filebit)
+ {
+ $phrase['size'] = __('Size', 'wp-explorer');
+ $phrase['version'] = __('Version', 'wp-explorer');
+ eval('$display_files .= "' . wp_explorer_preptmp($cfg['tmp_filetbl']) . '";');
+ }
+ $folder_stats = sprintf(__('There are %1$s folders and %2$s files here.', 'wp-explorer'), $dir_jj, $file_ii);
+ eval('$html .= "' . wp_explorer_preptmp($cfg['tmp_main']) . '";');
+ }
+ else
+ {
+ $error_message = __("ERROR: I have no right to access this folder or this folder doesn't exist.", 'wp-explorer');
+ eval('$html .= "' . wp_explorer_preptmp($cfg['tmp_error']) . '";');
+ }
+ return $html;
+}
+
+?>
\ No newline at end of file