PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / libs / HTML / QuickForm2 / Controller / SessionContainer.php
matomo / app / libs / HTML / QuickForm2 / Controller Last commit date
Action 2 years ago Action.php 2 years ago DefaultAction.php 2 years ago Page.php 2 years ago SessionContainer.php 2 years ago
SessionContainer.php
177 lines
1 <?php
2
3 namespace {
4 /**
5 * Object wrapping around session variable used to store controller data
6 *
7 * PHP version 5
8 *
9 * LICENSE:
10 *
11 * Copyright (c) 2006-2010, Alexey Borzov <avb@php.net>,
12 * Bertrand Mansion <golgote@mamasam.com>
13 * All rights reserved.
14 *
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 *
19 * * Redistributions of source code must retain the above copyright
20 * notice, this list of conditions and the following disclaimer.
21 * * Redistributions in binary form must reproduce the above copyright
22 * notice, this list of conditions and the following disclaimer in the
23 * documentation and/or other materials provided with the distribution.
24 * * The names of the authors may not be used to endorse or promote products
25 * derived from this software without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
28 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
29 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
31 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
33 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
34 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
35 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 *
39 * @category HTML
40 * @package HTML_QuickForm2
41 * @author Alexey Borzov <avb@php.net>
42 * @author Bertrand Mansion <golgote@mamasam.com>
43 * @license http://opensource.org/licenses/bsd-license.php New BSD License
44 * @version SVN: $Id: SessionContainer.php 293868 2010-01-23 18:37:16Z avb $
45 * @link http://pear.php.net/package/HTML_QuickForm2
46 */
47 /**
48 * Object wrapping around session variable used to store controller data
49 *
50 * Unlike old HTML_QuickForm_Controller, this does not extend HTML_QuickForm2
51 * but accepts an instance of that in the constructor. You need to create a
52 * subclass of this class and implement its populateForm() method.
53 *
54 * @category HTML
55 * @package HTML_QuickForm2
56 * @author Alexey Borzov <avb@php.net>
57 * @author Bertrand Mansion <golgote@mamasam.com>
58 * @version Release: @package_version@
59 */
60 class HTML_QuickForm2_Controller_SessionContainer
61 {
62 /**
63 * A reference to a key in $_SESSION superglobal array
64 * @var array
65 */
66 protected $data;
67 /**
68 * Class constructor
69 *
70 * Initializes a variable in $_SESSION array, its name is based upon the
71 * name of the Controller passed here
72 *
73 * @param HTML_QuickForm2_Controller
74 */
75 public function __construct(\HTML_QuickForm2_Controller $controller)
76 {
77 $name = \sprintf(\HTML_QuickForm2_Controller::KEY_CONTAINER, $controller->getId());
78 if (empty($_SESSION[$name])) {
79 $_SESSION[$name] = array('datasources' => array(), 'values' => array(), 'valid' => array());
80 }
81 $this->data =& $_SESSION[$name];
82 }
83 /**
84 * Stores the page submit values
85 *
86 * @param string Page ID
87 * @param array Page submit values
88 */
89 public function storeValues($pageId, array $values)
90 {
91 $this->data['values'][$pageId] = $values;
92 }
93 /**
94 * Returns the page values kept in session
95 *
96 * @param string Page ID
97 * @return array
98 */
99 public function getValues($pageId)
100 {
101 return \array_key_exists($pageId, $this->data['values']) ? $this->data['values'][$pageId] : array();
102 }
103 /**
104 * Stores the page validation status
105 *
106 * @param string Page ID
107 * @param bool Whether the page is valid
108 */
109 public function storeValidationStatus($pageId, $status)
110 {
111 $this->data['valid'][$pageId] = (bool) $status;
112 }
113 /**
114 * Returns the page validation status kept in session
115 *
116 * @param string Page ID
117 * @return bool
118 */
119 public function getValidationStatus($pageId)
120 {
121 return \array_key_exists($pageId, $this->data['valid']) ? $this->data['valid'][$pageId] : null;
122 }
123 /**
124 * Stores the controller data sources
125 *
126 * @param array A new data source list
127 * @throws HTML_QuickForm2_InvalidArgumentException if given array
128 * contains something that is not a valid data source
129 */
130 public function storeDatasources(array $datasources)
131 {
132 foreach ($datasources as $ds) {
133 if (!$ds instanceof \HTML_QuickForm2_DataSource) {
134 throw new \HTML_QuickForm2_InvalidArgumentException('Array should contain only DataSource instances');
135 }
136 }
137 $this->data['datasources'] = $datasources;
138 }
139 /**
140 * Returns the controller data sources
141 *
142 * @return array
143 */
144 public function getDatasources()
145 {
146 return $this->data['datasources'];
147 }
148 /**
149 * Stores some user-supplied parameter alongside controller data
150 *
151 * It is sometimes useful to pass some additional user data between pages
152 * of the form, thus this method. It will be removed with all the other
153 * data by {@link HTML_QuickForm2_Controller::destroySessionContainer()}
154 *
155 * @param string Parameter name
156 * @param string Parameter value
157 */
158 public function storeOpaque($name, $value)
159 {
160 if (!\array_key_exists('opaque', $this->data)) {
161 $this->data['opaque'] = array();
162 }
163 $this->data['opaque'][$name] = $value;
164 }
165 /**
166 * Returns a user-supplied parameter
167 *
168 * @param string Parameter name
169 * @return mixed
170 */
171 public function getOpaque($name)
172 {
173 return \array_key_exists('opaque', $this->data) && \array_key_exists($name, $this->data['opaque']) ? $this->data['opaque'][$name] : null;
174 }
175 }
176 }
177