「オンラインユーザ」ブロックを教師以上にしか表示しないには?(1.8+)

「オンラインユーザ」ブロックを教師以上にしか表示しないには?(1.8+)

- Koji Yamada の投稿
返信数: 2
1.8.1なのですが,
「オンラインユーザ」ブロックを教師以上にしか表示しないようにしたいのですが,実際は,ログインしなくても見えてしまいます.
ロールの設定で表示,非表示できると思っていたのですが,できません.

http://moodle.org/mod/forum/discuss.php?d=35690
のように,ソースをいじらないとダメなのでしょうか.

まだ,ロールの設定を把握しきれていません.
もし,ソースをいじらないとダメな場合,このオンラインユーザブロックについてのロールの割当って何を意味するのでしょうか?
Koji Yamada への返信

Re: 「オンラインユーザ」ブロックを教師以上にしか表示しないには?(1.8+)

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
>ソースをいじらないとダメなのでしょうか.

はい、下記の修正をお試しください。ウインク

修正対象プログラム: blocks/online_users/block_online_users.php
修正箇所: 19行目
備考: 評定を管理する (moodle/course:managegrades) ケイパビリティを持ったユーザのみにオンラインユーザブロックを表示する。

[変更前]
function get_content() {
global $USER, $CFG, $COURSE;

if ($this->content !== NULL) {
return $this->content;
}

[変更後]
function get_content() {
global $USER, $CFG, $COURSE;

$isteacher = has_capability('moodle/course:managegrades', get_context_instance(CONTEXT_COURSE, $courseid));
if (!$isteacher) {
return NULL;
}

if ($this->content !== NULL) {
return $this->content;
}


> もし,ソースをいじらないとダメな場合,このオンラインユーザブロックについてのロールの割当って何を意味するのでしょうか?

例えば、学生として登録されているユーザにオンラインユーザブロックで管理者 (administrator) のロールを割り当てた場合、
そのユーザには画面右上に「編集モードの開始」ボタンが表示され、オンラインユーザブロックのみ管理できるようになります。

Mitsuhiro Yoshida への返信

Re: 「オンラインユーザ」ブロックを教師以上にしか表示しないには?(1.8+)

- Koji Yamada の投稿
なるほど,わかりました.いろいろ試してみたいです.
パッチありがとうございます.

ロールの機能が少しわかりました
モジュール,ブロックのロールに関わる表示,非表示なども設定できるようになるといいのですが.