先日のブログでも少し書いたけど、日本の携帯電話でDrupalは本当に使いにくい。閲覧だけなら、何とかなるのですが、やっぱり編集もしたいという要望も実際にあります。電子メールを使ったブログ投稿ならすぐにできそうですが、将来的にeコマースなどを実現しようと思うと、セッション管理周りはできるように拡張した方がやりやすい。そこでまずDrupalのセッションの管理方法についてコードハックしていきたいと思います。
まず、Drupalのページがどうやって作られるか調べておく必要がありますね。bootstrap.inc を見ればわかるんだけど、
という順番で実行されます。セッションのハンドリングは5番目なんですね。では、そのセッション・ハンドリングの生成って何しているのかっていうと、以下の通りです。
require_once variable_get('session_inc', './includes/session.inc');
session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy_sid', 'sess_gc');
session_start(); つまり、セッション関連の関数を読み込んで、ハンドラーを定義登録して、セッションIDを生成しているだけなんですね。じゃ、このハンドラーを携帯用に作り替えれば済むんじゃないだろうかという発想ができるわけです。さらに、session.incを読み込むところに、わざわざvariable_getを使って独自に設定出来る余地を残しています。ということは、「1.設定の初期化」の時点で上書きしてしまえば、良いわけですから、Drupalコアをほぼ修正せずに何らかの新しいセッション維持方法を制作できそうですね。
次回は、携帯電話のセッション管理に研究して、まとめてみます。
Tweeterでこのブログをつぶやいたり、ソーシャル・ブックマークに登録する時は以下のリンクをお使い下さい。
コメント
新しいコメントの投稿