1: <?php
2: /**
3: * XoopsFormColorPicker component class file
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-2017 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.0.0
17: * @author Zoullou <webmaster@zoullou.org>
18: */
19: defined('XOOPS_ROOT_PATH') || exit('Restricted access');
20:
21: /**
22: * Color Selection Field
23: *
24: * @author Zoullou <webmaster@zoullou.org>
25: * @author John Neill <catzwolf@xoops.org>
26: * @copyright (c) 2000-2016 XOOPS Project (www.xoops.org)
27: * @package Kernel
28: * @access public
29: */
30: class XoopsFormColorPicker extends XoopsFormText
31: {
32: /**
33: * XoopsFormColorPicker::XoopsFormColorPicker()
34: *
35: * @param mixed $caption
36: * @param mixed $name
37: * @param string $value
38: */
39: public function __construct($caption, $name, $value = '#FFFFFF')
40: {
41: parent::__construct($caption, $name, 9, 7, $value);
42: }
43:
44: /**
45: * XoopsFormColorPicker::render()
46: *
47: * @return string
48: */
49: public function render()
50: {
51: return XoopsFormRenderer::getInstance()->get()->renderFormColorPicker($this);
52: }
53:
54: /**
55: * Returns custom validation Javascript
56: *
57: * @return string Element validation Javascript
58: */
59: public function renderValidationJS()
60: {
61: $eltname = $this->getName();
62: $eltcaption = $this->getCaption();
63: $eltmsg = empty($eltcaption) ? sprintf(_FORM_ENTER, $eltname) : sprintf(_FORM_ENTER, $eltcaption);
64:
65: return "if ( !(new RegExp(\"^#[0-9a-fA-F]{6}\",\"i\").test(myform.{$eltname}.value)) ) { window.alert(\"{$eltmsg}\"); myform.{$eltname}.focus(); return false; }";
66: }
67: }
68: