【freo】【freoTips】【プラグイン系TIPS】拍手送信プラグインで送信される拍手に画面のタイトルをある程度自動で付与する方法
拍手送信プラグインはfreo公式で配布されているプラグインです。
閲覧者が拍手を送信でき、お礼画面を表示させます。
拍手送信プラグインの機能解説「拍手ボタンの複数設置」にかいてある通り、 plugin_clap[title]
を設定すると、「どこから拍手が送信されたか」を管理ページで判別できるようになります。
この plugin_clap[title]
をある程度自動で取得して拍手に付与する方法は以下のとおりです。
なお、この記事で紹介するソースで付与できるタイトルは以下のルールで指定します。
- エントリー個別表示画面からの拍手であればエントリーの投稿日時・エントリーのタイトルを付与する
- カテゴリー画面からの拍手であればカテゴリー名を付与する
- ページ画面からの拍手であればページのタイトルを付与する
- プラグイン画面からの拍手であればプラグイン名を付与する
- デフォルト画面からの拍手であれば「トップページ」という文字列を付与する
- その他の画面であれば画面のmodeとworkを付与する
参考リンク
freo:内部構成の解説
32877:【freo講座】【初心者の為のfreoテンプレート編集講座】【基本編(12)】freoの画面についての考え方
拍手ボタンをformで設置している場合
<form action="{$freo.core.http_file}/clap" method="post"> <fieldset> <legend>拍手送信フォーム</legend> <input type="hidden" name="freo[token]" value="{$token}" /> <input type="hidden" name="plugin_clap[title]" value="{if $entry.title}{$entry.datetime|date_format:'%Y-%m-%d'}|{$entry.title}{elseif $page.title}{$page.title}{elseif $smarty.get.category}{$freo.refer.categories[$smarty.get.category].name}{elseif $freo.plugin[$smarty.request.freo.mode].name}{$freo.plugin[$smarty.request.freo.mode].name}{elseif $smarty.request.freo.mode == 'default'}トップページ{else}{$smarty.request.freo.mode}|{$smarty.request.freo.work}{/if}" /> <p><input type="submit" value="拍手を送る" /></p> </fieldset> </form>
拍手ボタンをテキストリンクで設置している場合
<p><a href="{$freo.core.http_file}/clap?plugin_clap%5Btitle%5D={if $entry.title}{$entry.datetime|date_format:'%Y-%m-%d'}|{$entry.title}{elseif $page.title}{$page.title}{elseif $smarty.get.category}{$freo.refer.categories[$smarty.get.category].name}{elseif $freo.plugin[$smarty.request.freo.mode].name}{$freo.plugin[$smarty.request.freo.mode].name}{elseif $smarty.request.freo.mode == 'default'}トップページ{else}{$smarty.request.freo.mode}|{$smarty.request.freo.work}{/if}">拍手を送る</a></p>