PageRenderTime 138ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 1ms

/system/library/PEAR/HTML/QuickForm2/Rule/Empty.php

https://bitbucket.org/spekkionu/passworddb
PHP | 93 lines | 21 code | 4 blank | 68 comment | 6 complexity | 32972011ef44a62952b5731e601d5c3f MD5 | raw file
Possible License(s): BSD-2-Clause
  1. <?php
  2. /**
  3. * Rule checking that the field is empty
  4. *
  5. * PHP version 5
  6. *
  7. * LICENSE:
  8. *
  9. * Copyright (c) 2006-2012, Alexey Borzov <avb@php.net>,
  10. * Bertrand Mansion <golgote@mamasam.com>
  11. * All rights reserved.
  12. *
  13. * Redistribution and use in source and binary forms, with or without
  14. * modification, are permitted provided that the following conditions
  15. * are met:
  16. *
  17. * * Redistributions of source code must retain the above copyright
  18. * notice, this list of conditions and the following disclaimer.
  19. * * Redistributions in binary form must reproduce the above copyright
  20. * notice, this list of conditions and the following disclaimer in the
  21. * documentation and/or other materials provided with the distribution.
  22. * * The names of the authors may not be used to endorse or promote products
  23. * derived from this software without specific prior written permission.
  24. *
  25. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
  26. * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  27. * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  28. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  29. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  30. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  31. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  32. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
  33. * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  34. * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  35. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  36. *
  37. * @category HTML
  38. * @package HTML_QuickForm2
  39. * @author Alexey Borzov <avb@php.net>
  40. * @author Bertrand Mansion <golgote@mamasam.com>
  41. * @license http://opensource.org/licenses/bsd-license.php New BSD License
  42. * @version SVN: $Id: Empty.php 323363 2012-02-19 15:09:07Z avb $
  43. * @link http://pear.php.net/package/HTML_QuickForm2
  44. */
  45. /**
  46. * Base class for HTML_QuickForm2 rules
  47. */
  48. require_once 'HTML/QuickForm2/Rule.php';
  49. /**
  50. * Rule checking that the field is empty
  51. *
  52. * Handles both simple form fields and file uploads, the latter are considered
  53. * valid iff no file upload was attempted.
  54. *
  55. * The rule doesn't make much sense if used separately, but can be very helpful
  56. * if chained:
  57. * <code>
  58. * $spamCheck->addRule('empty')
  59. * ->or_($email->createRule('nonempty', 'Supply a valid email if you want to receive our spam')
  60. * ->and_($email->createRule('email')));
  61. * </code>
  62. *
  63. * @category HTML
  64. * @package HTML_QuickForm2
  65. * @author Alexey Borzov <avb@php.net>
  66. * @author Bertrand Mansion <golgote@mamasam.com>
  67. * @license http://opensource.org/licenses/bsd-license.php New BSD License
  68. * @version Release: 2.0.0
  69. * @link http://pear.php.net/package/HTML_QuickForm2
  70. */
  71. class HTML_QuickForm2_Rule_Empty extends HTML_QuickForm2_Rule
  72. {
  73. protected function validateOwner()
  74. {
  75. $value = $this->owner->getValue();
  76. if ($this->owner instanceof HTML_QuickForm2_Element_InputFile) {
  77. return isset($value['error']) && UPLOAD_ERR_NO_FILE == $value['error'];
  78. } elseif (is_array($value)) {
  79. return 0 == count(array_filter($value, 'strlen'));
  80. } else {
  81. return 0 == strlen($value);
  82. }
  83. }
  84. protected function getJavascriptCallback()
  85. {
  86. return "function() { return qf.rules.empty(" . $this->owner->getJavascriptValue() . "); }";
  87. }
  88. }
  89. ?>