Twitterフレンド限定公開プラグイン
このプラグインについて
特定のページを、Twitterフレンド(自分がフォローしている人)のみに公開することができます。(管理画面にログインしているユーザーは、認証は不要です。)

導入方法
ファイルのアップロード
begin.page_twitter_friends.php と config.page_twitter_friends.php と page.page_twitter_friends.php を libs/freo/plugins/ ディレクトリ内にアスキーモードでアップロードします。
page_twitter_friends.ini を configs/plugins/ ディレクトリ内にアスキーモードでアップロードします。
page_twitter_friends/ を templates/plugins/ ディレクトリ内にアスキーモードでアップロードします。
PEAR/ をfreo設置ディレクトリ(config.php や index.php のある場所)にアスキーモードでアップロードします。(既に PEAR/ がある場合、上書きアップロードします。)
パーミッションの設定
configs/plugins/page_twitter_friends.ini のパーミッションを 606 に設定します。
設定
管理者ページにログイン後、管理メニューから「システム」→「設定管理」→「プラグインの設定」→「Twitterフレンド限定公開プラグイン」を選択すると、「スクリーンネーム」と「認証を要求するページ」を設定することができます。
「スクリーンネーム」に例えば freo_jp と設定した場合、Twitterで @freo_jp からフォローされている人にのみ、特定のページを公開することができます。
「認証を要求するページ」に例えば secret と設定した場合、IDが secret のページが、認証を要求するページとなります。また、例えば
aboutgallerygallery/illustgallery/illust/aaagallery/illust/bbbgallery/illust/cccgallery/secretgallery/secret/aaagallery/secret/bbbgallery/secret/ccclink
というIDのページが登録されている場合、「認証を要求するページ」に gallery/secret/ と設定すると、
gallery/secret/aaagallery/secret/bbbgallery/secret/ccc
ページが、認証を要求するページとなります。(階層構造を利用して、まとめて「認証を要求するページ」にすることができます。)
テンプレートの編集
このプラグインによる公開制限は、http://www.example.com/freo/page/gallery/secret/aaa のようなURLでアクセスされたときに働きます。
つまり、例えば http://freo.jp/sample/normal/page のように /page にアクセスすると、本文の一部が表示されてしまいます。本文を表示しないようにする場合、templates/internals/page/default.html の215行目あたりにある
<!--{foreach from=$pages|smarty:nodefaults item='page'}-->
<h3><a href="{$freo.core.http_file}/page/{$page.id}">{$page.title}</a></h3>
<!--{if $page_texts[$page.id].excerpt}-->
<p>{$page_texts[$page.id].excerpt|smarty:nodefaults|strip_tags|mb_truncate:200:'...'|escape}</p>
<!--{/if}-->
<!--{/foreach}-->
この部分から
<!--{if $page_texts[$page.id].excerpt}-->
<p>{$page_texts[$page.id].excerpt|smarty:nodefaults|strip_tags|mb_truncate:200:'...'|escape}</p>
<!--{/if}-->
を削除します。これで一覧で本文が表示されなくなります。
検索プラグインを導入している場合、templates/plugins/search/default.html の85行目あたり
<!--{foreach from=$articles|smarty:nodefaults item='article'}-->
<h3><a href="{$freo.core.http_file}/{if $article.type == 'entry'}view{else}page{/if}/{if $article.code}{$article.code}{else}{$article.id}{/if}">{$article.title}</a></h3>
<!--{if $article_texts[$article.id].excerpt}-->
{$article_texts[$article.id].excerpt|smarty:nodefaults|strip_tags|mb_truncate:200:'...'|escape}
<!--{/if}-->
<ul>
この部分からも
<!--{if $article_texts[$article.id].excerpt}-->
{$article_texts[$article.id].excerpt|smarty:nodefaults|strip_tags|mb_truncate:200:'...'|escape}
<!--{/if}-->
を削除します。これで一覧で本文が表示されなくなります。
完了
管理画面にログインしていない状態で認証を要求するページにアクセスし、認証画面が表示されれば完了です。認証ができるか実際に試してみてください。(管理画面にログインしている場合は表示されません。)
機能解説
Twitterアプリを自分で登録
Twitterで認証するプログラムを作成する場合、あらかじめTwitterにアプリの情報を登録する必要があります。そして登録完了時に発行されるキーをプログラム側に設定する必要があります。
このプラグインはデフォルトで、freo用にあらかじめ発行したキーを使用していますが、自分で発行したキーを使用することもできます。その場合、config.page_twitter_friends.php にある
//Consumer key
define('FREO_PLUGIN_PAGE_TWITTER_FRIENDS_CONSUMER_KEY', '33cqKM99PQm0JHdQ89pfCg');
//Consumer secret
define('FREO_PLUGIN_PAGE_TWITTER_FRIENDS_CONSUMER_SECRET', 'PaH7bjRRKwNje0baa2ltAl5X7HRkVcq972wySECFg');
この部分にキーを設定してください。ただしキーの取得についてはサポート外とします。
一度認証したアプリを削除
はじめてこのプラグインで認証する際、一旦Twitterのページに飛ばされて認証を行います。ですが2回目以降は認証がスキップされます。
一度認証したアプリを削除(認証を取消し)したい場合、Twitterにログインして「設定 → アプリ連携」から行うことができます。
携帯からのアクセス
携帯からのアクセスには対応していません。