PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
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 6 years ago Action.php 6 years ago DefaultAction.php 6 years ago Page.php 6 years ago SessionContainer.php 6 years ago
SessionContainer.php
195 lines
1 <?php
2 /**
3 * Object wrapping around session variable used to store controller data
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: SessionContainer.php 293868 2010-01-23 18:37:16Z avb $
43 * @link http://pear.php.net/package/HTML_QuickForm2
44 */
45
46 /**
47 * Object wrapping around session variable used to store controller data
48 *
49 * Unlike old HTML_QuickForm_Controller, this does not extend HTML_QuickForm2
50 * but accepts an instance of that in the constructor. You need to create a
51 * subclass of this class and implement its populateForm() method.
52 *
53 * @category HTML
54 * @package HTML_QuickForm2
55 * @author Alexey Borzov <avb@php.net>
56 * @author Bertrand Mansion <golgote@mamasam.com>
57 * @version Release: @package_version@
58 */
59 class HTML_QuickForm2_Controller_SessionContainer
60 {
61 /**
62 * A reference to a key in $_SESSION superglobal array
63 * @var array
64 */
65 protected $data;
66
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,
78 $controller->getId());
79 if (empty($_SESSION[$name])) {
80 $_SESSION[$name] = array(
81 'datasources' => array(),
82 'values' => array(),
83 'valid' => array()
84 );
85 }
86 $this->data =& $_SESSION[$name];
87 }
88
89 /**
90 * Stores the page submit values
91 *
92 * @param string Page ID
93 * @param array Page submit values
94 */
95 public function storeValues($pageId, array $values)
96 {
97 $this->data['values'][$pageId] = $values;
98 }
99
100 /**
101 * Returns the page values kept in session
102 *
103 * @param string Page ID
104 * @return array
105 */
106 public function getValues($pageId)
107 {
108 return array_key_exists($pageId, $this->data['values'])
109 ? $this->data['values'][$pageId]: array();
110 }
111
112 /**
113 * Stores the page validation status
114 *
115 * @param string Page ID
116 * @param bool Whether the page is valid
117 */
118 public function storeValidationStatus($pageId, $status)
119 {
120 $this->data['valid'][$pageId] = (bool)$status;
121 }
122
123 /**
124 * Returns the page validation status kept in session
125 *
126 * @param string Page ID
127 * @return bool
128 */
129 public function getValidationStatus($pageId)
130 {
131 return array_key_exists($pageId, $this->data['valid'])
132 ? $this->data['valid'][$pageId]: null;
133
134 }
135
136 /**
137 * Stores the controller data sources
138 *
139 * @param array A new data source list
140 * @throws HTML_QuickForm2_InvalidArgumentException if given array
141 * contains something that is not a valid data source
142 */
143 public function storeDatasources(array $datasources)
144 {
145 foreach ($datasources as $ds) {
146 if (!$ds instanceof HTML_QuickForm2_DataSource) {
147 throw new HTML_QuickForm2_InvalidArgumentException(
148 'Array should contain only DataSource instances'
149 );
150 }
151 }
152 $this->data['datasources'] = $datasources;
153 }
154
155 /**
156 * Returns the controller data sources
157 *
158 * @return array
159 */
160 public function getDatasources()
161 {
162 return $this->data['datasources'];
163 }
164
165 /**
166 * Stores some user-supplied parameter alongside controller data
167 *
168 * It is sometimes useful to pass some additional user data between pages
169 * of the form, thus this method. It will be removed with all the other
170 * data by {@link HTML_QuickForm2_Controller::destroySessionContainer()}
171 *
172 * @param string Parameter name
173 * @param string Parameter value
174 */
175 public function storeOpaque($name, $value)
176 {
177 if (!array_key_exists('opaque', $this->data)) {
178 $this->data['opaque'] = array();
179 }
180 $this->data['opaque'][$name] = $value;
181 }
182
183 /**
184 * Returns a user-supplied parameter
185 *
186 * @param string Parameter name
187 * @return mixed
188 */
189 public function getOpaque($name)
190 {
191 return (array_key_exists('opaque', $this->data)
192 && array_key_exists($name, $this->data['opaque']))
193 ? $this->data['opaque'][$name]: null;
194 }
195 }