Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/j3/administrator/components/com_rsticketspro/models/fields/ |
| [Home] [System Details] [Kill Me] |
<?php
/**
* @package RSTickets! Pro
*
* @copyright (c) 2010 - 2016 RSJoomla!
* @link https://www.rsjoomla.com
* @license GNU General Public License
http://www.gnu.org/licenses/gpl-3.0.en.html
*/
defined('JPATH_PLATFORM') or die;
require_once
JPATH_ADMINISTRATOR.'/components/com_rsticketspro/helpers/rsticketspro.php';
class JFormFieldRSCaptcha extends JFormField
{
protected $type = 'RSCaptcha';
protected function getInput()
{
$captcha = RSTicketsProHelper::getConfig('captcha_enabled');
if ($captcha == 1)
{
$route =
JRoute::_('index.php?option=com_rsticketspro&task=captcha');
$src =
JRoute::_('index.php?option=com_rsticketspro&task=captcha&sid='.mt_rand());
$img = '<img src="'.$src.'"
id="submit_captcha_image"
alt="'.JText::_('RST_ANTISPAM').'"
/>';
$refresh = '<span
class="'.RSTicketsProHelper::tooltipClass().'"
title="'.RSTicketsProHelper::tooltipText(JText::_('RST_REFRESH_CAPTCHA_DESC')).'"><a
onclick="return
RSTicketsPro.refreshCaptcha(\''.addslashes($route).'\');"
href="javascript:void(0);" class="btn
btn-small"><i class="icon-refresh
icon-rsrefresh"></i></a></span>';
$input = '<div class="rst_captcha"><input
type="text" id="'.$this->id.'"
name="'.$this->name.'" value=""
/></div>';
return $img . $refresh . $input;
}
elseif ($captcha > 1 && $captcha < 5)
{
// reCAPTCHA NoCAPTCHA
$doc = JFactory::getDocument();
if ($doc->getType() == 'html')
{
$doc->addScript('https://www.google.com/recaptcha/api.js?'.($captcha
== 4 ? 'render=explicit&' :
'').'hl='.urlencode(JFactory::getLanguage()->getTag()),array(),
array('async' => 'async', 'defer' =>
'defer'));
}
$sitekey =
RSTicketsProHelper::getConfig('recaptcha_new_site_key');
$secretkey =
RSTicketsProHelper::getConfig('recaptcha_new_secret_key');
if (empty($sitekey))
{
return JText::_('RST_CAPTCHA_MISSING_SITE_KEY');
}
if (empty($secretkey))
{
return JText::_('RST_CAPTCHA_MISSING_SECRET_KEY');
}
if ($captcha == 3) {
return '<div class="g-recaptcha"
data-sitekey="'.$this->escape($sitekey).'"
data-theme="'.$this->escape(RSTicketsProHelper::getConfig('recaptcha_new_theme')).'"
data-type="'.$this->escape(RSTicketsProHelper::getConfig('recaptcha_new_type')).'"
></div>';
} else if ($captcha == 4) {
$invisible_script = "
var RSTicketsProReCAPTCHAv2Callback = function() {
var form =document.getElementById('adminForm');
if (typeof form.submit != 'function') {
document.createElement('form').submit.call(form)
} else {
form.submit();
}
}
var RSTicketsProReCAPTCHAv2 = function(){
var rst_rendered_id = grecaptcha.render('g-recaptcha-rst',
{
'sitekey' :
'".$this->escape($sitekey)."',
'theme' :
'".$this->escape(RSTicketsProHelper::getConfig('recaptcha_new_theme'))."',
'type' :
'".$this->escape(RSTicketsProHelper::getConfig('recaptcha_new_type'))."',
'badge' : 'inline',
'size' : 'invisible',
'callback' : 'RSTicketsProReCAPTCHAv2Callback'
});
RSTicketsPro.addEvent(document.getElementById('adminForm'),
'submit', function(evt){ evt.preventDefault();
grecaptcha.execute(rst_rendered_id); });
}
window.addEventListener('DOMContentLoaded',
RSTicketsProReCAPTCHAv2);";
$doc->addScriptDeclaration($invisible_script);
return '<div
id="g-recaptcha-rst"></div>';
}
} else if ($captcha == 5) {
$jconfig = JFactory::getConfig();
$jcaptcha = $jconfig->get('captcha');
if (!empty($jcaptcha)) {
try {
$jcaptcha = JCaptcha::getInstance($jcaptcha,
array('namespace' => 'rscaptcha'));
if (!is_null($jcaptcha))
{
return $jcaptcha->display('rscaptcha',
'rscaptcha');
}
} catch (Exception $e) {
JFactory::getApplication()->enqueueMessage($e->getMessage(),
'error');
}
} else {
JFactory::getApplication()->enqueueMessage(JText::_('RST_CAPTCHA_BUILT_IN_NOT_SELECTED'),
'error');
}
}
return '';
}
protected function escape($string)
{
return htmlentities($string, ENT_COMPAT, 'utf-8');
}
}