PageRenderTime 43ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/libs/HTML/QuickForm2/DataSource/Array.php

https://github.com/CodeYellowBV/piwik
PHP | 101 lines | 32 code | 4 blank | 65 comment | 5 complexity | 03534063e0146c04b3cd3f9f2c0c654c MD5 | raw file
Possible License(s): LGPL-3.0, JSON, MIT, GPL-3.0, LGPL-2.1, GPL-2.0, AGPL-1.0, BSD-2-Clause, BSD-3-Clause
  1. <?php
  2. /**
  3. * Array-based data source for HTML_QuickForm2 objects
  4. *
  5. * PHP version 5
  6. *
  7. * LICENSE:
  8. *
  9. * Copyright (c) 2006-2010, 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: Array.php 294057 2010-01-26 21:10:28Z avb $
  43. * @link http://pear.php.net/package/HTML_QuickForm2
  44. */
  45. /**
  46. * Interface for data sources used by HTML_QuickForm2 objects
  47. */
  48. // require_once 'HTML/QuickForm2/DataSource.php';
  49. /**
  50. * Array-based data source for HTML_QuickForm2 objects
  51. *
  52. * @category HTML
  53. * @package HTML_QuickForm2
  54. * @author Alexey Borzov <avb@php.net>
  55. * @author Bertrand Mansion <golgote@mamasam.com>
  56. * @version Release: @package_version@
  57. */
  58. class HTML_QuickForm2_DataSource_Array implements HTML_QuickForm2_DataSource
  59. {
  60. /**
  61. * Array containing elements' values
  62. * @var array
  63. */
  64. protected $values;
  65. /**
  66. * Class constructor, initializes the values array
  67. *
  68. * @param array Array containing the elements' values
  69. */
  70. public function __construct($values = array())
  71. {
  72. $this->values = $values;
  73. }
  74. public function getValue($name)
  75. {
  76. if (empty($this->values)) {
  77. return null;
  78. }
  79. if (strpos($name, '[')) {
  80. $tokens = explode('[', str_replace(']', '', $name));
  81. $value = $this->values;
  82. do {
  83. $token = array_shift($tokens);
  84. if (!isset($value[$token])) {
  85. return null;
  86. }
  87. $value = $value[$token];
  88. } while (!empty($tokens));
  89. return $value;
  90. } elseif (isset($this->values[$name])) {
  91. return $this->values[$name];
  92. } else {
  93. return null;
  94. }
  95. }
  96. }
  97. ?>