我正在寻找一种快速方法来禁用Roundcube菜单栏中仅针对一个特定文件夹的所有按钮:
我正在使用PHP脚本将电子邮件保存到imap服务器上的特定“MailsGroupés”文件夹中。这导致邮件通过Roundcube可见(这是我想保留的功能),但也能够前进,发送...而且我绝对不希望这样,所以我想禁用顶部栏按钮,作为临时解决方案。
我确信使用Roundcube插件可以实现这一点,但我还没有深入了解Roundcube插件开发,我真的很感激一些帮助,而我仍在寻找答案。< / p>
答案 0 :(得分:1)
好的,所以我设法找到答案。
使用guide to build plugins for Roundcube,我设置了一个&#34; no_forward_for_groupes&#34;插件,在[roundcubeRoot]/plugin/no_forward_for_groupes
文件夹中。我通过wrtiting
[roundcubeRoot]/config/config.inc.php
文件中激活了它
$config['plugins'] = array('no_forward_for_groupes');
与任何其他插件一样。
在[roundcubeRoot]/program/js/app.js
文件(Roundcube的核心JS)中进行了一些阅读和研究之后,我发现了我需要处理的对象以及要监听的事件。最后的代码就在之后。如您所见,我禁用了许多其他命令,以及拖放。所以基本上我有一个只读文件夹,你无法收到任何邮件。我知道这是一个特定的用例,但我希望有一天它可以帮助一些人!
<强> no_forward_for_groupes.php 强>
<?php
/**
* No Forward For Groups
*
* This plugin disables the Send / Forward menus from the Mails_Groupes folder
*
* @version 0.1
* @author Remy Sanfeliu
*/
class no_forward_for_groupes extends rcube_plugin
{
public $task = 'mail';
function init(){
$this->include_script('no_forward_for_groupes.js');
}
}
<强> no_forward_for_groupes.js 强>
/**
* No Forward For Groups
*
* This plugin disables the Send / Forward menus from the Mails_Groupes folder
*
* @version 0.1
* @author Remy Sanfeliu
*/
window.rcmail.addEventListener('listupdate', function(folder, old) {
if (folder.folder=="SENT.Mails_Groupes"){
window.rcmail.message_list.addEventListener('select', select_msglist);
window.rcmail.message_list.addEventListener('dragstart', do_nothing);
window.rcmail.message_list.addEventListener('dragmove', do_nothing);
window.rcmail.message_list.addEventListener('dragend', do_nothing);
}else{
window.rcmail.message_list.removeEventListener('select', select_msglist);
window.rcmail.message_list.removeEventListener('dragstart', do_nothing);
window.rcmail.message_list.removeEventListener('dragmove', do_nothing);
window.rcmail.message_list.removeEventListener('dragend', do_nothing);
}
});
function select_msglist(list){
window.rcmail.enable_command( 'reply',
'reply-all',
'reply-list',
'move',
'copy',
'delete',
'mark',
'edit',
'forward',
'forward-attachment',
'forward-inline',
false);
}
function do_nothing(){
// DO NOTHING
}