Framework  3.9
field_renderers.inc
Go to the documentation of this file.
1 <?php
5 /**************************************************************
6 
7  Copyright (c) 2007-2010 Sonjara, Inc
8 
9  Permission is hereby granted, free of charge, to any person
10  obtaining a copy of this software and associated documentation
11  files (the "Software"), to deal in the Software without
12  restriction, including without limitation the rights to use,
13  copy, modify, merge, publish, distribute, sublicense, and/or sell
14  copies of the Software, and to permit persons to whom the
15  Software is furnished to do so, subject to the following
16  conditions:
17 
18  The above copyright notice and this permission notice shall be
19  included in all copies or substantial portions of the Software.
20 
21  Except as contained in this notice, the name(s) of the above
22  copyright holders shall not be used in advertising or otherwise
23  to promote the sale, use or other dealings in this Software
24  without prior written authorization.
25 
26  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
28  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
30  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
31  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
32  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
33  OTHER DEALINGS IN THE SOFTWARE.
34 
35 *****************************************************************/
36 
37 require_once realpath(dirname(__FILE__)."/data_item.inc");
38 
39 Fakoli::using("context_help");
40 
56 {
57  var $parent = null;
58  var $labelSuffix = "";
59  var $colspan = 1;
60  var $annotateBefore = false;
61  var $annotateNextLine = true;
62  var $hideLabel = false;
63  var $onPreProcess = null;
64  var $onPostProcess = null;
65 
73  {
74  global $auto_form_defaults;
75  $this->parent =& $parent;
76  if (isset($auto_form_defaults["labelSuffix"]))
77  {
78  $this->labelSuffix = $auto_form_defaults["labelSuffix"];
79  }
80  }
81 
90  function _printLabel($field, $colspan=1, $styles = "", $annotation = "")
91  {
92  $this->parent->layout->printLabel($field, $this, $styles, $annotation);
93  }
94 
95  function _getLabel($field, $addSuffix = true)
96  {
97  return $this->parent->layout->getLabel($field, $this, $addSuffix);
98  }
99 
106  function _startField($field, $styles = "")
107  {
108  $this->parent->layout->startField($field, $this, $styles);
109  }
110 
116  function _endField($field)
117  {
118  $this->parent->layout->endField($field, $this);
119  }
120 
121 
133  function addValidatorsToForm($field, $required = false)
134  {
135  $label = isset($this->label) ? $this->label : $this->parent->prettifyFieldName($field);
136 
137  if($required)
138  $this->parent->validator->add(new RequiredValidator($field, $label));
139  }
140 
152  function addSearchValidatorsToForm($field, $mode, $required = false)
153  {
154  if(!isset($this->label))
155  {
156  $this->label = $this->parent->prettifyFieldName($field);
157  }
158 
159  if($mode != "range")
160  {
161  $this->addValidatorsToForm("{$field}:{$mode}", $required);
162  }
163  else
164  {
165  // Store the from label and reset it back into the renderer
166  // after calling addValidatorsToForm.
167  $fromLabel = $this->label;
168  $this->addValidatorsToForm("{$field}:from", $required);
169  $this->label = preg_replace("/between|from/i", "To", $fromLabel);
170  $this->addValidatorsToForm("{$field}:to", $required);
171  $this->label = $fromLabel;
172  }
173  }
174 
187  function formatName($item, $name)
188  {
189  if (strpos($name, "{") !== false)
190  {
191  $name = $item->format($name);
192  }
193  else
194  {
195  $name = $item->$name;
196  }
197  return $name;
198  }
199 
206  function renderScript($field)
207  {
208  // No output by default
209  }
210 
217  function renderField($field)
218  {
219  // No output by default
220  }
221 
229  function renderSearchScript($field, $mode)
230  {
231  // No output by default
232  }
233 
240  function renderSearchField($field, $mode)
241  {
242  // No output by default
243  }
244 
252  function renderOnSubmitHandler($field)
253  {
254  // No output by default
255  }
256 
265  function preProcess($field = "")
266  {
267  if ($this->onPreProcess != null)
268  {
269  $callback = $this->onPreProcess;
270  call_user_func($callback, $this, $field);
271  }
272  }
273 
281  function postProcess($field = "")
282  {
283  if ($this->onPostProcess != null)
284  {
285  $callback = $this->onPostProcess;
286  call_user_func($callback, $this, $field);
287  }
288  }
289 }
290 
291 require_once realpath(dirname(__FILE__))."/field_renderers/boolean_field_renderer.inc";
292 require_once realpath(dirname(__FILE__))."/field_renderers/cross_reference_select_field_renderer.inc";
293 require_once realpath(dirname(__FILE__))."/field_renderers/currency_field_renderer.inc";
294 require_once realpath(dirname(__FILE__))."/field_renderers/date_field_renderer.inc";
295 require_once realpath(dirname(__FILE__))."/field_renderers/datetime_field_renderer.inc";
296 require_once realpath(dirname(__FILE__))."/field_renderers/file_upload_field_renderer.inc";
297 require_once realpath(dirname(__FILE__))."/field_renderers/html_field_renderer.inc";
298 require_once realpath(dirname(__FILE__))."/field_renderers/number_field_renderer.inc";
299 require_once realpath(dirname(__FILE__))."/field_renderers/password_field_renderer.inc";
300 require_once realpath(dirname(__FILE__))."/field_renderers/radio_button_field_renderer.inc";
301 require_once realpath(dirname(__FILE__))."/field_renderers/rating_field_renderer.inc";
302 require_once realpath(dirname(__FILE__))."/field_renderers/related_image_select_field_renderer.inc";
303 require_once realpath(dirname(__FILE__))."/field_renderers/related_item_radio_button_field_renderer.inc";
304 require_once realpath(dirname(__FILE__))."/field_renderers/related_item_select_field_renderer.inc";
305 require_once realpath(dirname(__FILE__))."/field_renderers/related_item_checklist_field_renderer.inc";
306 require_once realpath(dirname(__FILE__))."/field_renderers/select_field_renderer.inc";
307 require_once realpath(dirname(__FILE__))."/field_renderers/slider_field_renderer.inc";
308 require_once realpath(dirname(__FILE__))."/field_renderers/string_field_renderer.inc";
309 require_once realpath(dirname(__FILE__))."/field_renderers/text_field_renderer.inc";
310 require_once realpath(dirname(__FILE__))."/field_renderers/time_field_renderer.inc";
311 require_once realpath(dirname(__FILE__))."/field_renderers/tree_select_field_renderer.inc";
312 require_once realpath(dirname(__FILE__))."/field_renderers/checklist_field_renderer.inc";
313 require_once realpath(dirname(__FILE__))."/field_renderers/timezone_field_renderer.inc";
314 require_once realpath(dirname(__FILE__))."/field_renderers/zipcode_field_renderer.inc";
315 require_once realpath(dirname(__FILE__))."/field_renderers/select_field_view_source_renderer.inc";
316 require_once realpath(dirname(__FILE__))."/field_renderers/data_list_field_renderer.inc";
317 require_once realpath(dirname(__FILE__))."/field_renderers/phone_number_field_renderer.inc";
318 require_once realpath(dirname(__FILE__))."/field_renderers/start_date_field_renderer.inc";
319 require_once realpath(dirname(__FILE__))."/field_renderers/subselect_field_renderer.inc";
320 require_once realpath(dirname(__FILE__))."/field_renderers/subselect_checklist_field_renderer.inc";
321 require_once realpath(dirname(__FILE__))."/field_renderers/compound_select_field_renderer.inc";
322 require_once realpath(dirname(__FILE__))."/field_renderers/url_field_renderer.inc";
323 require_once realpath(dirname(__FILE__))."/field_renderers/date_of_birth_field_renderer.inc";
324 require_once realpath(dirname(__FILE__))."/field_renderers/push_button_field_renderer.inc";
325 require_once realpath(dirname(__FILE__))."/field_renderers/push_button_checklist_field_renderer.inc";
326 require_once realpath(dirname(__FILE__))."/field_renderers/option_list_field_renderer.inc";
327 require_once realpath(dirname(__FILE__))."/field_renderers/option_checklist_field_renderer.inc";
328 require_once realpath(dirname(__FILE__))."/field_renderers/credit_card_field_renderer.inc";
329 require_once realpath(dirname(__FILE__))."/field_renderers/table_select_field_renderer.inc";
330 require_once realpath(dirname(__FILE__))."/field_renderers/signature_field_renderer.inc";
331 require_once realpath(dirname(__FILE__))."/field_renderers/option_cross_reference_field_renderer.inc";
332 require_once realpath(dirname(__FILE__))."/field_renderers/toggle_field_renderer.inc";
333 require_once realpath(dirname(__FILE__))."/field_renderers/color_field_renderer.inc";
334 require_once realpath(dirname(__FILE__))."/field_renderers/static_field_renderer.inc";?>
FieldRenderer is the abstract base class for all FieldRenderers.
_startField($field, $styles="")
Internal method to generate the starting HTML for the field (including the label)
addSearchValidatorsToForm($field, $mode, $required=false)
For SearchForm, the validator field needs to match the name tag in the form which is in the format fi...
preProcess($field="")
FieldRenderers can override this method to provide behavior that occurs prior to the saving of the pa...
renderField($field)
FieldRenderers must override this method to provide the HTML implementation of the control used to ed...
renderSearchScript($field, $mode)
FieldRenderers can override this method to provide any Javascript that the control requires when bein...
addValidatorsToForm($field, $required=false)
This method is called by the AutoForm to add any default input validators that are required by the Fi...
_getLabel($field, $addSuffix=true)
$onPreProcess
callback hook for processing prior to saving the form's data object - individual renderers may overri...
formatName($item, $name)
Formats the given DataItem based on the supplied format string.
renderOnSubmitHandler($field)
FieldRenderers can override this method to provide any Javascript that must be executed when the form...
_endField($field)
Internal method to generate the closing HTML for the field.
renderScript($field)
FieldRenderers can override this method to provide any Javascript that their control requires for an ...
renderSearchField($field, $mode)
FieldRenderers must override this method to provide the HTML implementation of the control displayed ...
$onPostProcess
callback hook for processing after saving the form's data object - individual renderers may override ...
_printLabel($field, $colspan=1, $styles="", $annotation="")
Internal method to generate the HTML for the field label.
FieldRenderer($parent)
Constructor.
postProcess($field="")
FieldRenderers can override this method to provide behavior that occurs after the parent form's targe...
RequiredField Validator.
Definition: validation.inc:76