Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
boolean.inc
1 <?php
18 require_once SQ_INCLUDE_PATH.'/asset_attribute.inc';
19 
39 {
40 
41 
49  function Asset_Attribute_Boolean($attributeid=0, $value=null)
50  {
51  $this->Asset_Attribute($attributeid, $value);
52 
53  // set default parameters
54  if (!isset($this->_params['allow_empty'])) {
55  $this->_params['allow_empty'] = true;
56  }
57 
58  // set default edit parameters
59  $this->_edit_params['true_text'] = translate('true');
60  $this->_edit_params['false_text'] = translate('false');
61  $this->_edit_params['empty_text'] = '';
62 
63  }//end constructor
64 
65 
74  function setEditParams(&$node)
75  {// TODO TOF TEST
76  if (!parent::setEditParams($node)) return false;
77  if (isset($node->attributes()->true_text)) {
78  $this->_edit_params['true_text'] = translate((string)$node->attributes()->true_text);
79  }
80  if (isset($node->attributes()->false_text)) {
81  $this->_edit_params['false_text'] = translate((string)$node->attributes()->false_text);
82  }
83  if (isset($node->attributes()->empty_text)) {
84  $this->_edit_params['empty_text'] = translate((string)$node->attributes()->empty_text);
85  }
86  return true;
87 
88  }//end setEditParams()
89 
90 
99  function paintEditParams($prefix, $write_access=false)
100  {
101  echo '<b>Boolean Attribute " '.ucwords(str_replace('_', ' ', $this->name)).' " ('.$this->name.')</b><br />';
102  ?>
103  <table class="sq-backend-table">
104  <tr>
105  <td class="sq-backend-section-heading" style="width: 100px;"><?php echo translate('true_text'); ?></td>
106  <td class="sq-backend-table-cell">
107  <?php
108  if ($write_access) {
109  text_box($prefix.'_true', $this->_edit_params['true_text']);
110  } else {
111  echo $this->_edit_params['true_text'];
112  }
113  ?>
114  </td>
115  </tr>
116  <tr>
117  <td class="sq-backend-section-heading" style="width: 100px;"><?php echo translate('false_text'); ?></td>
118  <td class="sq-backend-table-cell">
119  <?php
120  if ($write_access) {
121  text_box($prefix.'_false', $this->_edit_params['false_text']);
122  } else {
123  echo $this->_edit_params['false_text'];
124  }
125  ?>
126  </td>
127  </tr>
128  <?php
129  if ($this->_params['allow_empty']) {
130  ?>
131  <tr>
132  <td class="sq-backend-section-heading" style="width: 100px;"><?php echo translate('empty_text'); ?></td>
133  <td class="sq-backend-table-cell">
134  <?php
135  if ($write_access) {
136  text_box($prefix.'_empty', $this->_edit_params['empty_text']);
137  } else {
138  echo $this->_edit_params['empty_text'];
139  }
140  ?>
141  </td>
142  </tr>
143  <?php
144  }
145  ?>
146  </table>
147  <?php
148 
149  }//end paintEditParams()
150 
151 
160  function processEditParams($prefix)
161  {
162  if (!empty($_POST[$prefix.'_true'])) {
163  $this->_edit_params['true_text'] = $_POST[$prefix.'_true'];
164  }
165 
166  if (!empty($_POST[$prefix.'_false'])) {
167  $this->_edit_params['false_text'] = $_POST[$prefix.'_false'];
168  }
169 
170  if (!empty($_POST[$prefix.'_empty'])) {
171  $this->_edit_params['empty_text'] = $_POST[$prefix.'_empty'];
172  }
173 
174  $values = Array();
175  $values['true_text'] = $this->_edit_params['true_text'];
176  $values['false_text'] = $this->_edit_params['false_text'];
177  $values['empty_text'] = $this->_edit_params['empty_text'];
178 
179  return $values;
180 
181  }//end processEditParams()
182 
183 
193  function paint($prefix, $read_only=false)
194  {
195  require_once SQ_LIB_PATH.'/html_form/html_form.inc';
196  $options = Array();
197 
198  if ($this->_params['allow_empty']) {
199  if (empty($this->_edit_params['empty_text'])) {
200  $this->_edit_params['empty_text'] = '-- Leave Empty --';
201  }
202  $options[''] = $this->_edit_params['empty_text'];
203  }
204 
205  $options['1'] = $this->_edit_params['true_text'];
206  $options['0'] = $this->_edit_params['false_text'];
207 
208  if ($read_only) {
209  echo $options[(string)$this->value];
210  return;
211  }
212 
213  combo_box($prefix, $options, false, $this->value);
214 
215  }//end paint()
216 
217 
225  function process($prefix)
226  {
227  if (!isset($_REQUEST[$prefix])) return false;
228  $value = $_REQUEST[$prefix];
229  if ($this->value !== $value && $this->setValue($value)) {
230  $this->processed = true;
231  } else {
232  $this->processed = false;
233  }
234 
235  }//end process()
236 
237 
246  function validateValue(&$value)
247  {
248  if (array_get_index($this->_params, 'allow_empty', false) && is_string($value) && $value == '') {
249  return true;
250  }
251 
252  $new_value = (int) $value;
253  if ((string) $new_value != (string) $value) {
254  // check for strings that mean the same as true and false
255  switch (strtolower((string) $value)) {
256  case 'true' :
257  case 't' :
258  case 'yes' :
259  case 'y' :
260  $new_value = 1;
261  break;
262 
263  case 'false' :
264  case 'f' :
265  case 'no' :
266  case 'n' :
267  $new_value = 0;
268  break;
269  }
270  }
271  $value = (empty($new_value)) ? 0 : 1;
272  return true;
273 
274  }//end validateValue()
275 
276 
283  function getContent()
284  {
285  if ($this->value == 0) {
286  return 'false';
287  } else if ($this->value == 1) {
288  return 'true';
289  } else {
290  return 'empty';
291  }
292 
293  }//end getContent()
294 
295 
296 }//end class
297 
298 ?>