ブロックの表示を制御する

Re: ブロックの表示を制御する

- Shinji Kawano の投稿
返信数: 5

ご指摘ありがとうございます。

たしかに、コースに対して教師が割当たっていないように思われます。


ただ、コースの方で教師としての登録は、一応しております。

このあたりの操作や考え方について、私が何か勘違いしているかもしれません。


↓こちらのコースの画面から「コース」ごとに登録を行っております。

この方法で教師として登録しております。


ただ、改めて不思議に思うのですが

教師というロールは、コース単位に存在するかと思います。


現在考えているのは、どの教師でも、とにかく教師ロールが割当たっているユーザーに表示して欲しいブロックで

(学生には表示させない)

ひょっとして、ブロックのパーミッションもコースごとに設定する必要があるのでしょうか?

ちなみに、「マネージャ」に関しては、教師のように該当するブロックを表示してほしいのですが

こちらは、システムロールということできちんと割当たっており

参考までに以下のようになっておりました。そして、ブロックもきちんと表示されます。

何かお気づきの点などありましたら、ご教授いただけると助かります。


Shinji Kawano への返信

Re: ブロックの表示を制御する

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> ひょっとして、ブロックのパーミッションもコースごとに設定する必要があるのでしょうか?

いいえ。

> 現在考えているのは、どの教師でも、とにかく教師ロールが割当たっているユーザーに表示して欲しいブロックで(学生には表示させない)

例えば、すべてのコースでクイックメール (Quickmail) ブロックを編集権限のある教師のみに表示したい場合、下記のようにプログラムを修正することにより可能です。

修正対象プログラム:
blocks/quickmail/db/access.php

修正箇所:
75行目

[ 修正前 ]
    'block/quickmail:candelete' => array(
        'captype' => 'write',
        'contextlevel' => CONTEXT_COURSE,
        'archetypes' => array(
            'manager' => CAP_ALLOW,
        )
    ),
);


[ 修正後 ]
    'block/quickmail:candelete' => array(
        'captype' => 'write',
        'contextlevel' => CONTEXT_COURSE,
        'archetypes' => array(
            'manager' => CAP_ALLOW,
        )
    ),

    'block/quickmail:view' => array(
        'captype' => 'write',
        'contextlevel' => CONTEXT_COURSE,
        'archetypes' => array(
            'editingteacher' => CAP_ALLOW
        )
    ),

);


[Moodle plugins directory: Quickmail: Versions]
https://moodle.org/plugins/pluginversions.php?plugin=block_quickmail

評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: ブロックの表示を制御する

- Shinji Kawano の投稿

なるほど。

最近はずっとmoodle漬けなので、おっしゃっている修正の意味がかなりわかってきました。

ブロックのdbの設定で行ってしまおうということですね。

現在、独自のブロックでもあるので、こちらのほうが正直確実で、良い方法のように思いました。

改修後、改めてご報告できればと思います。


いつもありがとうございます。

非常に助かりました!

Mitsuhiro Yoshida への返信

Re: ブロックの表示を制御する

- Shinji Kawano の投稿

すみません。追加で質問です。

そもそもの内容で恐縮ですが、今回ご紹介頂きました

「すべてのコースでクイックメール (Quickmail) ブロックを編集権限のある教師のみに表示したい場合」は

最初にブロック(Quickmail)を追加する操作は、どのように行うべきでしょうか?


現在、ブロックは「サイト管理→アピアランス→デフォルトダッシュボードページ」にて追加しておりました。


ただ、あらためて考えると、基本的に表示させておきたいブロックなので

ダッシュボードページだけというわけでなく表示させておきたいと考えています。

(ページレイアウトがcolumn2であれば常にプロック領域に出ているイメージ)


ブロックを作成し、blocksフォルダにアップロードして、サイト管理→通知にてブロックを導入する方法は理解しているのですが

そのブロックをシステム上に組み込む方法として

デフォルトダッシュボードページしか知らない状況に気づきました。


理解ができておらず、恐縮ですが、このブロックの追加についてご教授頂けませんでしょうか?



Shinji Kawano への返信

Re: ブロックの表示を制御する

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

> 最初にブロック(Quickmail)を追加する操作は、どのように行うべきでしょうか?

下記手順をお試しください。

  1. クイックメールブロック (https://moodle.org/plugins/block_quickmail) をダウンロードしてください。
  2. 1.でダウンロードしたファイル (例 block_quickmail_moodle33_2017110700.zip) を展開 (解凍) してください。
  3. quickmailフォルダ (ディレクトリ) 内のREADME.mdを読みながらインストール作業を進めてください。
  4. サイト管理者または編集権限のある教師としてMoodleのコースに入ってください。
  5. 画面右上の「編集モードの開始」ボタンまたは「管理 > コース管理 > 編集モードの開始」リンクをクリックしてください。
  6. 「ブロックを追加する」ブロックのプルダウンメニューから「クイックメール」を選択してください。



評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: ブロックの表示を制御する

- Shinji Kawano の投稿
結論、ブロック側の表示制御を独自で記述して対応することとしました。


いろいろとアドバイス頂きありがとうございます。

ブロックの制御の問題というよりもアカウントのロールが「user」ロールと判断されて

教師も学生もuserとして処理されている状況でした。

なぜこのような判断とされるのか不明ですが、開発のスケジュールもあり一旦別の方法で解決しております。


以上です。

いつもありがとうございます。