问题描述
我有自定义文件类型,或者不支持缩略图的文件类型,因为 ckfinder 仅支持图像类型。
finder.on('file:getThumb',function (evt) {
evt.stop();
Object.assign(evt.data.templateData,evt.data);
evt.data.template = `http://example.com/images/{{= it.url }}`;
});
解决方法
事实证明,您需要进行一些修补才能实现这一点。
需要 CKFinder/Modules/Files/Views/ThumbnailsView/FileRenderer
并修补返回的模板字符串以强制所有文件类型具有缩略图。
CKFinder.define(
['backbone','marionette','doT','CKFinder/Modules/Files/Views/ThumbnailsView/FileRenderer'],CKFinderPlugin
);
function CKFinderPlugin(Backbone,Marionette,doT,fileRenderer) {
fileRenderer.prototype.preRenderOrigin = fileRenderer.prototype.preRender;
fileRenderer.prototype.preRender = function () {
var args = Array.from(arguments);
var response = fileRenderer.prototype.preRenderOrigin.apply(this,args);
return response.replace('ckf-file-icon','ckf-lazy-thumb');
};
return {
init(finder) {},lib: [Backbone,fileRenderer],};
}