« Vine Linux 4.1にOpenPNE2.8をインストールする手順 | メイン | OpenPNE2.8でオープン制にしても新規登録ボタンが表示されない問題について(解決) »

OpenPNE2.8でオープン制にしても新規登録ボタンが表示されない問題について

OpenPNE2.8の設定で、招待制からオープン制に変更した。
これで、参加者の招待なしでも登録できるようになるはずだが、どこから登録できるのかわからない。

調べてみると、「OpenPNE オープン制で新規登録ボタンが無い」のページを発見。
解決方法は、public_html/skin/ディレクトリにある「skin_login_open.jpg」を「skin_login.jpg」に変更すること。
確かに、これでログイン画面に「新規登録」ボタンが表示されるようになった。

しかし、この対応はあまりスマートではないように思う。これが正式な方法なのだろうか?

ソースコードを追いかけてみることにする。

おそらく、このログイン画面で「skin_login.jpg」をよんでいるのが、OPENPNE_DIR/webapp/modules/pc/templates/o_login.tplの次の個所。

<img src="({t_img_url_skin filename=skin_login})" class="bg">

ここの「t_img_url_skin」というのは、PHPのテンプレートエンジンである「Smarty」のプラグイン機能で、実体は OpenPNE_DIR/webadd/lib/smarty_plugins/function.t_img_url_skin.php かな?
(Smartyについては全然知らないので、あまり自信がない。)

function.t_img_url_skin.phpでは、引数filenameと「c_skin_filename」テーブルのskinnameフィールドが一致するレコードがないとき、引数filenameに適当な拡張子(filenameがskin_から始まれば「jpg」を、それ以外の場合は「gif」)をつけて返す。

一致するレコードがある場合は、OPENPNE_IMG_CACHE_PUBLICの設定で処理が別れる。
OPENPNE_IMG_CACHE_PUBLICは、OPNPNE_DIR/config.phpで設定している。
初期値はfalse。

OPENPNE_IMG_CACHE_PUBLICがfalseの場合は、「img_skin.php?filename=引数のfilename」になる。

以上から、「c_skin_filename」テーブルに該当するレコードがないために、SNS設定の招待制/オープン制にかかわらず、常に「skin_login.jpg」になってしまっている。

期待される正しい動作は、「c_skin_filename」テーブルに該当するレコードがあり、「<img src="OpenPNEのURL/img_skin.php?filename=skin_login)" class="bg">」になることだろう。

きっと、SNS設定画面で「設定変更する」ボタンを押したとき、「c_skin_filename」テーブルを更新するようにすれば、正しい動作になると思われる。

この続きは「 OpenPNE2.8でオープン制にしても新規登録ボタンが表示されない問題について(解決)」です。

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/385

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年06月02日 22:57に投稿されたエントリーのページです。

ひとつ前の投稿は「Vine Linux 4.1にOpenPNE2.8をインストールする手順」です。

次の投稿は「 OpenPNE2.8でオープン制にしても新規登録ボタンが表示されない問題について(解決)」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35