> freo > freoのフォーム管理プラグインで投稿キープラグインを利用する方法
freoのフォーム管理プラグインで投稿キープラグインを利用する方法

freoのフォーム管理プラグインで投稿キープラグインを利用する方法

freoフォーム管理プラグインでメールを送信する際に、投稿キープラグインを利用してスパム対策を行ってみます。

  1. フォーム管理プラグインをダウンロード・解凍して実装してください。
  2. 投稿キープラグインをダウンロード・解凍して実装して下さい。
  3. [freo/libs/freo/plugins/cconfig.postkey.php]の18行目
    define('FREO_PLUGIN_POSTKEY_LOAD_BEGIN', 'page,regist,view');
    

    define('FREO_PLUGIN_POSTKEY_LOAD_BEGIN', 'page,regist,view,form/send');
    
    に変更してください。
  4. [freo/libs/freo/plugins/begin.postley.php]の28~32行目
        if (empty($_POST['plugin']['postkey']['key']) or empty($_SESSION['plugin']['postkey']['key']) or $_POST['plugin']['postkey']['key'] != $_SESSION['plugin']['postkey']['key']) {
            $freo->smarty->append('errors', '投稿キーの認証に失敗しました。');
        } else {
            $_SESSION['plugin']['postkey']['approved'] = true;
        }
    

        if (empty($_POST['plugin']['postkey']['key']) or empty($_SESSION['plugin']['postkey']['key']) or $_POST['plugin']['postkey']['key'] != $_SESSION['plugin']['postkey']['key']) {
            $freo->smarty->append('errors', array('id' => 0, 'message' => '投稿キーの認証に失敗しました。'));
        } else {
            $_SESSION['plugin']['postkey']['approved'] = true;
        }
    
    に変更してください。
  5. [freo/templates/internals/view/default.html]の160~164行目
    [freo/templates/internals/page/default.html]の150~154行目
    [freo/templates/internals/regist/default.html]の8~12行目
    及びその他フォーム管理プラグイン以外で投稿キープラグインを利用している画面の
                <ul class="attention">
                    <!--{foreach from=$errors|smarty:nodefaults item='error'}-->
                    <li>{$error}</li>
                    <!--{/foreach}-->
                </ul>
    
    部分を
                <ul class="attention">
                    <!--{foreach from=$errors|smarty:nodefaults item='error'}-->
                    <li>{$error.message}</li>
                    <!--{/foreach}-->
                </ul>
    
    に変更してください。
  6. [freo/templates/plugins/form/form.html]に
    <!--{if !$freo.user.id and !$smarty.session.plugin.postkey.approved}-->
    <dt>投稿キー(スパム対策に、<img src="{$freo.core.http_file}/postkey" alt="投稿キー" title="投稿キー" width="50" height="20" /> を半角で入力してください。)</dt>
      <dd><input type="text" name="plugin[postkey][key]" size="10" value="" /></dd>
    <!--{/if}-->
    

    を追加してください。
  7. 変更したファイルを全てアップロードしてください。

以上の手順で、フォーム管理プラグインでも投稿キープラグインを利用することができるようになります。

解説

フォーム管理プラグインでは、$errorsを配列で扱っているので、投稿キープラグインのエラーも配列で登録してやる必要があります。
フォーム管理プラグインでも投稿キープラグインを利用できるようにしたことを踏まえ、他画面(regist、page、view画面)で投稿キープラグイン利用時に、エラーを配列として扱うように編集する必要があります。

この記事が気に入ったらシェアしてください

関連記事

freoに登録した透過PNGの背景が黒色になるのを防ぐ方法

freoに登録した透過PNGの背景が黒色になるのを防ぐ方法

freoでユーザー関連の便利な機能いろいろ

freoで小説を表示するのに便利な機能いろいろ

freoサイトのエントリーのサイドバー(ユーティリティ)で利用できる機能

freoサイトのトップページにお知らせを表示する方法

freoサイトの閲覧制限~フィルタリング機能

Comment Form

コメント投稿はこちらをクリックしてください
  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)