PageRenderTime 906ms CodeModel.GetById 32ms RepoModel.GetById 7ms app.codeStats 0ms

/redirect/code/trunk/administrator/components/com_redirect/libraries/jxtended/form/rules/username.php

https://bitbucket.org/eddieajau/the-art-of-joomla-archive
PHP | 63 lines | 30 code | 8 blank | 25 comment | 3 complexity | ad54be5af5c7d448ece3fbf93efe6089 MD5 | raw file
  1. <?php
  2. /**
  3. * @version $Id: username.php 390 2010-11-05 11:35:33Z eddieajau $
  4. * @package JXtended.Libraries
  5. * @subpackage Form
  6. * @copyright Copyright 2005 - 2010 New Life in IT Pty Ltd. All rights reserved.
  7. * @license GNU General Public License
  8. * @link http://www.theartofjoomla.com
  9. */
  10. defined('JPATH_BASE') or die('Restricted Access');
  11. juimport('jxtended.form.formrule');
  12. /**
  13. * Form Rule class for JXtended Libraries.
  14. *
  15. * @package JXtended.Libraries
  16. * @subpackage Form
  17. * @since 1.1
  18. */
  19. class JFormRuleUsername extends JFormRule
  20. {
  21. /**
  22. * Method to test if a username is unique.
  23. *
  24. * @param object $field A reference to the form field.
  25. * @param mixed $values The values to test for validiaty.
  26. * @return mixed JException on invalid rule, true if the value is valid, false otherwise.
  27. */
  28. public function test(&$field, &$values)
  29. {
  30. $return = false;
  31. $name = $field->attributes('name');
  32. $key = $field->attributes('field');
  33. $value = isset($values[$key]) ? $values[$key] : 0;
  34. // Check the rule.
  35. if (!$key) {
  36. return new JException('Invalid Form Rule :: '.get_class($this));
  37. }
  38. // Check if the username is unique.
  39. $db = &JFactory::getDbo();
  40. $db->setQuery(
  41. 'SELECT count(*) FROM `#__users`' .
  42. ' WHERE `username` = '.$db->Quote($values[$name]) .
  43. ' AND '.$db->nameQuote($key).' != '.$db->Quote($value)
  44. );
  45. $duplicate = (bool)$db->loadResult();
  46. // Check for a database error.
  47. if ($db->getErrorNum()) {
  48. return new JException('Database Error :: '.$db->getErrorMsg());
  49. }
  50. if (!$duplicate) {
  51. $return = true;
  52. }
  53. return $return;
  54. }
  55. }