【freo】【freoTips】【テンプレート系TIPS】エントリーやページでプラグイン利用部分に閲覧制限をかける方法
- 2013/05/12 12:55
- エントリー
- ページ
- 閲覧制限
- 子ページ表示プラグイン
- 関連エントリー表示プラグイン
- 77
freoでは、閲覧制限をかけることができます。
閲覧制限をかけると、タイトル、本文、ファイルなどを見えなくすることができますが、プラグイン利用部分(子ページ表示プラグインを利用して表示している子ページ一覧や、関連エントリー表示プラグインを利用して表示している関連エントリー一覧など)は表示されてしまいます。これを隠すようにするには、以下のとおりの編集が必要です。
ページのプラグイン利用部分に閲覧制限をかける方法
freoの仕様として、子ページ表示プラグイン等を使って表示している部分は、そのページ自体に閲覧制限をかけても、表示されてしまいます。
これは、ページに閲覧制限がかかった場合、タイトルや添付ファイルなど、データベースのページテーブルに登録された情報(freo/本体のテーブル構成「ページ格納テーブル」)は保護されますが、プラグイン側でページ画面(freo/page)での読み込みが許可されており、テンプレートに直接記述する方法によって表示させているもの(たとえばテンプレートに記述している子ページプラグイン利用部分等)は制限されないからです。
これを隠す方法は以下のとおりです。
[freo/templates/pages/default.html]の隠したい部分に下記の通り条件式を加入する。
<!--{if !$page.restriction or ($page.restriction == 'user' and !$page_security) or ($page.restriction == 'group' and !$page_security) or ($page.restriction == 'password' and !$page_security) or $freo.user.authority == 'root' or $freo.user.authority == 'guest'}--> 隠したい部分 <!--{/if}-->
解説
<!--{もし 閲覧制限がかかっていない または 登録ユーザーのみ閲覧可能状態でユーザー登録有の場合 または ユーザーグループのみ閲覧可能状態で該当グループだった場合 または パスワード制限でパスワード認証後の場合 または ログインユーザー権限が投稿者だった場合 または ログインユーザー権限が管理者だった場合 ここから}--> 隠したい部分 <!--{もし~ここまで}-->
エントリーのプラグイン利用部分に閲覧制限をかける方法
freoの仕様として、関連エントリー表示プラグイン等を使って表示している部分は、そのエントリー記事自体に閲覧制限をかけても、表示されてしまいます。
これは、エントリー記事に閲覧制限がかかった場合、タイトルや添付ファイルなど、データベースのエントリーテーブルに登録された情報(freo/本体のテーブル構成「エントリー格納テーブル」)は保護されますが、プラグイン側でエントリー記事画面(freo/view)での読み込みが許可されており、テンプレートに直接記述する方法によって表示させているもの(たとえばテンプレートに記述している関連エントリー表示プラグイン利用部分等)は制限されないからです。
これを隠す方法は以下のとおりです。
[freo/templates/view/default.html]の隠したい部分に下記の通り条件式を加入する。
<!--{if !$entry.restriction or ($entry.restriction == 'user' and !$entry_security) or ($entry.restriction == 'group' and !$entry_security) or ($entry.restriction == 'password' and !$entry_security) or $freo.user.authority == 'root' or $freo.user.authority == 'guest'}--> 隠したい部分 <!--{/if}-->
解説
<!--{もし 閲覧制限がかかっていない または 登録ユーザーのみ閲覧可能状態でユーザー登録有の場合 または ユーザーグループのみ閲覧可能状態で該当グループだった場合 または パスワード制限でパスワード認証後の場合 または ログインユーザー権限が投稿者だった場合 または ログインユーザー権限が管理者だった場合 ここから}--> 隠したい部分 <!--{もし~ここまで}-->