opLiteMailTaskPluginというのを出した。

このプラグインは、現在OpenPNE3本体で発生している次の問題を解決できる。

  • デイリーニュースの中身空っぽじゃん。(正確にはデイリーニュース周りの拡張に対応したプラグインがない。
  • デイリーニュースの送信遅くね?
  • デイリーニュースはメモリーリーク起こりすぎじゃね?

あとついでにフレンドの誕生日お知らせメールも同じくメモリーリークが起きている。

そんなわけで、これらを解決したやつをOpenPNE3のプラグインとして出した。

なぜ、OpenPNE3本体に搭載しなかったかというと、イレギュラーなことばっかりやっていたり
するからだ。
例えば、このプラグインは opDiaryPluginと opCommunityTopicPlugin
に完全に依存している。

そんな概要はさておきインストール方法はこちらのドキュメントなどを御覧下さい。

ライセンスは OpenPNE3本体と同様のApache License 2.0です。

導入するひとは完全に人柱です。本当にありがとうございます。
バグやらがあったら Twitter で ooharabucyou に突っ込むのが一番早いかもしれないです。

ちなみに、開発はここでやってるよ。
http://github.com/kawahara/opLiteMailTaskPlugin

これ作ってておもったんだが、デイリーニュースってプラグインでよくね?
っていう議論がしたい。

使う必要があったから調べた

OpenPNE2系でも、

http://trac.openpne.jp/wiki/pne-book-7

こんな勢いで、認証をやっていたみたいだが
問題はテーブル構造が違う。

2系の場合は、

AuthMySQLEnable on
AuthMySQLUser *****
AuthMySQLPassword **********
AuthMySQLDB #DB_NAME#
AuthMySQLNameField nickname
AuthMySQLPasswordField hashed_password
AuthMySQLUserTable "c_member, c_member_secure"
AuthMySQLUserCondition "c_member.c_member_id=c_member_secure.c_member_id"
AuthMySQLPwEncryption md5
Require valid-user

この場合、ニックネームは英数字の必要があったり
一意にしろー!! みたいな感じで告知する必要があるので若干面倒
でも、こんなにスマートにいける。(設定自体は)

3系はどうだろう。
ニックネームは memberテーブルの name
パスワードは member_configテーブルの value にmd5にハッシュ化された状態いるわけだ。
この状態だと、従来通りのやりかたではうまくいかなかったので発想を変える。

まず、 memberテーブルの name を使うのは止した方がいいだろう。
これは、一意じゃないし英数字じゃない場合があったりするので面倒だ。
重複不可のプロフィール項目をつくるなどすればいいだろう。
分かれているテーブルを使うのは面倒なので、ビュー表を使うことにする。

まず、プロフィール項目つくーる
管理画面→プロフィール項目設定 でサクっと

重複を許可しないようにしたり、正規表現で英数字限定にしたりするのがポイント

作ったらIDを確認する

びゅーひょーつくーる
mysql で OpenPNE用のDBで以下のクエリ発行

CREATE VIEW authuser AS
SELECT mp.member_id as id, mp.value as user, mc.value as password
FROM member_profile mp INNER JOIN member_config mc ON mp.member_id = mc.member_id
WHERE mp.profile_id = 5 AND mc.name = 'password';

mp.profile_id = 5 のところは、上で確認した数字にする。

これで SELECT * FROM authuser;
で プロフィールで設定したID とパスワードの組み合わせが簡単に取得できるようになる。

こうなればもうコッチのモノで

AuthMySQLEnable on
AuthMySQLUser *****
AuthMySQLPassword **********
AuthMySQLDB #DB_NAME#
AuthMySQLNameField user
AuthMySQLPasswordField password
AuthMySQLUserTable authuser
AuthMySQLPwEncryption md5
Require valid-user

とすれば、めでたくOpenPNE3中で設定した値でTracにログインできるようになる。
お試しあれ。

たまたま発見した。以前のバージョンで使えるかどうかはしらん!

alt + F1, alt + F2 で ディスプレイ設定が立ち上がる
alt + F3, alt + F4 で ExposeとSpecesの設定が立ち上がる
alt + F5, alt + F6 で キーボードの設定が立ち上がる
alt + F10, alt + F11, alt + F12 でスピーカーの設定が立ち上がる

当たり前だ、ばーか って言われそうで怖そうだ。これって常識なのかな?