I'll be NET 】創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)

I'll be NET BLOG

なにかの役には立つかもしれない。

トップページ > 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画面)で投稿キープラグイン利用時に、エラーを配列として扱うように編集する必要があります。

記事移動

関連記事

smartyのarray_key_existsで配列の中のキーの有無を調べる方法

smartyのin_arrayで配列の中の値の有無を調べる方法

smartyのassignでテンプレート内変数を定義する方法

smartyでいろいろ計算をする(math利用法)

smartyのforeachでループ回数を取得する方法

smartyのforeachで最初と最後のループの時になにかする方法

smartyのforeachで配列を繰り返して表示する方法

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

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

コメント登録

  • コメントを入力してください。
登録フォーム
名前
メールアドレス
URL
コメント
閲覧制限
投稿キー(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

プロフィール

author:I'll be NET

since:2014.01.01

東京都を拠点としたSOHO(フリーランス)による創作サイト向けWEB制作サービスを行っています。 お仕事とか創作活動とかでメモっておきたいこととかを掲載しています。

more

日記検索

エントリー検索フォーム
キーワード

Feed

創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)【I'll be NET】