PageRenderTime 8ms CodeModel.GetById 2ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/libraries/joomla/form/rule/color.php

https://gitlab.com/vitaliylukin91/lavka
PHP | 62 lines | 24 code | 8 blank | 30 comment | 8 complexity | a800bf8bdc353d1616853eb84c61fac4 MD5 | raw file
 1<?php
 2/**
 3 * @package     Joomla.Platform
 4 * @subpackage  Form
 5 *
 6 * @copyright   Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
 7 * @license     GNU General Public License version 2 or later; see LICENSE
 8 */
 9
10defined('JPATH_PLATFORM') or die;
11
12use Joomla\Registry\Registry;
13
14/**
15 * Form Rule class for the Joomla Platform.
16 *
17 * @since  11.2
18 */
19class JFormRuleColor extends JFormRule
20{
21	/**
22	 * Method to test for a valid color in hexadecimal.
23	 *
24	 * @param   SimpleXMLElement  $element  The SimpleXMLElement object representing the <field /> tag for the form field object.
25	 * @param   mixed             $value    The form field value to validate.
26	 * @param   string            $group    The field name group control value. This acts as as an array container for the field.
27	 *                                      For example if the field has name="foo" and the group value is set to "bar" then the
28	 *                                      full field name would end up being "bar[foo]".
29	 * @param   Registry          $input    An optional Registry object with the entire data set to validate against the entire form.
30	 * @param   JForm             $form     The form object for which the field is being tested.
31	 *
32	 * @return  boolean  True if the value is valid, false otherwise.
33	 *
34	 * @since   11.2
35	 */
36	public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, JForm $form = null)
37	{
38		$value = trim($value);
39
40		if (empty($value))
41		{
42			// A color field can't be empty
43			return false;
44		}
45
46		if ($value[0] != '#')
47		{
48			return false;
49		}
50
51		// Remove the leading # if present to validate the numeric part
52		$value = ltrim($value, '#');
53
54		// The value must be 6 or 3 characters long
55		if (!((strlen($value) == 6 || strlen($value) == 3) && ctype_xdigit($value)))
56		{
57			return false;
58		}
59
60		return true;
61	}
62}