Я ищу быстрый способ отключить все кнопки в строке меню Roundcube только для одной конкретной папки:
Я сохраняю, используя скрипт PHP, электронные письма в определенную папку «Mails Groupés» на сервере imap. Это приводит к тому, что письма видны через Roundcube (это функция, которую я хочу сохранить), но они также могут пересылать, отправлять … И я абсолютно не хочу этого, поэтому я бы хотел отключить верхнюю панель кнопки, как временное решение.
Я уверен, что этого можно добиться с помощью плагина Roundcube, но я еще не слишком задумывался над разработкой плагина Roundcube, я был бы очень признателен за некоторую помощь, пока я все еще ищу ответ.
Итак, мне удалось найти ответ.
С использованием руководство по созданию плагинов для Roundcube, Я установил плагин no_forward_for_groupes, в [roundcubeRoot]/plugin/no_forward_for_groupes
папка. Я активировал его в [roundcubeRoot]/config/config.inc.php
файл путем написания
$config['plugins'] = array('no_forward_for_groupes');
как и любой другой плагин.
После небольшого чтения и исследования в [roundcubeRoot]/program/js/app.js
файл (ядро JS Roundcube), я нашел объект, с которым мне нужно действовать, и события, которые нужно прослушать. Окончательный код только после. Как видите, я отключил множество других команд, а также перетаскивание. В общем, у меня есть папка только для чтения, из которой вы не можете получать письма. Я знаю, что это своего рода конкретный вариант использования, но я надеюсь, что это когда-нибудь поможет некоторым людям!
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
}
Других решений пока нет …