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 (http://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: