openpne 2.x アクセスブロックページで相手のニックネーム&IDを表示させる

相手のプロフページのリンクを踏むと、エラーページにリダイレクトされる仕様なので、

「先にアクセスブロックされると、相手のIDがわからなくて泣き寝入りするしかない!どうにかして!」
というご相談がユーザから着たので対応。

アクセスブロックされたエラーページで相手のニックネーム、IDを表示させるように修正。
まあ、ちょっと詳しい人ならURLみればわかるんだけどねえ。。

1.アクセスブロック時にmember_idのパラメータを付与させてからリダイレクトするように

/webapp/modules/pc/page/f_home.php 28行目あたり

        if (db_member_is_access_block($u, $target_c_member_id)) {
            openpne_redirect('pc', 'page_h_access_block',array("target_c_member_id" => $target_c_member_id));
        }

2.飛んできたパラメータをテンプレの変数にセット

/webapp/modules/pc/page/h_access_block.php 14行目あたり

        if($_REQUEST['target_c_member_id'] && preg_match("/^\d+$/",$_REQUEST['target_c_member_id'])){
         $target_c_member = db_member_c_member_with_profile($_REQUEST['target_c_member_id'], 'private');
         $this->set('target_c_member', $target_c_member);
        }

3.validationを設置(数値の改変予防)

/var/www/sites/pocha3.com/webapp/modules/pc/validate/page

[target_c_member_id]
type = "int"
required = 0
min = 1

4.エラーページのテンプレHTML

/var/www/sites/pocha3.com/webapp/modules/pc/templates/h_access_block.tpl 適当なとこに

<div class="block">
<p>大変、申し訳ございません。<br>
({if $target_c_member})
({$target_c_member.nickname})さん (ID:({$target_c_member.c_member_id})) のページにはアクセスできません。</p>
({else})
申し訳ございませんがこのメンバーのページにはアクセスできません。
({/if})
</div>