Ferreteria/v2/usage/forms/creating: Difference between revisions

From Woozle Writes Code
< Ferreteria‎ | v2‎ | usage‎ | forms
Jump to navigation Jump to search
m (→‎Examples: minor code correction)
(→‎Fields and Controls: textarea specs)
Line 21: Line 21:
* '''fcFormControl_HTML''' - generic single-line text-editing field
* '''fcFormControl_HTML''' - generic single-line text-editing field
* '''fcFormControl_HTML_TextArea''' - multiline text
* '''fcFormControl_HTML_TextArea''' - multiline text
** attributes: rows, cols
* '''fcFormControl_HTML_Hidden''' - hidden values
* '''fcFormControl_HTML_Hidden''' - hidden values
* '''fcFormControl_HTML_DropDown''' - drop-down chooser
* '''fcFormControl_HTML_DropDown''' - drop-down chooser
Line 27: Line 28:
|}
|}
===Examples===
===Examples===
'''Timestamps''':
'''Timestamp''':
<php>
<php>
      $oField = new fcFormField_Time($oForm,'WhenEnt');
      $oField = new fcFormField_Time($oForm,'WhenEnt');
Line 35: Line 36:
This sets the format of the Control for the "WhenEnt" field based on the parameter string used by the PHP [http://php.net/manual/en/function.date.php date() function] &ndash; in this case, just the month (2 digits) and year (4 digits) are displayed.
This sets the format of the Control for the "WhenEnt" field based on the parameter string used by the PHP [http://php.net/manual/en/function.date.php date() function] &ndash; in this case, just the month (2 digits) and year (4 digits) are displayed.


'''Dropdown selectors''':
'''Dropdown selector''':
<php>
<php>
      $oField = new fcFormField_Num($oForm,'ID_Place');
      $oField = new fcFormField_Num($oForm,'ID_Place');
Line 41: Line 42:
$oCtrl->Records($this->PlaceTable()->GetData_forDropDown());
$oCtrl->Records($this->PlaceTable()->GetData_forDropDown());
</php>
</php>
'''TextArea''':
<php>$oCtrl = new fcFormControl_HTML_TextArea($oForm,$oField,array('rows'=>3,'cols'=>60));</php>


==Creating the Display Template==
==Creating the Display Template==
See {{vbzcart/code|dropins/orders/order.php#L1314}} (function PageTemplate()) for a working example.
See {{vbzcart/code|dropins/orders/order.php#L1314}} (function PageTemplate()) for a working example.

Revision as of 15:32, 12 November 2015

How to create a form for editing record-based data:

from Template:Vbzcart/code (function PageForm()): <php> $oForm = new fcForm_DB($this->Table()->ActionKey(),$this); $oField = new fcFormField_<type>($oForm,'<field name>'); $oCtrl = new fcFormControl_HTML[_<type>]($oForm,$oField,array([HTML attributes]); </php> The first line creates a Form object, the next line creates a Field, and the third line assigns a Control to the Field. Adding additional fields and controls follows the format of the last 2 lines.

Fields and Controls

Field types (Template:Ferreteria/code):

  • fcFormField_Text
  • fcFormField_Num
  • fcFormField_Time
    • ->Format(<date format>)

Control types (Template:Ferreteria/code):

  • fcFormControl_HTML - generic single-line text-editing field
  • fcFormControl_HTML_TextArea - multiline text
    • attributes: rows, cols
  • fcFormControl_HTML_Hidden - hidden values
  • fcFormControl_HTML_DropDown - drop-down chooser
    • ->Records(<dataset>);
  • fcFormControl_HTML_CheckBox - checkbox

Examples

Timestamp: <php> $oField = new fcFormField_Time($oForm,'WhenEnt'); $oCtrl = new fcFormControl_HTML($oForm,$oField,array('size'=>10)); $oField->Format('m/Y'); </php> This sets the format of the Control for the "WhenEnt" field based on the parameter string used by the PHP date() function – in this case, just the month (2 digits) and year (4 digits) are displayed.

Dropdown selector: <php> $oField = new fcFormField_Num($oForm,'ID_Place'); $oCtrl = new fcFormControl_HTML_DropDown($oForm,$oField,array()); $oCtrl->Records($this->PlaceTable()->GetData_forDropDown()); </php>

TextArea: <php>$oCtrl = new fcFormControl_HTML_TextArea($oForm,$oField,array('rows'=>3,'cols'=>60));</php>

Creating the Display Template

See Template:Vbzcart/code (function PageTemplate()) for a working example.