OPEN PNEで手軽に外部公開するには?
僕も最初悩みました。
OPEN PNEでSNS認証をしないで外部公開をするにはどうしたらよいのか??って。
一番いいのは、外部公開日記モジュールです。
「公開日記 – OpenPNEカスタマイズ外部公開SNS」ここにお世話になった方も多いのでは?
しかし、最新の(OpenPNE2.13.7)に導入しようとしたんですがそのままでは厳しいようで・・。
ほなら、ってことで独自外部公開ページの作り方を紹介。
ベースはfh_diary.phpにしとくかぁ
基本的なとこでは、まず外部からのアクセスを可能とする。
ページアクションのファイルに下記のような関数を追加します(正確には追加ではないですね)
function isSecure()
{
return false;
}
これを付け加えることによって、ログインしなくてもこのページにアクセスできるようになります。
しかし、単純にこれをしてしまうと、外部公開したくないものも外部公開してしまったりと、セキュリティ的にも良くないだろうし、バグのもとになりそうです。
必要な情報だけを出力するようししたほうがいいと思います。
つぎに、例えば日記を公開するなら「公開」となってるものだけにしないといけませんね
SQLを書き換えればいいのですが、メンドクサイです(T_T)
ということで、とりあえず・・
if($target_c_diary['public_flag']!=’public’){
client_redirect_login();
}
こんなんで、いいか~
出力する日記の公開権限が「public」でなかったら、どうかする(今回はログイン画面に遷移)
あとは、SEOをすこし意識してtitleタグの書き換えですか
//title
if (SNS_TITLE) {
$title = SNS_TITLE;
} else {
$title = SNS_NAME;
}
$this->set(’INC_HEADER_title’, $target_c_diary['subject'].”|”.$title);
「日記タイトル|SNSタイトル」がページのタイトルになります。
コメントとか、あしあととかそのあたりの必要のなさそうなソースは消しとくといいかも
ああ、忘れていた
ファイル名とクラス名も忘れずに書き換えないとね
ファイル名を「fh_public_diary.php」にしたとする
クラス名は「{モジュール名pcよかktaiとか}_page_fh_public_diary」
class pc_page_fh_public_diary extends OpenPNE_Action
{
あと、「webapp/modules/pc/validate/page」に「fh_public_diary.ini」を作成する
内容は、最低限下記のとおり。
[target_c_diary_id]
type = “int”
最後にテンプレートを作成します。テンプレートファイル名は「fh_public_diary.tpl」
どうでしょ、とりあえず日記が外部公開されなんじゃないですかねヾ(●⌒(工)⌒●)ノワーイ!
こんな要領で、モジュールとして開発したらけっこう面白いのが作れそうですね^^