<?php 
function makeOSPath($path){ 
  $path = base64_decode($path); 
  if(DIRECTORY_SEPARATOR === '\\'){ 
    // Windows 
    $drive = substr(L_DIR, 0, 2); 
    if($path == "/" || $path == ""){ 
      $path = $drive . "\\"; 
    }else{ 
      //$path = substr_replace($path, "$drive/", 0, 1); 
      $path = str_replace('/', '\\', $path); 
    } 
  }else{ 
    if($path == "/" || $path == ""){ 
      $path = "/"; 
    }else{ 
      $path = str_replace('\\', '/', $path); 
    } 
  } 
  return $path; 
} 
 
$homeFolder = \Lobby::getSysInfo("home_folder"); 
// Folder path 
if(!file_exists($homeFolder)) 
  define('FP_ROOT_PATH', makeOSPath("/")); 
else 
  define('FP_ROOT_PATH', makeOSPath($homeFolder)); 
 
if(\Lobby\Modules::exists("indi")){ 
  /** 
   * If `indi` module is enabled, don't use FilePicker 
   */ 
  return false; 
  exit; 
} 
 
if(isset($_GET['img'])){ 
  $img_path = FP_ROOT_PATH . base64_decode($_GET['img']); 
 
  $img = getimagesize($img_path); 
  if(is_array($img)){ 
    $fp = fopen($img_path, 'rb'); 
    header('Content-Type: ' . $size['mime']); 
    header('Content-Length: ' . filesize($img_path)); 
    fpassthru($fp); 
    exit; 
  } 
}else{ 
  /** 
   * Program Name: File Picker 
   * Program URI: http://code.google.com/p/file-picker/ 
   * Description: This program will let you browse server-side folders and files 
   *                 like a Windows Explorer, and you can pick several files that you 
   *                 want to process in somewhere. 
   * 
   * Copyright (c) 2008-2009 Hpyer (coolhpy[at]163.com) 
   * Dual licensed under the MIT (MIT-LICENSE.txt) 
   * and GPL (GPL-LICENSE.txt) licenses. 
   */ 
 
  // -------------------- Configration begin ------------------------- 
 
  // Language [Default: en] 
  define('FP_LANGUAGE', 'en'); 
 
  // Date format [Default: Y-m-d] 
  define('FP_DATE', 'Y-m-d'); 
 
  // Time format [Default: H:i:s] 
  define('FP_TIME', 'H:i:s'); 
 
  // Separator thousand [Default: ,] 
  define('FP_THOUSAND', ','); 
 
  // Decimal point [Default: .] 
  define('FP_DECIMAL', '.'); 
 
  // Number of decimals to display [Default: 2] 
  define('FP_DECIMAL_NUM', 2); 
 
  // How many level of FP_ROOT_PATH that user can visit, 0 means root only [Default: 1] 
  // 0 means root only, -1 means unlimited 
  // @since: 1.1.1 
  // (Not ready for 1.1 - Nov. 10, 2009) 
  // define('FP_DIR_LEVEL', 1); 
 
  // --------------------- Configration end -------------------------- 
 
 
  header('Content-Type: text/html; charset=UTF-8'); 
 
  define('FP_SCRIPT_ROOT', dirname(__DIR__)); 
  define('FP_CLASS_ROOT', FP_SCRIPT_ROOT . '/inc'); 
 
  require_once(FP_CLASS_ROOT . '/FilePicker.php'); 
 
  $fp = new FilePicker(function($e){ 
    if($e === "permission_denied"){ 
      echo $e; 
    } 
    exit; 
  }); 
  $action = \Request::get('action'); 
 
  switch ($action){ 
    case 'list': 
      $dir = base64_encode(makeOSPath(\Request::postParam("dir", "/"))); 
      $filter = isset($_POST['filter']) ? $_POST['filter'] : 0; 
      echo $fp->get_list($dir, $filter); 
      break; 
    case 'info': 
      $dir = base64_encode(makeOSPath(\Request::postParam("dir", "/"))); 
      $file = \Request::postParam("file", ""); 
      echo $fp->get_info($dir, $file); 
      break; 
  /* 
    case 'new': 
      $dir = $_POST['dir'] ? $_POST['dir'] : '/'; 
      $folder = $_POST['folder'] ? $_POST['folder'] : 'New Folder'; 
      $fp->new_folder($dir, $folder); 
      break; 
  */ 
    default : 
      $filter = \Request::get('filter'); 
      $filters = ''; 
      $filters = $fp->get_filters($filter); 
 
      $dir = makeOSPath(\Request::postParam("dir", "/")); 
      $dir_b64 = base64_encode($dir); 
      ob_start(); 
  ?> 
      <div class="Lobby-FS-filepicker-picker-nav"> 
        <table cellspacing="0" cellpadding="0"><tr> 
          <td class="label"><label><?php _e('Folder'); ?></label></td> 
          <td> 
            <input type="text" id="target_dir_path" value="<?php echo $dir_b64;?>" /> 
            <input type="hidden" id="target_dir" value="<?php echo $dir_b64;?>" /> 
          </td> 
          <td> 
            <li><img id="btn_refresh" src="<?php echo L_URL;?>/includes/lib/modules/filepicker/image/refresh.svg" alt="<?php _e('Refresh'); ?>" /></li> 
            <li><img id="btn_up" src="<?php echo L_URL;?>/includes/lib/modules/filepicker/image/up.svg" alt="<?php _e('Up'); ?>" /></li> 
          </td> 
        </tr></table> 
      </div> 
      <div class="Lobby-FS-filepicker-picker-body row"> 
        <div id="viewbox" class="col l8"> 
          <img id="loading_img" src="<?php echo L_URL;?>/includes/lib/modules/filepicker/image/loading.gif" alt="<?php _e('Loading...'); ?>" /> 
          <ul id="list"></ul> 
        </div> 
        <div id="info_box" class="col l8"></div> 
      </div> 
      <div class="Lobby-FS-filepicker-picker-footer"> 
        <table cellspacing="0" cellpadding="0"> 
          <tr> 
            <td class="label"><label><?php _e('Filter'); ?></label>:</td> 
            <td><select id="filter_box" class="select"><?php echo $filters; ?></select></td> 
          </tr> 
        </table> 
        <table cellspacing="0" cellpadding="0"> 
          <tr> 
            <td class="label"><label for="filename_box"><?php _e('Filename'); ?></label>:</td> 
            <td><input type="text" id="filename_box" name="filename" value="" class="select2" /></td> 
            <td> 
              <input type="button" id="btn_complete" value="<?php _e('OK'); ?>" class="btn green" />  
              <input type="button" id="btn_cancel" value="<?php _e('Cancel'); ?>" class="btn red" /> 
            </td> 
          </tr> 
        </table> 
      </div> 
  <?php 
      $html = ob_get_contents(); 
      ob_end_clean(); 
      echo json_encode(array( 
        "dir" => FP_ROOT_PATH, 
        "html" => $html 
      )); 
    continue; 
  } 
} 
 
 |