예제 #1
0
 public function minify($cacheFile = null, $dir = null)
 {
     if ($dir === null) {
         $dir = dirname($_SERVER['SCRIPT_FILENAME']);
     }
     // MODIFICATION TIME FILES
     $mtFiles = array(__FILE__, $_SERVER['SCRIPT_FILENAME'], "conf/config.php");
     // GET SOURCE CODE FILES
     $files = dir::content($dir, array('types' => "file", 'pattern' => '/^.*\\.' . $this->type . '$/'));
     // GET NEWEST MODIFICATION TIME
     $mtime = 0;
     foreach (array_merge($mtFiles, $files) as $file) {
         $fmtime = filemtime($file);
         if ($fmtime > $mtime) {
             $mtime = $fmtime;
         }
     }
     $header = "Content-Type: {$this->mime[$this->type]}";
     // GET SOURCE CODE FROM CLIENT HTTP CACHE IF EXISTS
     httpCache::checkMTime($mtime, $header);
     // OUTPUT SOURCE CODE
     header($header);
     // GET SOURCE CODE FROM SERVER-SIDE CACHE
     if ($cacheFile !== null && file_exists($cacheFile) && (filemtime($cacheFile) >= $mtime || !is_writable($cacheFile))) {
         // with its distribution content
         readfile($cacheFile);
         die;
     }
     // MINIFY AND JOIN SOURCE CODE
     $source = "";
     foreach ($files as $file) {
         if (strlen($this->minCmd) && substr($file, 4, 1) != "_") {
             $cmd = str_replace("{file}", $file, $this->minCmd);
             $source .= `{$cmd}`;
         } else {
             $source .= file_get_contents($file);
         }
     }
     // UPDATE SERVER-SIDE CACHE
     if ($cacheFile !== null && (is_writable($cacheFile) || !file_exists($cacheFile) && dir::isWritable(dirname($cacheFile)))) {
         file_put_contents($cacheFile, $source);
         touch($cacheFile, $mtime);
     }
     // OUTPUT SOURCE CODE
     echo $source;
 }
예제 #2
0
 protected function getDirInfo($dir, $removable = false)
 {
     if (substr(basename($dir), 0, 1) == "." || !is_dir($dir) || !is_readable($dir)) {
         return false;
     }
     $dirs = dir::content($dir, array('types' => "dir"));
     if (is_array($dirs)) {
         foreach ($dirs as $key => $cdir) {
             if (substr(basename($cdir), 0, 1) == ".") {
                 unset($dirs[$key]);
             }
         }
         $hasDirs = count($dirs) ? true : false;
     } else {
         $hasDirs = false;
     }
     $writable = dir::isWritable($dir);
     $info = array('name' => stripslashes(basename($dir)), 'readable' => is_readable($dir), 'writable' => $writable, 'removable' => $removable && $writable && dir::isWritable(dirname($dir)), 'hasDirs' => $hasDirs);
     if ($dir == "{$this->config['uploadDir']}/{$this->session['dir']}") {
         $info['current'] = true;
     }
     return $info;
 }
예제 #3
0
 *   @version 3.0-dev
 *    @author Pavel Tzonkov <*****@*****.**>
 * @copyright 2010-2014 KCFinder Project
 *   @license http://opensource.org/licenses/GPL-3.0 GPLv3
 *   @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
 *      @link http://kcfinder.sunhater.com
 */
namespace kcfinder;

require "core/autoload.php";
if (!isset($_GET['lng']) || $_GET['lng'] == 'en') {
    header("Content-Type: text/javascript");
    die;
}
$file = "lang/" . $_GET['lng'] . ".php";
$files = dir::content("lang", array('types' => "file", 'pattern' => '/^.*\\.php$/'));
if (!in_array($file, $files)) {
    header("Content-Type: text/javascript");
    die;
}
$mtime = @filemtime($file);
if ($mtime) {
    httpCache::checkMTime($mtime);
}
require $file;
header("Content-Type: text/javascript; charset={$lang['_charset']}");
foreach ($lang as $english => $native) {
    if (substr($english, 0, 1) != "_") {
        echo "browser.labels['" . text::jsValue($english) . "']=\"" . text::jsValue($native) . "\";";
    }
}
예제 #4
0
<?php

/** This file is part of KCFinder project
 *
 *      @desc Join all JavaScript files in current directory
 *   @package KCFinder
 *   @version 2.4
 *    @author Pavel Tzonkov <*****@*****.**>
 * @copyright 2010, 2011 KCFinder Project
 *   @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2
 *   @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2
 *      @link http://kcfinder.sunhater.com
 */
chdir("..");
// For compatibality
chdir("..");
require "lib/helper_httpCache.php";
require "lib/helper_dir.php";
$files = dir::content("js/browser", array('types' => "file", 'pattern' => '/^.*\\.js$/'));
foreach ($files as $file) {
    $fmtime = filemtime($file);
    if (!isset($mtime) || $fmtime > $mtime) {
        $mtime = $fmtime;
    }
}
httpCache::checkMTime($mtime);
header("Content-Type: text/javascript");
foreach ($files as $file) {
    require $file;
}
예제 #5
0
 protected function getLangs()
 {
     if (isset($this->session['langs'])) {
         return $this->session['langs'];
     }
     $files = dir::content("lang", array('pattern' => '/^[a-z]{2,3}(\\-[a-z]{2})?\\.php$/', 'types' => "file"));
     $langs = array();
     if (is_array($files)) {
         foreach ($files as $file) {
             include $file;
             $id = substr(basename($file), 0, -4);
             $langs[$id] = isset($lang['_native']) ? $lang['_native'] : (isset($lang['_lang']) ? $lang['_lang'] : $id);
         }
     }
     $this->session['langs'] = $langs;
     return $langs;
 }
예제 #6
0
 protected function getFiles($dir)
 {
     $thumbDir = "{$this->config['uploadDir']}/{$this->config['thumbsDir']}/{$dir}";
     $dir = "{$this->config['uploadDir']}/{$dir}";
     $return = array();
     $files = dir::content($dir, array('types' => "file"));
     if ($files === false) {
         return $return;
     }
     foreach ($files as $file) {
         $img = new fastImage($file);
         $type = $img->getType();
         if ($type !== false) {
             $size = $img->getSize($file);
             if (is_array($size) && count($size)) {
                 $thumb_file = "{$thumbDir}/" . basename($file);
                 if (!is_file($thumb_file)) {
                     $this->makeThumb($file, false);
                 }
                 $smallThumb = $size[0] <= $this->config['thumbWidth'] && $size[1] <= $this->config['thumbHeight'] && in_array($type, array("gif", "jpeg", "png"));
             } else {
                 $smallThumb = false;
             }
         } else {
             $smallThumb = false;
         }
         $img->close();
         $stat = stat($file);
         if ($stat === false) {
             continue;
         }
         $name = basename($file);
         $ext = file::getExtension($file);
         $bigIcon = file_exists("themes/{$this->config['theme']}/img/files/big/{$ext}.png");
         $smallIcon = file_exists("themes/{$this->config['theme']}/img/files/small/{$ext}.png");
         $thumb = file_exists("{$thumbDir}/{$name}");
         $return[] = array('name' => stripcslashes($name), 'size' => $stat['size'], 'mtime' => $stat['mtime'], 'date' => @strftime($this->dateTimeSmall, $stat['mtime']), 'readable' => is_readable($file), 'writable' => file::isWritable($file), 'bigIcon' => $bigIcon, 'smallIcon' => $smallIcon, 'thumb' => $thumb, 'smallThumb' => $smallThumb);
     }
     return $return;
 }
예제 #7
0
 static function get_couch_thumbs($filename, $dir = null)
 {
     if ($dir === null) {
         // filename is a full path containing the folder
         $dir = dirname($filename);
     }
     $filename = basename($filename);
     $ext = file::getExtension($filename, false);
     $name = strlen($ext) ? substr($filename, 0, -strlen($ext) - 1) : $filename;
     $thumbs = dir::content($dir, array('types' => "file", 'pattern' => "/{$name}(?:-\\d{1,}x\\d{1,})\\.{$ext}/i"));
     if ($thumbs === false) {
         return array();
     }
     return $thumbs;
 }
예제 #8
0
<?php

/** This file is part of KCFinder project
 *
 *      @desc Join all JavaScript files in current directory
 *   @package KCFinder
 *   @version 2.51
 *    @author Pavel Tzonkov <*****@*****.**>
 * @copyright 2010, 2011 KCFinder Project
 *   @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2
 *   @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2
 *      @link http://kcfinder.sunhater.com
 */
// chdir(".."); // For compatibality
// chdir("..");
require INST_PATH . "vendors/kcfinder/lib/helper_httpCache.php";
require INST_PATH . "vendors/kcfinder/lib/helper_dir.php";
$files = dir::content(INST_PATH . "vendors/kcfinder/js/browser", array('types' => "file", 'pattern' => '/^.*\\.js$/'));
sort($files);
foreach ($files as $file) {
    $fmtime = filemtime($file);
    if (!isset($mtime) || $fmtime > $mtime) {
        $mtime = $fmtime;
    }
}
httpCache::checkMTime($mtime);
header("Content-Type: text/javascript");
foreach ($files as $file) {
    require $file;
}