PageRenderTime 24ms CodeModel.GetById 14ms app.highlight 5ms RepoModel.GetById 2ms app.codeStats 0ms

/libraries/joomla/form/rule/username.php

https://gitlab.com/vitaliylukin91/text
PHP | 62 lines | 23 code | 8 blank | 31 comment | 1 complexity | 003d0dedba8375b54dbbbe691d6c35bc 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.1
18 */
19class JFormRuleUsername extends JFormRule
20{
21	/**
22	 * Method to test the username for uniqueness.
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.1
35	 */
36	public function test(SimpleXMLElement $element, $value, $group = null, Registry $input = null, JForm $form = null)
37	{
38		// Get the database object and a new query object.
39		$db = JFactory::getDbo();
40		$query = $db->getQuery(true);
41
42		// Build the query.
43		$query->select('COUNT(*)')
44			->from('#__users')
45			->where('username = ' . $db->quote($value));
46
47		// Get the extra field check attribute.
48		$userId = ($form instanceof JForm) ? $form->getValue('id') : '';
49		$query->where($db->quoteName('id') . ' <> ' . (int) $userId);
50
51		// Set and query the database.
52		$db->setQuery($query);
53		$duplicate = (bool) $db->loadResult();
54
55		if ($duplicate)
56		{
57			return false;
58		}
59
60		return true;
61	}
62}