【发布时间】:2016-05-19 05:59:48
【问题描述】:
我正在使用 elfinder 定制一个共享按钮,有关于如何自定义右键菜单的教程,我已经实现了它。但是,有一些规则我想申请菜单
1) For folder only, exclude the button for file
2) For root level only, exclude the button for sub level folder
3) For single folder only, if select more than one folder will exclude the button
这是当前代码,现在有分享按钮,但没有上述规则:
elFinder.prototype.i18.zh_TW.messages['cmdsharefolder'] = 'Share';
elFinder.prototype._options.commands.push('sharefolder');
elFinder.prototype.commands.sharefolder = function () {
this.exec = function (hashes) {
//open share menu
}
this.getstate = function () {
return 0;
}
}
还有 elfinder 实例:
var elfinder = $('#elfinder').elfinder({
url: '<?= $connector; ?>',
soundPath: '<?= site_url('assets/plugins/elFinder/sounds/rm.wav'); ?>',
height: 700,
lang: 'zh_TW',
uiOptions: {
// toolbar configuration
toolbar: [
['back', 'forward'],
['reload'],
['mkdir', 'upload'],
['copy', 'cut', 'paste', 'rm'],
['rename'],
['view', 'sort']
]
},
contextmenu: {
navbar: ['open', '|', 'copy', 'cut', 'paste', 'duplicate', '|', 'rm', '|', 'info'],
cwd: ['reload', 'back', '|', 'upload', 'mkdir', 'paste', '|', 'info'],
files: [
'open', 'quicklook', 'sharefolder', '|', 'download', '|', 'copy', 'cut', 'paste', 'rm', '|', 'rename', '|', 'info'
]
},
ui: ['toolbar', 'tree', 'stat']
}).elfinder('instance');
问题是:
1) 如何应用上述规则? (如果规则不适用,可以通过勾选和弹出警告框来解决,请建议检查方式,谢谢)
2) 是否有任何方法可以捕获选择了哪个文件夹,例如完整文件夹路径等...
这是我研究过的文档,示例案例是通用的: https://github.com/Studio-42/elFinder/wiki/Custom-context-menu-command
非常感谢您的帮助。
【问题讨论】:
-
我猜你需要在 .getstate() 中玩 必须有 'this',其中包含 'files',所以我会分析它并基于它会 'return -1|0;'
-
文件夹分配了“目录”类,也许你可以根据类的存在来破解按钮?不确定根源......这个类似的话题可能比我更清楚:stackoverflow.com/questions/28926500/…
标签: javascript php jquery html elfinder