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>