お問い合わせフォーム用のカスタムモジュールを作成しました。ここで、このモジュールでJoomlarecaptchaプラグインを使用したいと思います。
これを行う方法はありますか?
joomlaのデフォルトのrecaptchaプラグインを使用するには、次の手順に従います-
1) http://www.google.com/recaptchaからrecaptchaキーを取得します
2)これらのキーをrecaptchaプラグインに設定し、そうでない場合はアクティブにします。
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');
}
//Joomla3.xの場合
$post = JFactory::getApplication()->input->post;
$dispatcher = JEventDispatcher::getInstance();
Irfanのコードをフォローアップし、キャプチャを表示するには、さらに次のことを行う必要がありました。
テンプレートコードに以下を追加します。
JHtml::_('behavior.keepalive');
どうやらそれはmootoolsライブラリが含まれています。
イベントdomreadyが追加されたようですが、イベントはmootoolsライブラリが使用されている場合にのみ発生します。したがって、HTMLソースをチェックして、mootoolsが使用されているかどうかを確認してください。私は完全に間違っているかもしれませんが、私の解決策が誰かを助けることを願っています。
これを入手した:http://jw-extension.net/joomla-how-to/138-an-easy-way-insert-captcha-in-any-module-or-component-of-joomla.html
ダウンロードする
http://www.google.com/recaptchaにログインして、reCAPTCHA公開鍵とreCAPTCHA秘密鍵を取得します
公開鍵と秘密鍵をインストールして有効にし、入力します
HTMLmoduleで、キャプチャ{captcha}
を表示する必要がある場所を挿入します
一般的に挿入してください
global $mainframe;
$mainframe->triggerEvent('onCaptchaDisplay');
キャプチャを表示します。
[reCAPTCHAを使用した自動検証]オプションが有効になっている場合、プラグインはキャプチャ検証データが存在するかどうかを確認し、自動的にreCAPTCHAに接続して確認を求めます。この方法では、ページを読み込むたびにもう少しシステムリソースが必要になりますが、キャプチャの検証が必要なページが多数ある場合に非常に便利です。キャプチャ検証をグローバルに有効にしたくないが、数ページだけを有効にする場合は、reCAPTCHAオプションを使用した自動検証を無効にすることをお勧めします。ユーザーの応答を確認するには、次のPHPコードを個々のJoomla!のコントローラーファイルに挿入します。キャプチャの検証が必要な拡張機能:
global $mainframe;
$mainframe->triggerEvent('onCaptchaConfirm');