新しい年度の準備

新しい年度の準備

- Minoru Akiyama の投稿
返信数: 13
秋山@eラーニングサービスです

そろそろ新年度の準備を始める時期ですが、皆様はどのように古い年度のコースを管理されますでしょうか?
一番手っ取り早い方法は、年度毎のコースカテゴリを作って、そこに整理することですね。
しかし、沢山のコースをお持ちの先生や学生は、ログインするたびに過去のコースが表示されると鬱しいですね。
また、コースの並び順も管理者やコース作成者が決めた順にしか表示できないので使いにくいと感じているユーザも多いと思います。
そこで、Myコース(マイmoodleとマイコースとMyコースが混在して混乱しやすいですね)に表示されるコースの表示/非表示と並び順を個々のユーザが設定できる「Myコース表示設定」ブロックを作成しました。
名古屋工業大学の依頼で作成したものです。
moodle1.7(2007-01-19)、moodle1.8.4+、moodle1.9beta4の各バージョン用を作りました。(コードはまったく同じです)
まだ、出来立てのホヤホヤですが、65コースほど登録して学生および教師ユーザでテストしてあります。
通常のブロックのインストールに加え、$CFG->wwwroot/my/index.phpに20行ほど処理を追加する必要がありますので、置き換えようのindex.phpを用意してあります。
使って評価をしたい方がいらっしゃるようでしたら、ここで公開いたします。

Minoru Akiyama への返信

Re: 新しい年度の準備

- Tatsuya Shirai の投稿

 コースの並び順を制御できるというのはとても興味があります.
 私自身,管理者として全てのコースに参加しているので山のように列記された中から頻繁に足を運ぶコースを選ぶのが億劫でした.色々とこの手のブロックを試してみたのですが,高機能すぎたり,うまく動作しなかったりで,諦めていました.表示/非表示を選択できるものはあったかも知れませんが,特に並び順を変える物は無かったと思います.
 不具合が合った場合に日本語で相談できるのも良いですね満面の笑顔

 是非,公開して下さい.

Tatsuya Shirai への返信

Re: 新しい年度の準備

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

どれもコードは同じですが、my/index.phpが少しずつ違うので、置き換え用のindex.phpが異なります。Moodle1.7用のみ詳細なテストをしております。他のものは簡単な動作確認のみ実施しました。Myコースに65コースあるユーザのレスポンスは、ブロックのあり/なしに左右されませんでした。
Moodle1.7用
Moodle1.8用
Moodle1.9用

使用方法(マニュアルは、作成中)
A.インストール
1)ブロックをインストールする
2)my/index.phpを置き換える

B.一般ユーザが使用する場合
1)Myコースで編集モードにする
2)「Myコース表示設定」ブロックを追加する
3)「Myコース表示設定」ブロックの「設定変更」ボタンをクリックする
4)コースリストが表示される
・「非表示にする」チェックボックスにチェックを入れれば表示されなくなります。
・「表示順」テキストボックスにセットされている数字を変更するとその数字で昇順にソートされるので表示順序を入れかえることができます。

注意:ユーザが表示設定をした後で、新らたなコースに登録された場合は、Myコースの一番上に表示されます。

お願い:不具合がありましたら、すぐに報告していただければ幸いです。

Minoru Akiyama への返信

Re: 新しい年度の準備

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

念のため、付け加えます。
「マイmoodleを強制する」設定にしておかないと、この機能は使えません。
ところで、用語の統一をしていただけませんか?>Yoshidaさん
Minoru Akiyama への返信

Re: 新しい年度の準備

- Yuichi Saotome の投稿
五月女です.

うちの先生方からも似たような要望が出ていたので助かります.
ただ,これはMyコース専用なのですね.

Myコース上でのコース並び替えにしたのは,元々の名工大さんの要望がMyコース上での並び替えだったのでしょうか?
もしかすると,他の理由なのでしょうか?
ホームでのコースの並び替えを実装したいなぁと思っているのですが,参考までにお聞きかせいただけませんでしょうか.

#ちなみにうちの年度管理方法は,年度ごとにDB,システム,データ領域共にばっさりと切り分けて設置し,大学独自のSSOシステムと組み合わせて,年度間を自由に行き来できるように作っています.
Yuichi Saotome への返信

Re: 新しい年度の準備

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

my/index.phpに追加した処理をlibのprint_overview()の中でやれば全ての場面で表示/非表示と表示順序の指定ができます。
そうしなかった理由は、管理者やコース作成者が指定している設定をコースリストの表示では尊重したいからです。
Minoru Akiyama への返信

Re: 新しい年度の準備

- Yuichi Saotome の投稿
五月女です.

そういう方針の下作成されたモジュールなのですね.
よく分かりました.
ご返答ありがとうございます. 笑顔
Yuichi Saotome への返信

Re: 新しい年度の準備

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

<早乙女さん>
#ちなみにうちの年度管理方法は,年度ごとにDB,システム,データ領域共にばっさりと切り分けて設置し,大学独自のSSOシステムと組み合わせて,年度間を自由に行き来できるように作っています.

確かMoodle Networkを使っているんでしたね?
ロードバランサと複数台のWebサーバでシステムを構築しているケースだと、このMoodle NetworkのSSOの認証がうまくいかないんです。
登録しているサーバのIPアドレスとアクセスされるときのIPアドレスが毎回ことなるのが原因のようです。
Minoru Akiyama への返信

Re: 新しい年度の準備

- Yuichi Saotome の投稿
五月女です.

>確かMoodle Networkを使っているんでしたね?
あの時は大変お世話になりました.
実は,あれから右往左往ありました...
学内の学務システムや独自の統合認証システム(SSO)との連携,運用上の方針等の問題で,現在はMoodle Networkの機能をそのまま使ってはいません.

Moodle Networkの機能は利用していますが,その上に「ポータルサイト的な物」,「独自の統合認証システム連携」,「学務システムとの授業データの共有」,「学務システムとの履修登録データの共有」など独自に構築しています.
結局,「各部門 * 年度数」のシステムを見かけ上一つに見せて運用しています.

ここら辺の部分は,かなり信州大学独自の仕様に依存する実装なので公開できるかわかりませんが,できれば公開したいなぁと思っています.
(というかPHPですら無い部分もあります・・・)
Tatsuya Shirai への返信

Re: 新しい年度の準備

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

<白井先生へ>
以下のことを満足していないとご期待にこたえられないと思います。
このブロックは、get_my_courses()で取得した$coursesを設定テーブルと見比べながら順序を入れ替えたり、表示しないように配列から削除したりして、print_overview()で表示しているので、ユーザがコースに何らかのロールを持っていないとget_my_courses()が返す配列が空になり、何も表示されません。
Minoru Akiyama への返信

Re: 新しい年度の準備

- Tatsuya Shirai の投稿

 コースに参加している=学生ロールを持っている,という解釈でよろしいでしょうか?

 ちなみにまだ素のMoodleの状態で,MyMoodleを試している状態です.

 MyMoodleでメインのページ(moodle/my/index.php)では自分の属している全てのコースが表示される訳ではないように感じるのですが,気のせいでしょうか.特に「このコースを学生は利用できない」(不正確)のコースは表示されていないようです.これは仕様?

Tatsuya Shirai への返信

Re: 新しい年度の準備

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

白井先生> コースに参加している=学生ロールを持っている,という解釈でよろしいでしょうか?

「コースに参加している」ではなく、「Myコース」のコンテクストで「コースを見るケーパビリティを持っている」ことが、「Myコース」にコースが表示されるための条件と認識しています。

get_my_courses()を見ないと正確な回答はできませんが、
1)そのコースのロールを持っている
2)そのコンテキストでcourse:viewのケーパビリティを持っている
特に非表示のコースの場合、非表示のコースを見るケーパビリティをそのコンテキストで持っていないと表示されないと思います。
Minoru Akiyama への返信

Re: 新しい年度の準備

- Tatsuya Shirai の投稿

 普段はmoodle/my/index.phpにアクセスしないので気付かなかったのですが,デバッグでエラー出力をONにしていると,沢山のワーニングがlib/blocklib.phpで出ていますね.これは当方の環境だけでしょうか.

[21-2-2008 09:50:23] PHP Notice:  Trying to get property of non-object in C:\xampplite\htdocs\mech\moodle\lib\blocklib.php on line 289
[21-2-2008 09:50:28] PHP Notice:  Undefined variable: text in C:\xampplite\htdocs\mech\moodle\blocks\updated_blogs\block_updated_blogs.php on line 87
[21-2-2008 09:50:28] PHP Notice:  Undefined property:  stdClass::$footer in C:\xampplite\htdocs\mech\moodle\blocks\moodleblock.class.php on line 240
だいたいこの3種類ですね.特に一番上のものが多く出力されます.

 updated_blogsはサードパーティ製のモジュールに原因があると思うのですが.

 

Tatsuya Shirai への返信

Re: 新しい年度の準備

- Minoru Akiyama の投稿
秋山@eラーニングサービスです

「Myコース表示設定」ブロックの開発時にもwarningが出て、はまりました。
自分のコードのせいではないということに気が付くのに3時間くらいかかりました。
「Myコース表示設定」ブロックは、デバッグメッセージを表示しない設定でお使いください。笑顔