お問い合わせフォーム用のカスタムモジュールを作成しました。今、私はこのモジュールでJoomla recaptchaプラグインを使用したいと思います。
これを行う方法はありますか?
Joomlaのデフォルトのrecaptchaプラグインを使用するには、次の手順に従います。
1) http://www.google.com/recaptcha からreaptchaキーを取得します
2)これらのキーをreaptchaプラグインに設定し、そうでない場合はアクティブ化します。
3)recaptchaを表示したい場所にコードを入れてください
//php code
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onInit','dynamic_recaptcha_1');
//html code inside form tag
<div id="dynamic_recaptcha_1"></div>
4)フォームを検証/処理する場所にこのコードを配置します
$post = JRequest::get('post');
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$res = $dispatcher->trigger('onCheckAnswer',$post['recaptcha_response_field']);
if(!$res[0]){
die('Invalid Captcha');
}
// Joomla 3.xの場合
$post = JFactory::getApplication()->input->post;
$dispatcher = JEventDispatcher::getInstance();
Irfanのコードをフォローアップした上で、CAPTCHAが表示されるようにするには、さらに次のことを行う必要がありました。
以下をテンプレートコードに追加します。
JHtml::_('behavior.keepalive');
どうやらmootoolsライブラリが含まれています。
イベントdomreadyが追加されたようですが、イベントはmootoolsライブラリが使用されている場合にのみ発生します。したがって、htmlソースをチェックして、mootoolsが使用されているかどうかを確認してください。私は完全に間違っているかもしれませんが、私の解決策が誰かを助けることを願っています。
ダウンロードする
http://www.google.com/recaptcha にログインして、reCAPTCHA公開鍵とreCAPTCHA秘密鍵を取得します
公開鍵と秘密鍵のインストール、有効化、入力
HTMLモジュールで、キャプチャを表示する必要がある場所に{captcha}
を挿入します
一般的に挿入してください
global $mainframe;
$mainframe->triggerEvent('onCaptchaDisplay');
キャプチャを表示します。
ReCAPTCHAオプションによる自動検証が有効になっている場合、プラグインはキャプチャ検証データが存在するかどうかを確認し、自動的にreCAPTCHAに接続して確認を求めます。この方法では、ページを読み込むたびに少し多くのシステムリソースが必要になりますが、キャプチャの確認が必要なページが多数ある場合に非常に役立ちます。 CAPTCHA検証をグローバルに有効にしたくないが、ほんの数ページの場合は、reCAPTCHAオプションを使用した自動検証を無効にすることができます。ユーザーの応答を確認するには、キャプチャ検証が必要な個々のJoomla!拡張機能のコントローラーファイルに次のPHPコードを挿入します。
global $mainframe;
$mainframe->triggerEvent('onCaptchaConfirm');