Framework  3.9
TableSelectFieldRenderer Class Reference
+ Inheritance diagram for TableSelectFieldRenderer:
+ Collaboration diagram for TableSelectFieldRenderer:

Public Member Functions

 __construct ($form, $field, $label, $handler, $processor=null, $mode="single", $data=null)
 
 buildTable ($field)
 
 formatSelector ($item)
 
 renderScript ($field)
 FieldRenderers can override this method to provide any Javascript that their control requires for an edit form. More...
 
 renderField ($field)
 FieldRenderers must override this method to provide the HTML implementation of the control used to edit the field. More...
 
 postProcess ($field="")
 FieldRenderers can override this method to provide behavior that occurs after the parent form's target object has been saved to the database. More...
 
- Public Member Functions inherited from FieldRenderer
 FieldRenderer ($parent)
 Constructor. More...
 
 _printLabel ($field, $colspan=1, $styles="", $annotation="")
 Internal method to generate the HTML for the field label. More...
 
 _getLabel ($field, $addSuffix=true)
 
 _startField ($field, $styles="")
 Internal method to generate the starting HTML for the field (including the label) More...
 
 _endField ($field)
 Internal method to generate the closing HTML for the field. More...
 
 addValidatorsToForm ($field, $required=false)
 This method is called by the AutoForm to add any default input validators that are required by the FieldRenderer. More...
 
 addSearchValidatorsToForm ($field, $mode, $required=false)
 For SearchForm, the validator field needs to match the name tag in the form which is in the format field:mode. More...
 
 formatName ($item, $name)
 Formats the given DataItem based on the supplied format string. More...
 
 renderSearchScript ($field, $mode)
 FieldRenderers can override this method to provide any Javascript that the control requires when being used in a search form. More...
 
 renderSearchField ($field, $mode)
 FieldRenderers must override this method to provide the HTML implementation of the control displayed for the field in a search form. More...
 
 renderOnSubmitHandler ($field)
 FieldRenderers can override this method to provide any Javascript that must be executed when the form is submitted on the client. More...
 
 preProcess ($field="")
 FieldRenderers can override this method to provide behavior that occurs prior to the saving of the parent form's target object to the database. More...
 

Public Attributes

 $table = null
 
 $field
 
 $label
 
 $colspan = 2
 
 $mode = "single"
 "single" or "multi" selection More...
 
 $handler = null
 
 $processor = null
 
 $data = null
 
- Public Attributes inherited from FieldRenderer
 $parent = null
 
 $labelSuffix = ""
 
 $colspan = 1
 
 $annotateBefore = false
 
 $annotateNextLine = true
 
 $hideLabel = false
 
 $onPreProcess = null
 callback hook for processing prior to saving the form's data object - individual renderers may override with custom processing More...
 
 $onPostProcess = null
 callback hook for processing after saving the form's data object - individual renderers may override with custom processing More...
 

Detailed Description

Definition at line 8 of file table_select_field_renderer.inc.

Constructor & Destructor Documentation

◆ __construct()

TableSelectFieldRenderer::__construct (   $form,
  $field,
  $label,
  $handler,
  $processor = null,
  $mode = "single",
  $data = null 
)

Definition at line 23 of file table_select_field_renderer.inc.

24  {
25  $this->FieldRenderer($form);
26 
27  $this->field = $field;
28  $this->label = $label;
29  $this->handler = $handler;
30  $this->processor = $processor;
31  $this->mode = $mode;
32  $this->data = $data;
33 
34  if ($form->data->hasField($field))
35  {
36  $form->override($field, $label, $this);
37  }
38  else
39  {
40  $form->add($this, $field);
41  // JDG 8/14/2011 - allow "additional" fields to override label
42  $form->overrides[$field]['label'] = $label;
43  }
44 
45  }
FieldRenderer($parent)
Constructor.
$mode
"single" or "multi" selection

Member Function Documentation

◆ buildTable()

TableSelectFieldRenderer::buildTable (   $field)

Definition at line 47 of file table_select_field_renderer.inc.

48  {
49  $this->table = new DataListView($this->data, "{$field}_table");
50  $this->table->rowId = true;
51 
52  $this->table->pageSize = 5;
53  $this->table->filter = true;
54  $this->table->emptyMessage = $this->emptyMessage;
55 
56  $this->table->selectable = true;
57  $this->table->selector(array($this, 'formatSelector'));
58 
59  call_user_func_array($this->handler, array($this->table));
60  }
DataListView displays a list of DataItems (or InnerJoinResults) in tabular format.
Definition: data_view.inc:56

◆ formatSelector()

TableSelectFieldRenderer::formatSelector (   $item)

Definition at line 62 of file table_select_field_renderer.inc.

63  {
64  $pk = $item->getPrimaryKey();
65  $pkval = $item->get($pk);
66 
67  switch($this->mode)
68  {
69  case "multi":
70  $control = "checkbox";
71  $name = "{$this->field}[]";
72  break;
73 
74  case "single":
75  default:
76  $control = "radio";
77  $name = $this->field;
78  break;
79  }
80 
81  $checked = array_key_exists($pkval, $this->related) ? " checked='checked'" : "";
82 
83  return $item->format("<input type='{$control}' class='{$control}' name='{$name}' id='{$this->field}_{{$pk}}' value='{{$pk}}'{$checked}/>");
84  }

◆ postProcess()

TableSelectFieldRenderer::postProcess (   $field = "")

FieldRenderers can override this method to provide behavior that occurs after the parent form's target object has been saved to the database.

For example, the CrossReferenceSelectFieldRenderer overrides this method to update crossference tables based on the user's selection.

Parameters
string$field

Reimplemented from FieldRenderer.

Definition at line 114 of file table_select_field_renderer.inc.

115  {
116  if (!$field) $field = $this->field;
117 
118  if ($this->processor)
119  {
120  call_user_func_array($this->processor, array($field));
121  }
122 
123  return true;
124  }

◆ renderField()

TableSelectFieldRenderer::renderField (   $field)

FieldRenderers must override this method to provide the HTML implementation of the control used to edit the field.

Parameters
string$fieldthe field name

Reimplemented from FieldRenderer.

Definition at line 98 of file table_select_field_renderer.inc.

99  {
100  if (!$field) $field = $this->field;
101 
102  if (!$this->table)
103  {
104  $this->buildTable($field);
105  }
106 
107  $this->_startField($field);
108 
109  echo $this->table->drawView();
110 
111  $this->_endField($field);
112  }
_startField($field, $styles="")
Internal method to generate the starting HTML for the field (including the label)
_endField($field)
Internal method to generate the closing HTML for the field.

◆ renderScript()

TableSelectFieldRenderer::renderScript (   $field)

FieldRenderers can override this method to provide any Javascript that their control requires for an edit form.

Parameters
string$fieldthe field name

Reimplemented from FieldRenderer.

Definition at line 86 of file table_select_field_renderer.inc.

87  {
88  if (!$field) $field = $this->field;
89 
90  if (!$this->table)
91  {
92  $this->buildTable($field);
93  }
94 
95  echo $this->table->writeScript();
96  }

Member Data Documentation

◆ $colspan

TableSelectFieldRenderer::$colspan = 2

Definition at line 15 of file table_select_field_renderer.inc.

◆ $data

TableSelectFieldRenderer::$data = null

Definition at line 21 of file table_select_field_renderer.inc.

◆ $field

TableSelectFieldRenderer::$field

Definition at line 12 of file table_select_field_renderer.inc.

◆ $handler

TableSelectFieldRenderer::$handler = null

Definition at line 19 of file table_select_field_renderer.inc.

◆ $label

TableSelectFieldRenderer::$label

Definition at line 13 of file table_select_field_renderer.inc.

◆ $mode

TableSelectFieldRenderer::$mode = "single"

"single" or "multi" selection

Definition at line 17 of file table_select_field_renderer.inc.

◆ $processor

TableSelectFieldRenderer::$processor = null

Definition at line 20 of file table_select_field_renderer.inc.

◆ $table

TableSelectFieldRenderer::$table = null

Definition at line 10 of file table_select_field_renderer.inc.


The documentation for this class was generated from the following file: