82 lines
2.3 KiB
JavaScript
82 lines
2.3 KiB
JavaScript
/*! jQuery adapter for KCFinder
|
|
* http://kcfinder.sunhater.com
|
|
* Pavel Tzonkov <sunhater@sunhater.com>
|
|
*/
|
|
/* BASE USAGE:
|
|
* <div id="filemanager" style="width:700px;height:400px"></div>
|
|
* <script>
|
|
* $('#filemanager').kcfinder();
|
|
* </script>
|
|
*/
|
|
|
|
(function($) {
|
|
var defaultURL = "browse.php"; // Define here your default URL to KCFinder
|
|
|
|
$.fn.kcfinder = function(options) {
|
|
|
|
var url, i,
|
|
t = $(this).get(0),
|
|
|
|
// Default options
|
|
o = {
|
|
url: defaultURL,
|
|
lang: "",
|
|
theme: "",
|
|
type: "",
|
|
dir: "",
|
|
callback: false,
|
|
callbackMultiple: false
|
|
},
|
|
ifr = $('<iframe></iframe>'),
|
|
|
|
// GET parameters to parse URL
|
|
parse = ['lang', 'theme', 'type', 'dir'];
|
|
|
|
$.extend(true, o, options);
|
|
|
|
// Parse URL
|
|
url = o.url;
|
|
url += (url.indexOf('?') === -1) ? '?' : "&";
|
|
for (i in parse) {
|
|
i = parse[i];
|
|
if (o[i].length)
|
|
url += i + "=" + encodeURIComponent(o[i]) + "&";
|
|
}
|
|
url = url.substr(0, url.length - 1);
|
|
|
|
// Iframe setup
|
|
ifr.css({
|
|
margin: 0,
|
|
padding: 0,
|
|
width: $(t).innerWidth(),
|
|
height: $(t).innerHeight(),
|
|
border: "none"
|
|
}).attr({
|
|
src: url
|
|
});
|
|
|
|
$(t).html(ifr);
|
|
|
|
// Callbacks
|
|
if ($.isFunction(o.callback) || $.isFunction(o.callbackMultiple)) {
|
|
if (!window.KCFinder)
|
|
window.KCFinder = {};
|
|
|
|
// Single file callback
|
|
if ($.isFunction(o.callback))
|
|
window.KCFinder.callBack = o.callback;
|
|
else if (window.KCFinder && window.KCFinder.callback)
|
|
delete window.KCFinder.callback;
|
|
|
|
// Multiple files callback
|
|
if ($.isFunction(o.callbackMultiple))
|
|
window.KCFinder.callBackMultiple = o.callbackMultiple;
|
|
else if (window.KCFinder && window.KCFinder.callbackMultiple)
|
|
delete window.KCFinder.callbackMultiple;
|
|
|
|
// No callbacks
|
|
} else if (window.KCFinder)
|
|
delete window.KCFinder;
|
|
}
|
|
|
|
})(jQuery); |