Database fields are defined by the $fields value in the admin-ui class. Example:
protected $fields = array(
'myfield_id' => array("title"=>"My Title", "type"=>"text", "data"=>"str", "width"=>"auto", "inline"=>true)
// .....
);
| Key | Format | Description |
|---|---|---|
| title | string | Field Title |
| type | string | Type of Field |
| data | string | Data Type |
| width | string | width of the column (List View) |
| inline | boolean | string | Enable or disable inline editing. |
| help | string | Popup helper text (tooltip) |
| readParms | array | Parameters specific to the 'list' mode. |
| writeParms | array | Parameters specific to the 'edit' and 'create' modes. |
| validate | boolean | string | Marks the field as required (*). |
| Type | Description |
|---|---|
| text | text box |
| number | text box (number) |
| checkbox | checkbox (0 or 1 is returned) |
| icon | icon (from media manager) |
| textarea | text area (text only) |
| boolean | radio buttons with enable/disable |
| bbarea | right text area (html) |
| dropdown | dropdown list (ie. <select></select> ) |
| userclass | drop-down list of userclasses |
| userclasses | checkboxes for multiple userclasses |
| datestamp | date / time text box |
| user | user selection text box. (type 3 letters to find/search) |
| hidden | hidden field |
| ip | text field with ip decoding |
| text field for email addresses | |
| url | text field for urls (becomes clickable in list mode) |
| password | password field (with optional generator) |
| image | Media-manager image selection tool for a single image |
| images | Media-manager image selection tool for multiple images |
| file | Media-manager file selection tool for a single file |
| files | Media-manager file selection tool for multiple files |
| media | Media-Manager selection tool for images, mp4, youtube and gylphs. (requires type=json) |
| method | custom method |
| lanlist | drop-down list of installed languages |
| language | drop-down list of all languages |
| templates | Dropdown list of templates (from a template file) |
| null (without quotes) | Ignore this field and do not save it's data |
| false (without quotes) | Hide this field but save it's data if a posted key value is found. |
| Value | Description |
|---|---|
| str | Posted data is converted to string before saving to the database |
| safestr | Posted data is run through a filter (using filter_var(FILTER_SANITIZE_STRING)) and thus strips HTML. |
| int | Posted data is converted to integer before saving to the database |
| array | Posted data is converted to an e107 array format. (use e107::unserialize() to decode) |
| json | Posted data is converted to json format before saving to the database |
| false (no quotes) | Posted data from this field is not saved to the database |
| Key | Value | Field-type | Comments |
|---|---|---|---|
| thumb | (integer) | image | Set the thumbnail width |
| url | (string) e_url.php key value or a field key. | number, text, tags, null | Wrap value in a link |
| target | (string) blank | dialog | number, text, tags, null | Target for 'url' above. |
| Key | Value | Field-type | Comments |
|---|---|---|---|
| pre | (html) | (all) | Render html just before the field |
| post | (html) | (all) | Render html just after the field |
| media | (string) | bbarea | Sets the media-owner category to be used by the media-manager |
| video | 0 or 1 | image | Show video selector tab in media-manager |
| path | 'plugin' or null | image | When set to 'plugin', images will be stored in the 'plugin' folder within e107_media |
| glyphs | 0 or 1 | icon | Show glyph selector tab in media-manager |
| size | large, xlarge, xxlarge, block-level | text, url, email, textarea, dropdown | Set the size (width) of input field |
| optArray | (array of key=>value pairs) | dropdown, checkboxes | Set the keys/values to be used in the dropdown or checkboxes. |
| placeholder | (string) | text, url, email, textarea | Placeholder text |
| pattern | (regexp) | text, url, email | Regular expression validation |
| type | date or datetime | datestamp | Choose between date or date and time |
| readonly | 0 or 1 | datestamp | Make element read-only |
| auto | 0 or 1 | datestamp | Insert current date/time automatically |
| label | yesno | boolean | Change "Enabled" and "Disabled" to "Yes" and "No". |
| inverse | 0 or 1 | boolean | Invert the values of 0 and 1. ie. "Disabled" = 1 and "Enabled" = 0. |
| enabled | (string) | boolean | Alternate text to replace "Enabled" |
| disabled | (string) | boolean | Alternate text to replace "Disabled" |
| classlist | public, guest, nobody, member, admin, main, classes (comma separated) |
userclass | Set which userclasses should be displayed. |
| tdClassLeft | (string) | (all) | Set the css class for the left-side table cell. |
| tdClassRight | (string) | (all) | Set the css class for the right-side table cell. |
| trClass | (string) | (all) | Set the css class for the table row. |
| nolabel | 0 or 1 | (all) | Hide the left table cell |
The admin UI allows to automatically create a tree structure based on parent/child relationship tables. Examples can be found in the forum and download plugin. In order to add a tree structure, add the following code:
protected $sortField = 'field1';
protected $sortParent = 'field2';
protected $treePrefix = 'field3';
In this case, field1 represents the fields which determines the order (for example an ID field). The 'field2' represents the field which is the parent and 'field3' the child. For example:
protected $sortField = 'download_category_order';
protected $sortParent = 'download_category_parent';
protected $treePrefix = 'download_category_name';