2014-10-11 4 views
0

하나 개의 폴더에 대한 Roundcube에서 "앞으로"버튼을 비활성화 PHP 스크립트를 사용하여 imap 서버의 특정 "Mails Groupés"폴더에 이메일을 저장합니다. 이것은 메일을 Roundcube (내가 지키고 자하는 기능)를 통해 볼 수있게하지만 앞으로 전달 될 수도 있습니다. 그리고 나는 절대 원하지 않습니다. 그래서 나는 꼭대기 술집을 무력화하고 싶습니다. 버튼을 임시 솔루션으로 사용합니다.플러그인 나는 단지 하나의 특정 폴더에 대한 Roundcube 메뉴 표시 줄에서 모든 버튼을 비활성화 할 수있는 빠른 방법을 찾고 있어요

Roundcube 플러그인을 사용하는 것이 가능하지만 Roundcube 플러그인 개발에 대한 내 머리를 얻지는 못했지만 아직 답변을 찾는 동안 도움이 될만한 점이 많습니다.

답변

1

좋아, 그래서 나는 대답을 찾을 수 있었다.

guide to build plugins for Roundcube을 사용하여 [roundcubeRoot]/plugin/no_forward_for_groupes 폴더에 "no_forward_for_groupes"플러그인을 설정했습니다. 나는 다른 플러그인으로

$config['plugins'] = array('no_forward_for_groupes'); 

을 wrtiting하여 [roundcubeRoot]/config/config.inc.php 파일에 활성화.

[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 
}