user icon

Roundcubeのボタンの使い方

Roundcubeのボタンの使い方を紹介します。

①テンプレートへの設置方法は以下のようになります。


このように書いておくと、次のように出力されます。


②イベントをどう処理するか?

このように書きます。

if (window.rcmail) {
rcmail.addEventListener('init', function() {
rcmail.enable_command('get_data', true);
});
}

rcube_webmail.prototype.get_data = function()
{
console.log('get_data');
}

③rcmail.enable_command(‘get_data’, true);の
 最後の引数でそのボタンを有効にするか無効にするか指定します。
  試しに2つのボタンを設置してみます。



デフォルトではどちらも無効になります。

次のようにjavascriptを記述します。

if (window.rcmail) {
rcmail.addEventListener('init', function() {
rcmail.enable_command('btn1', true);
rcmail.enable_command('btn2', false);
});
}
rcube_webmail.prototype.btn1 = function()
{
console.log('btn1');
}
rcube_webmail.prototype.btn2 = function()
{
console.log('btn2');
}

ボタンは2つとも見かけ上有効になります。
しかし、ボタン1をクリックするとコンソールに’btn1’が表示されますが、ボタン2をクリックしても何も起こりません。

④引数を渡すにはどうするか。

prop属性を指定します。
このように書くと


次のように出力してくれます。


  rcmail.command(‘btn1′,’test’,this)この部分の第二引数にpropで指定した値が入ってきます。

  javascript側では第一引数で取得します。

rcube_webmail.prototype.btn1 = function(value)
{
console.log(value);
}

上記のように記述するとコンソールに’test’と表示されます。

⑤複数の引数を指定出来るか。

ボタンのclick処理を出力するのは
/roundcuberoot/program/include/rcube_template.phpの978行目の以下のコードになります。

$attrib['onclick'] = sprintf(
"return %s.command('%s','%s',this)",
JS_OBJECT_NAME,
$command,
$attrib['prop']
);

上記のコードの通り、複数の引数を指定することは無理そうですね・・。

Facebooktwitterlinkedintumblrmail
名前
E-mail
URL
コメント

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)