モバイルモードが完成しました

モバイルモードが完成しました

- Tatsuya Shirai の投稿
返信数: 7

http://moodle.org/mod/forum/discuss.php?d=93242
http://moodle.org/mod/forum/discuss.php?d=93403

 上記2つのディスカッショントピックスにも書き散らかしてしまいましたが,こちらにまとめます.

 Moodle1.9版が完成しましたので,差分(diff)とその元になったファイル(13ファイル+1フォルダ),ドキュメントを添付します.Moodle1.8.4+への適用はまだです(ほぼ問題ないでしょう).

 データベース等を操作するものではありませんので,現在稼働中のMoodle1.9+(2008/03/25版をベースにしています)をコピーして,添付したパッチを適用すれば,大きな問題無しにモバイルモードを試用できると思います.

 修正箇所には全て (Shirai0??)のようにコメントを付けてあります.

 バグ出し,御意見,お待ちしています.


 オリジナルのソースリストの修正は11ファイルです.
 lib/mobilemodeフォルダを追加し,2つのファイル追加しています.

 モバイルモードのOn/Offが随時可能になりましたので,以前に報告したようなmoodle/mobile/index.php や moodle/mobile_my/index.phpといった無駄な細工は止めました.

Tatsuya Shirai への返信

Re: モバイルモードが完成しました

- Tatsuya Shirai の投稿

 早々に,ケアレスミスが発見されました.

 lib/mobilemode/lib.phpの189行目の,

        if (!is_mobile_on()) return ture;
は,
        if (!is_mobile_on()) return true;

の間違いです.

 修正したパッチを添付します.

Tatsuya Shirai への返信

Re: モバイルモードが完成しました

- Tatsuya Shirai の投稿

 本日,fs_moodle2.2 (Moodle1.8.4+とMoodle1.9+)を公開しました.

 前回のfs_moodle2.1とはモバイルモードの実装が少しだけ変わっています.またfs_moodle2.1では搭載されていなかったセクションの開閉選択機能も追加した完全なモバイルモードが搭載されています.

 既にfs_moodle2.1をインストール済みの方は,お手数ですが,moodle/mobile と moodle/mobile_myのフォルダは削除して下さい(残していても支障はありません).

 fs_moodle2.0から設定ファイルをlib/fsconverter.phpからmoodle/fsconfig.phpに分離しました.fs_moodle2.2では,コメント等の見直しに加え,新たな変数を一つ追加しています.
  $fsCFG->rss_secure_level
です.値を 0 に設定すると現状のRSSリンクアドレスのままです.この場合,
http://moodle.org/mod/forum/discuss.php?d=93299
で調査結果を報告したように,容易にフォーラムやブログを盗み見されやすいので好ましくありません.$fsCFG->rss_secure_level = 1 か 2 にすることで,今後,出力されるRSSリンクアドレスは暗号化されますので,少しだけ安全になります.$fsCFG->rss_secure_level = 2 にすると,旧式のRSSリンクアドレスは受け付けなくなるため現状よりはかなり安全になりますが,既にRSSを活用されているサーバの場合,ユーザーから「RSSが使えなくなった!」という苦情が殺到すると思います.その場合は,$fsCFG->rss_secure_level = 1として下さい.出力するRSSリンクアドレスは暗号化された新しい形式のアドレスになりますが,旧式のRSSリンクアドレスも受け入れます.徐々に旧式のRSSリンクアドレスの消滅を待つ,あるいは十分にアナウンスを行なってから$fsCFG->rss_secure_level = 2にすれば良いでしょう.

 fsconfig.phpに値が設定していないものがある場合,fs_moodle2.1までは,デフォルト値をセットするだけででしたが,fs_moodle2.2からは管理者がフロントページにアクセスするとエラー画面に切り替わるようにしました.指示にしたがって,fsconfig.php中で未設定の変数を設定して下さい.

 さて,これでfs_moodleの大枠の改変とモバイルモードの実装は終わりました.これ以降は小規模な修正で済むと思います.

Tatsuya Shirai への返信

Re: モバイルモードが完成しました

- Tatsuya Shirai の投稿

 すみません,fs_moodle2.2で追加したRSSのリンクアドレスのセキュリティを上げる機能ですが,暗号化したリンクデータを復号化できない場合がごく稀に存在することが判明しました.ケアレスミスです.近日中に,下記の拡張を行なったfs_moodle2.3を公開しますのでお待ち下さい.

 デバッグついでに更にセキュリティレベルを上げるオプションを追加しました.設定ファイル(fsconfig.php)に”秘密キー”を設定できます.ソースリストは公開しても,設定ファイルは公開しませんから安全ですね.もし設定していない場合はMoodleデフォルトのキーを用います.こちらはソースが公開されていますので,自分でソースを書き換えない限りはバレバレです(もしデフォルトのキーを自分で書き換えても,それをphpxref等で公開したら意味が無いですねウインク).

 さらにセキュリティの高いモードを追加で実装しました.もしコースに登録キーを設定している場合は,まず登録キーで復号化します.この段階では意味不明のバイナリーデータですので登録キーを推定するのは困難です.そしてこの登録キーで復号化したリンクデータをfsconfig.phpあるいはMoodleデフォルトのキーで復号化します.2重の暗号化です.もちろん,リンクデータの中にコースの登録キーを埋め込むような真似はしていませんので御安心下さい(さすがにコースidだけは暗号化してくっ付けましたが).なお,ブログのRSSは登録キーがありませんので1回の符号化のみです.
 fsconfig.phpの秘密キーを書き換えればサイト全体のRSSリンクアドレスが無効になり,コースの登録キーを変えれば,そのコースのRSSのリンクアドレスのみが無効になります.「おかしいな?」と気付いた段階で,どちらかの値の変更およびアナウンスをすれば良いでしょう.

 ちょっとやり過ぎか?とも思いますが,Kagoさん情報提供のStudent Projectsの方もまだ議論が始まったばかりのようですし,抱えている問題点もほぼ同じ状況のようです.Moodle2.0に間に合うのかな? という訳で,Moodle2.0あるいはその後に,もっと安全なRSSの実装が行なわれるのかも知れませんが,それまでの間は,fs_moodle版のRSSリンクで覗き見を防ぎましょう.

 でも,RSS関係のコードはまだ煮詰まっていない感じですね.RSSフィードを出力するコードはフォーラムもブログも同一の関数を用いているのに,RSSリンクアドレスを生成する関数はそれぞれ別々の関数です.正確に言えば,ブログの側の関数が放置されている感じ.まだ時期尚早なのかも知れません.

 時間が出来たら現状の暗号化法(というほど凄いものではありませんが)をTrackerに報告してみます.


 モバイルモードですが,昨日,Using MoodleのGeneral Developer forumおよびMDL-14131に報告しました(パッチ付き).ほとんど英語とは思えない痛々しい文章のせいか,それとも”たった11個のファイルの修正だから試してね!”というのは無理があった(私だって忙しい中,パッチを当てて試したりしません)のか,まったくレスポンスがありませんでした.そこでデモンストレーション用のコースを作成しました.

http://www.suzuka-ct.ac.jp/mech/moodle/course/category.php?id=16
 ゲストでもログインできますが,アカウント:mobilemode, パスワード:mobilemode,でも入室できます.こちらのアカウントはビジターロールを設定しましたので,ゲスト並みに権限は制限されていますがフォーラムへは書き込めます.

ログを見てみると,3時間くらいの間に韓国,ハンガリー,ドイツ,マレーシアあたりから,ちょこちょことアクセスがありました.やはり論より証拠ですねぇ.でもまだWatcherは1名のみです.お時間のある方はVoteお願いします.

 という訳で,当方のサイトのモバイルモードは英語版で運用しています.もし「この表現は普通じゃない」という箇所がありましたら御指摘下さい.

Tatsuya Shirai への返信

Re: モバイルモードが完成しました

- Takahiro Kagoya の投稿

デモサイト拝見しました。そして、私自身が所有しているSoftbank X01HTにて、ブラウザNetFront3.5(コンセプト版)を利用してみました。

http://www.jp.access-company.com/products/nf_mobile/browser/PPC/35_concept.html

このNetFront自体もこのバージョンになってかなり、iPhoneのSafariを意識したという感じのインターフェイスになっており、PC用のサイトの閲覧を比較的効率的にできるようになったと感じています。

それで、NetFrontでは、従来よりBrowsing Modeや、DisplayMode(Just-Fit Rendering)といったPC用サイトを効率的にブラウズするモードがありますが、今回の白井先生の提案のペイン(ブロックカラム?)を限定するというのは、Just-Fit Renderingなどで閲覧すると便利だと感じています。

そこで、思いつきでかきますが...

まず、このペインを限定するだけではなく、3ペイン全てを縦に配置するようなモードはどうでしょう? アドエスや、携帯電話のフルブラウザを想定すると、縦スクロールで3ペインが見渡せるのもおもしろそうです。左右のペインが固定幅たとすると、中央のペインもその幅に限定されることにはなると思いますが...
それと、この3ペインを一度に表示すると、非常に長くなるようであれば、自動的に3ペインを3ページ分にページングしてくれる、つまり縦スクロールした下端に次のペインへのリンクが表示されるような感じをイメージしています。

さらに、このページングのことを考えると、携帯電話等のフルブラウザの制限事項の一つとしてよくある、読み込み最大ページサイズ(容量)を考慮するようなページングもMoodle側でしてしまうというのはいかがでしょう。

参照:Wikipedia フルブラウザ
http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AB%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6#.E4.B8.BB.E3.81.AA.E3.83.95.E3.83.AB.E3.83.96.E3.83.A9.E3.82.A6.E3.82.B6

さらにさらに、携帯電話用CSSを用意して、それらを切り替えるボタンはどうでしょう。

http://www.marguerite.jp/Nihongo/WWW/Mobile/index.html

先日公開された Moodle Liteや、MFM との関連(それらではどうなっているのか)をあまり考えず思いつきで書いていますので、おかしな提案だったらご指摘ください。

Takahiro Kagoya への返信

Re: モバイルモードが完成しました

- Tatsuya Shirai の投稿

 いえいえ,提案大歓迎です.

 実は今回の”一つのコラムだけ表示”以外にも”一つか二つか全部”という機能も考えていました.イメージとしては,いま画面上にある「Left」「Middle」「Right」のボタンをトグル動作にする訳です.Onになっているコラムを表示する,つまり「Left」と「Middle」がOnで「Right」がOffならば左と真ん中のコラムを表示する.
 得られるメリットとコードの修正量を秤にかけて(Cookieの数と量を減らしたい)一つだけにしました.

 縦に配置というのも面白いですね.でも,その反面,全データを転送するため,レスポンスが落ちるという問題があります.それとテーマ(Thema)との絡みですね.テーマについて良く調べていないというだけで,技術的に大変だ,という理由ではありませんウインク

 データ量に合わせてページを切り替えですね.これはできなくは無いと思うのですが,自信が無いです^^; たとえばトピックスが10個あったとして,これを5個ずつ表示したりする,という機能も考えられますね.そうか,授業によっては30週分あったりしますものね.少し考えて見ましょう.

 携帯電話用CSSについては,どのようなイメージなのか分かりませんので,もう少し詳しく説明して頂けませんか? もしかしたらグッドアイディアかも知れません(CSSも勉強しなくては).

Tatsuya Shirai への返信

Re: モバイルモードが完成しました

- Tatsuya Shirai の投稿

 RSSのセキュリティを向上させ,さらにブログにも対応したfs_moodle2.3を公開しました.

 fsconfig.php中に,$fsCFG->rssCryptKeyという秘密キーを追加する必要があります.lib/fs_moodle/fsconfig-dist_jwin/other.phpを参考にして追加して下さい.


話題が錯綜して申し訳ありません.

 RSSのセキュリティを向上させる手法についての結論は,話題が最初に出た新機能要望フォーラムに記述しましたので,そちらをご覧下さい.

http://moodle.org/mod/forum/discuss.php?d=93299

Tatsuya Shirai への返信

Re: モバイルモードが完成しました

- Tatsuya Shirai の投稿

 こちらのフォーラム上で紹介しているモバイルモードのパッチは開発途上の物です.これらの書き込みを元にしてお手元のMoodleにモバイルモードのみを追加するのはそれほど簡単ではありませんので御注意下さい.(モバイルモードをインストールしてみた,という記述を他の方の書き込みで見たので)

 実際にモバイルモードを試すには,fs_moodleパッケージを用いるか,あるいはこのWikiにまとめてある修正箇所(Shirai054からShirai061,2008/04/30現在.最新かつ正確である保証はありません)を参考にしてお手元のMoodleを更新して見て下さい.