1: <?php
2: /**
3: * XOOPS form element of CAPTCHA
4: *
5: * You may not change or alter any portion of this comment or credits
6: * of supporting developers from this source code or any supporting source code
7: * which is considered copyrighted (c) material of the original comment or credit authors.
8: * This program is distributed in the hope that it will be useful,
9: * but WITHOUT ANY WARRANTY; without even the implied warranty of
10: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11: *
12: * @copyright (c) 2000-2016 XOOPS Project (www.xoops.org)
13: * @license GNU GPL 2 (https://www.gnu.org/licenses/gpl-2.0.html)
14: * @package kernel
15: * @subpackage form
16: * @since 2.3.0
17: * @author Taiwen Jiang <phppp@users.sourceforge.net>
18: */
19: defined('XOOPS_ROOT_PATH') || exit('Restricted access');
20:
21: xoops_load('XoopsFormElement');
22:
23: /**
24: * Usage of XoopsFormCaptcha
25: *
26: * For form creation:
27: * Add form element where proper: <code>$xoopsform->addElement(new XoopsFormCaptcha($caption, $name, $skipmember, $configs));</code>
28: *
29: * For verification:
30: * <code>
31: * xoops_load('xoopscaptcha');
32: * $xoopsCaptcha = XoopsCaptcha::getInstance();
33: * if (! $xoopsCaptcha->verify() ) {
34: * echo $xoopsCaptcha->getMessage();
35: * ...
36: * }
37: * </code>
38: */
39:
40: /**
41: * Xoops Form Captcha
42: *
43: * @author Taiwen Jiang <phppp@users.sourceforge.net>
44: * @package kernel
45: * @subpackage form
46: */
47: class XoopsFormCaptcha extends XoopsFormElement
48: {
49: public $captchaHandler;
50:
51: /**
52: * Constructor
53: * @param string $caption Caption of the form element, default value is defined in captcha/language/
54: * @param string $name Name for the input box
55: * @param boolean $skipmember Skip CAPTCHA check for members deprecated
56: * @param array $configs deprecated
57: */
58: public function __construct($caption = '', $name = 'xoopscaptcha', $skipmember = '', $configs = array())
59: {
60: xoops_load('XoopsCaptcha');
61: $this->captchaHandler = XoopsCaptcha::getInstance();
62: if($skipmember !== '' || !empty($configs)){
63: $GLOBALS['xoopsLogger']->addDeprecated("In the class 'XoopsFormCaptcha' The settings 'skipmember' and 'configs' are deprecated since XOOPS 2.5.11");
64: }
65: $config['name'] = $name;
66: $this->captchaHandler->setConfigs($config);
67:
68: if (!$this->captchaHandler->isActive()) {
69: $this->setHidden();
70: } else {
71: $caption = !empty($caption) ? $caption : $this->captchaHandler->getCaption();
72: $this->setCaption($caption);
73: $this->setName($name);
74: }
75: }
76:
77: /**
78: * @param $name
79: * @param $val
80: *
81: * @return mixed
82: */
83: public function setConfig($name, $val)
84: {
85: return $this->captchaHandler->setConfig($name, $val);
86: }
87:
88: /**
89: * @return mixed
90: */
91: public function render()
92: {
93: // if (!$this->isHidden()) {
94: return $this->captchaHandler->render();
95: // }
96: }
97:
98: /**
99: * @return mixed
100: */
101: public function renderValidationJS()
102: {
103: return $this->captchaHandler->renderValidationJS();
104: }
105: }
106: