Technical Documentation

ID Category Req. Element Action
6 array yes $zz Description of database table and fields
353 string no $zz['access'] allows to restrict access to main record, like $zz['fields'][n]['access'] to subtables * add_only: only allow to add record, do not show anything else (add new record-link, list table, ...) * edit_only: only allow to edit record, do not show anything else (add new record-link, list table, ...) * show: only view records * show_edit_add (no deletion possible) * show_and_add (no deletion and editing possible, but adding new records) * show_and_delete * add_then_edit: only allow to add a new record, then to reedit this record if it already exists (only works with GET['where']...) * edit_details_only: do not edit main record, allow only detail records to be edited, no deletion and adding possible * edit_details_and_add: do not edit main record, allow only detail records to be edited, adding possible (works only in combination with conditions) * none: only show list, no possibility to do anything with the records * all: allows to do everything * search_but_no_list: shows search form but no list (search form normally is tied to list), no editing allowed

Relations: $zz['fields'][n]['access']

954 boolean no $zz['add_from_source_id'] Allows to add from source_id even if the access to that ID is restricted by a $zz['where'] or $_GET['where']
751 array no $zz['conditional_fields']
752 array no $zz['conditional_fields'][n]
759 array no $zz['conditional_fields'][n]['fields']

Relations: $zz['fields'][n]

758 string no $zz['conditional_fields'][n]['max_records']
754 boolean no $zz['conditional_fields'][n]['remove_template']
757 string: SQL no $zz['conditional_fields'][n]['sql']
756 string no $zz['conditional_fields'][n]['table_name']
753 integer no $zz['conditional_fields'][n]['template_field']
755 string no $zz['conditional_fields'][n]['title']
204 array no $zz['conditions'] Numerical indexed array of conditions
798 boolean no $zz['conditions'][n]['add']['always'] if set to true this means that the corresponding condition is always true if a record will be added
207 string: field no $zz['conditions'][n]['add']['key_field_name'] To make clear if a condition is true or not while adding a record. Key field name; the corresponding value from $zz_conf['add'] will be used for the SQL query in 'sql'.

Relations: $zz['conditions'][n]['add']['sql']; $zz_conf['add']

206 string: SQL no $zz['conditions'][n]['add']['sql'] To make clear if a condition is true or not while adding a record. SQL query ending with `WHERE key_field_name = ` where value of 'key_field_name' will be added. Together with the 'where' or 'having'-condition, if this SQL query returns more than 0 lines, the condition is considered as true. If no line is returned, the condition is considered as false.

Relations: $zz['conditions'][n]['add']['key_field_name']; $zz_conf['add']

910 boolean no $zz['conditions'][n]['add']['where'] if set to true, WHERE restrictions will be checked by this condition ($zz['conditions'][n]['where'] must be set)

Relations: $zz['conditions'][n]['where']

212 string: field no $zz['conditions'][n]['field_name']
815 string: function no $zz['conditions'][n]['function'] use function which has to return a list of allowed IDs (ID => true)
211 string: SQL no $zz['conditions'][n]['having']
203 string no $zz['conditions'][n]['scope'] * record: with 'having' or 'where'; add['sql'], add['key_field_name'] * query: with 'sql' and 'key_field_name' * value: with 'sql' and 'field_name' * access: with 'function' and custom fields * upload (thought of, not yet implemented) * where: with 'field_name', triggers if a WHERE is set in the query for this field_name (shortcut in fields definition possible) * multi: if script is called via zzform_multi() * subrecord: with subrecord and where * noid: if an ID is so far not set (add before insert) * editing: checks where and POST value for a given field_name and if the adjoining query returns true, the condition is met (useful for adding/changing records, where a condition depends on a field value)
208 string: SQL no $zz['conditions'][n]['sql']
209 string: field no $zz['conditions'][n]['key_field_name']
943 integer no $zz['conditions'][n]['subrecord'] index of subrecord in table definition this condition can be applied to
205 string: SQL no $zz['conditions'][n]['where']
948 boolean no $zz['dont_show_h1'] if set to true, h1 will not be shown
235 array: path no $zz['dynamic_referer'] referer which links back to previous page, overwrites $zz_conf['referer'] and must be array with field1, string1 etc.

Relations: $zz['fields'][n]['path']; $zz_conf['referer']

242 string no $zz['extra_action'] action to be performed after or before insert, update, delete array values: `before_update`, `before_insert`, `before_delete`, `after_update`, `after_insert`, `after_delete`, `upload` value: file to be included without ending ".inc.php"; alternatively this might also be the name of an existing function if you do insert/update/delete queries, you might want to add them to the logging table with zz_log_sql($sql, $user, $record_id); ($sql being the query, $user the username)

Relations: ACTION

10 array yes $zz['fields'][n] Description of all table fields which shall be shown to edit a record or in list display (array). 'n' is a number and may be chosen freely (no order required). First field definition must be PRIMARY_KEY For the display order in form and list view, the order in the code is important, not the order of the numbers
354 string no $zz['fields'][n]['access'] access on record basis `show`: makes a subrecord not editable, just viewable

Relations: $zz['access']

983 boolean no $zz['fields'][n]['add_details_destination'] paste input of main form to this field if a detail record is added via 'add_details'

Relations: $zz['fields'][n]['add_details']

420 string no $zz['fields'][n]['add_details'] add detail records in different table, attention: current input will not be saved. Field gets ID #zz_add_details_x_y_z where x is table no [0...n], y is for subtable no [0 if main table, else 0...n] z is field number in zz-array

Relations: select

437 string: HTML no $zz['fields'][n]['add_details_target'] HTML: target attribute for add_details link (target="")
866 boolean no $zz['fields'][n]['always_check_select'] always perform check select, even if select/option-elements are sent with the form
409 string no $zz['fields'][n]['auto_value'] increment | ... // 1 will be added and inserted in 'default'

Relations: number

430 array no $zz['fields'][n]['calculation_fields'] fields which shall be used for calculation

Relations: calculated

431 string no $zz['fields'][n]['calculation'] hours | sum (only supported modes)

Relations: calculated

919 string no $zz['fields'][n]['character_set'] Character sets for search fields (if different collations among the database are used and table name is an alias); used for checking search query parts
199 string: HTML no $zz['fields'][n]['class_add'] class name that will be shown if a subrecord will be added

Relations: subtable

176 string: HTML no $zz['fields'][n]['class'] class="" (some classes will be added by zzform, e. g. idrow, ...)
411 integer no $zz['fields'][n]['cols'] number of cols in textarea

Relations: memo

870 string no $zz['fields'][n]['concat_0'] strings to format fields from sql query; sprintf will be used on these to insert the field value

Relations: $zz['fields'][n]['sql']; select; $zz['fields'][n]['concat_fields']

869 string no $zz['fields'][n]['concat_fields'] string for concatenating multiple field values from an sql query for a field

Relations: $zz['fields'][n]['sql']; select

357 array no $zz['fields'][n]['conf_identifier'] Array for configuration variables how identifier shall be created
358 string no $zz['fields'][n]['conf_identifier']['concat'] String used for concatenation of variables. Might be array, values are used in the same order they appear in the array. If array is shorter than fields-array, last value will be repeated. If the number of concatenations is unclear, a 'last'-variable might be set with 'last' as a key or to repeat the first variable with 'repeat' as key
902 array no $zz['fields'][n]['conf_identifier']['empty'] If field value is empty, define replacements here, e. g. 'first_name' => 'NN'. This value will be used for the identifer.
1001 string no $zz['fields'][n]['conf_identifier']['exists_format'] formatting for identifier symbol if identifier exists
829 string: function no $zz['fields'][n]['conf_identifier']['exists_function'] string; name of a function that will be called to check whether an identifier is write_once or not (function parameters: string $var, array $vars, return: true = write_once, no change may take place; false: go ahead, change it)
360 string no $zz['fields'][n]['conf_identifier']['exists'] String used for concatenation if identifier exists (values longer than 1 will be cut off!)
359 string no $zz['fields'][n]['conf_identifier']['forceFilename'] Value which will be used for replacing spaces and unknown letters (values longer than 1 will be cut off!)
963 string: function no $zz['fields'][n]['conf_identifier']['function_parameter'] single function parameter to pass to function instead of identifier

Relations: $zz['fields'][n]['conf_identifier']['function']

962 string: function no $zz['fields'][n]['conf_identifier']['function'] name of function that identifier will go through finally
828 array no $zz['fields'][n]['conf_identifier']['ignore_this_if'] key field will be ignored if value fields have a value

Relations: $zz['fields'][n]['fields']

827 array no $zz['fields'][n]['conf_identifier']['ignore'] this value from $zz['fields'][n]['fields'] will be ignored for the creation of the identifier (it will only be sent to the optional functions for each field to do something with it)

Relations: $zz['fields'][n]['fields']

361 boolean no $zz['fields'][n]['conf_identifier']['lowercase'] Transform all letters to lowercase?
880 integer no $zz['fields'][n]['conf_identifier']['max_length'] Allows to set a maximum length of characters for each substring
470 string no $zz['fields'][n]['conf_identifier']['prefix'] for a prefix
891 array no $zz['fields'][n]['conf_identifier']['replace'] replaces single characters with something else while creating an identifier, might be used to preserve dots

Relations: identifier

362 boolean no $zz['fields'][n]['conf_identifier']['slashes'] Preserve slashes?
469 boolean no $zz['fields'][n]['conf_identifier']['start_always'] says it has always to add exists and start
468 integer no $zz['fields'][n]['conf_identifier']['start'] start value if record already exists
972 string: SQL no $zz['fields'][n]['conf_identifier']['unique_with'] field name(s) if field itself is not UNIQUE, just in combination with these other fields

Relations: $zz['fields'][n]['conf_identifier']['where']

363 string: SQL no $zz['fields'][n]['conf_identifier']['where'] WHERE-condition to be appended to query that checks existence of identifier in database
860 integer no $zz['fields'][n]['decrease_level'] Decreases numerical value for class name 'leveln' by this value (1 ... n)

Relations: $zz['list']['hierarchy']['display_in']

466 boolean no $zz['fields'][n]['def_val_ignore'] this is for subtables only. For 'value', 'auto_value' and 'default'-fields, this setting specifies whether value will be accepted without any other input by the user in this sub-record or not. true: input will be ignored, false (standard): input will not be ignored. important for deciding whether to add or delete a sub-record.

Relations: subtable

278 mixed no $zz['fields'][n]['default_image'] in case path leads to no existing image, use this as a default_image (full path only). Might be as well an Array with a path in the standard path style
639 boolean no $zz['fields'][n]['default_select_all'] set-fields: all boxes are checked

Relations: select

432 variable no $zz['fields'][n]['default'] default value for field, normally string; for subrecords displayed as 'set' it may be an array as well
1008 string: field no $zz['fields'][n]['dependent_on_add_field'] if this field is dependet on another field with add[field_name]=ID, check the corresponding value with a query
1009 string: field no $zz['fields'][n]['dependent_on_add_sql'] query to get field value on add

Relations: $zz['fields'][n]['dependent_on_add_field']

428 integer no $zz['fields'][n]['detail_key_index']
426 integer no $zz['fields'][n]['detail_value'] copies value from other field
649 array no $zz['fields'][n]['disabled_ids'] IDs that will be shown as 'disabled' in Dropdown or checkbox list

Relations: select

1000 array no $zz['fields'][n]['disabled'] List of IDs for radio buttons that are disabled for some reason
889 string no $zz['fields'][n]['display_empty'] for display fields: what to display if field has no value

Relations: display

182 string: field no $zz['fields'][n]['display_field'] Field (from SQL query) to be displayed instead of field value. For foreign IDs in selects or for display fields

Relations: select; write_once; display

830 array no $zz['fields'][n]['display_title']

Relations: display

401 string no $zz['fields'][n]['display_value'] static value which will be shown in field of type display

Relations: write_once; display

716 boolean no $zz['fields'][n]['dont_check_on_update'] Before doing an UPDATE, zzform checks whether old values and new values for a record differ. Timestamps and Fields with `dont_check_on_update` set won't be checked against (useful for author_ids etc.)
966 boolean no $zz['fields'][n]['dont_copy'] do not copy contents of this field if copying a record

Relations: $zz_conf['copy']

500 boolean no $zz['fields'][n]['dont_delete_records'] no [-] field, one may not delete a subrecord

Relations: subtable

748 boolean no $zz['fields'][n]['dont_mark_search_string'] true restrains zz_mark_search_string() from marking the HTML in this fields output, e. g. if you want to use it as a parameter for images or so.
970 boolean no $zz['fields'][n]['dont_require_old_password'] Do not require to enter old password for password change (e. g. if password forgotten-link was followed)

Relations: password_change

424 boolean no $zz['fields'][n]['dont_show_file_link'] doesn't show link below upload field which otherwise will be shown if a file already exists
191 boolean no $zz['fields'][n]['dont_show_image'] doesn't show image in form view (e. g. good for file upload)
995 boolean no $zz['fields'][n]['dont_show_missing_img'] If set to true and upload is required but missing, do not show '(image missing)' if you don't want to show an upload in public interfaces

Relations: $zz['fields'][n]['dont_show_missing']

710 boolean no $zz['fields'][n]['dont_show_missing'] If set to true and field value is required but missing, this will not be shown to user (useful if this is a field the user cannot change anyways because the input depends on other input from file upload etc.)
849 boolean no $zz['fields'][n]['dont_sort'] if set to true, no ordering in this column is allowed; 'id'-columns are set to true by default, if you'd like to order by id, you have to set them to false explicitly
938 boolean no $zz['fields'][n]['dont_trim'] if set to true, 'text' fields won't be trimmed

Relations: text

996 boolean no $zz['fields'][n]['enum_textinput'] attach a text input to last enum value and save that to database if selected; does not work with fixed enum fields in mySQL of course

Relations: select; $zz['fields'][n]['enum']

397 array no $zz['fields'][n]['enum_title'] Optional. In case you don't like your ENUM values, you can set an array with different values that will be shown instead the values in the database. Good for translations.

Relations: select; $zz['fields'][n]['enum']

396 array no $zz['fields'][n]['enum'] list for enum, default value with 'default' should be set as well

Relations: $zz['fields'][n]['show_values_as_list']; select; $zz['fields'][n]['enum']; $zz['fields'][n]['default']

844 array no $zz['fields'][n]['enum_abbr'] List of abbreviations for enum, in list view, abbreviation will be shown in form view and displayed as abbr-element in list view

Relations: select

969 string: HTML no $zz['fields'][n]['error_msg'] Show individual error message if validation failed instead of generic message
388 boolean no $zz['fields'][n]['exclude_from_search'] search will do no operations in this field
474 string: HTML no $zz['fields'][n]['explanation_top'] same as explanation, this will show up above the form element, not below.

Relations: $zz['fields'][n]['explanation']

475 string: HTML no $zz['fields'][n]['explanation'] explanation how to fill in values in this field, will only be shown in edit or insert mode
643 boolean no $zz['fields'][n]['export_no_html'] Export (e. g. CSV export) will be text only, HTML formattings are stripped
786 boolean no $zz['fields'][n]['export'] Exclude field from export
685 string no $zz['fields'][n]['f_field_name'] INTERNAL USE ONLY

Relations: $zz['fields'][n]['field_name']

408 integer no $zz['fields'][n]['factor'] factor for avoiding doubles as database fields

Relations: number

11 string: field yes $zz['fields'][n]['field_name'] Database field name; required, if field value shall be shown or changed in the output. Not all fields of a table have to be defined, the undefined fields will be ignored by the script.

Relations: $zz['fields'][n]

994 integer no $zz['fields'][n]['field_sequence'] If you like a different order of your fields than the order in the definition file, you can set a sequence here. It is even possible to mix the main table and subtables if form_display for the subtable is set to 'lines'
621 array no $zz['fields'][n]['fielddefs'] In combination with 'values', 'fielddefs' allows to change some $zz['fields']-settings for individual detail records where values are preset. The first numerical index of the field definition corresponds to the numerical index of the corresponding value, the second index corresponds to the field index that shall be changed.

Relations: subtable; $zz['fields'][n]['values']

364 array no $zz['fields'][n]['fields'] List of fields which are used to create an identifier (`$zz['fields'][n]['type'] = 'identifier'`). If field_name of identifier-field is part of the array, the identifier won't be changed later on (write_once). Corresponding values of ID fields may be used writing `field_id[value]`. The fields are used in the same order as in the array. vars which will be passed to function or identifier, might be in form like "select_id[field_name_from_select]" as well, this refers to a field "select_id" with an associated sql-query and returns the value of the "field_name_from_select" of the query instead. Values from subtables will have a table_name. or table. prefix. first value is chosen if more than one (more than one record not recommended!). {0,4} or {4} ... will call a substr()-function to return just a part of the field value if identifier must not be changed after set, include field_name of identifier in list
172 string: field no $zz['fields'][n]['fields'][n]['detail_key'] inserts in field id_field from different detail_record
847 boolean no $zz['fields'][n]['for_action_ignore'] field will be ignored when action is determined

Relations: $zz['fields'][n]['def_val_ignore']

429 string: field no $zz['fields'][n]['foreign_key_field_name'] Normally, zzform uses maintable.id_field as WHERE maintable.id_field = id_value for subtables. This variable allows to set a different key_field_name, e. g. if you use table aliases

Relations: subtable

198 string no $zz['fields'][n]['form_display'] - vertical (default vertical view as in standard form) - horizontal: shows detail records in list view - set: show detail records like set with radio buttons; works only with a detail table just with detail_table_id, foreign_key of main table and some other ID. - inline: only works with 1 subrecord, show subfields as if they're part of the main record

Relations: select; subtable

35 string: function no $zz['fields'][n]['format'] Formats in form view text content of field with this markup language (e. g. Markdown), function of the same name must lie inside zzform-folder

Relations: text; memo

976 integer no $zz['fields'][n]['formatting_spaces'] sets numbers of maximal spaces that are allowed; on saving a record, all spaces are removed
399 string: function no $zz['fields'][n]['function'] function which will be called to change input value `function($vars, $field_name);` $vars = POST vars of fields defined in an array in $zz['fields'][n]['fields'] $field_name = $zz['fields'][n]['field_name']

Relations: hidden

810 string no $zz['fields'][n]['geo_display_behind'] will display coordinate behind coordinate field, possible values are dec, dms, deg, dm

Relations: number

811 string no $zz['fields'][n]['geo_format'] output of coordinate, possible values are dec, dms, deg, dm

Relations: number

928 string no $zz['fields'][n]['geocode_default'] default Value used for geocoding, if no value is transmitted via record

Relations: $zz['fields'][n]['geocode']

982 array no $zz['fields'][n]['geocode_ignore_if'] ignore a record if another field in the same record has value x

Relations: $zz['fields'][n]['geocode']

989 boolean no $zz['fields'][n]['geocode_ignore_update'] if set to true, changes in this field are ignored if a record is updated for the determination if a new geocoding shall take place

Relations: $zz['fields'][n]['geocode']

924 string: SQL no $zz['fields'][n]['geocode_sql'] SQL query to replace ID value for geocoding with real content

Relations: $zz['fields'][n]['geocode']

923 string no $zz['fields'][n]['geocode'] Mark fields for geocoding: 'postal_code', 'country', 'street', 'street_number', 'locality', 'latitude', 'longitude', 'state', 'place' 'place' is somewhat special. It adds a possibility to add the name of the place or venue if the full address is not known. In case 'place' + the rest of the address yields no results, a second query without 'place' is started
978 mixed no $zz['fields'][n]['group_dependent_tables'] string with one or array of table names for tables that are directly dependent on field content (foreign key, another table joined) if this table is in sort order before the immediate foreign table

Relations: $zz['fields'][n]['group_in_list']

523 boolean no $zz['fields'][n]['group_in_list'] allows grouping of records if sort order corresponds with field

Relations: LIST

546 string: field no $zz['fields'][n]['group'] allows to group records select via HTML optgroup-element

Relations: select

964 boolean no $zz['fields'][n]['hide_auto_add_msg'] hides message that a value will be added automatically
746 boolean no $zz['fields'][n]['hide_format_in_title_desc'] hides format in title_desc below title of field

Relations: $zz['fields'][n]['format']; $zz['fields'][n]['title_desc']

781 boolean no $zz['fields'][n]['hide_in_form_add']

Relations: $zz['fields'][n]['hide_in_form']

180 boolean no $zz['fields'][n]['hide_in_form'] hides field in form view, but not in list view.
959 boolean no $zz['fields'][n]['hide_in_list_if_empty'] field will not be shown as a column in list view if there's no value for this field in all rows

Relations: $zz['fields'][n]['hide_in_list']

179 boolean no $zz['fields'][n]['hide_in_list'] field will not be shown in list view
422 boolean no $zz['fields'][n]['hide_novalue'] = false: as a default, the choice of no value for a radio button set will be hidden. By setting this value to false, it will be shown.

Relations: select

750 boolean no $zz['fields'][n]['hide_zeros'] values 0 will be converted to '' (unit, prefix, suffix etc. will not be shown)
614 string: field no $zz['fields'][n]['id_field_name'] In some cases, for whatever reason the first field in an SQL query is not the id_field_name of a query. This variable can be set to solve this problem. Should be used as well if id_field_name is ambiguous and table name has to be prepended

Relations: $zz['fields'][n]['sql']; select

185 array no $zz['fields'][n]['if'][n] Field definitions which will be set if a certain condition n is met. For some conditions, shortcuts exist: - 'multi': if script is called via zzform_multi() - 'where': if field has id value which is defined by WHERE condition ($zz['where'], $_GET['where']) - 'add': if a record is added - 'delete': if a record is deleted - 'edit': if a record is edited - 'upload: if something is uploaded
192 array no $zz['fields'][n]['image'] what has to be done with uploaded image. keys as follows.
450 string: function no $zz['fields'][n]['image'][n]['action'] (what to do with image, functions in image-[library].inc.php)
449 integer no $zz['fields'][n]['image'][n]['auto_size_tolerance'] (default 15, value in px for auto_size function)
448 array no $zz['fields'][n]['image'][n]['auto_values'] (values used by auto-function)
447 string: function no $zz['fields'][n]['image'][n]['auto'] (function to change values of some of these fields before action will take place)
937 string no $zz['fields'][n]['image'][n]['convert_options'] allows to add extra options for imagemagick's convert command, nice to use together with 'options_sql'
442 string: field no $zz['fields'][n]['image'][n]['field_name']
441 integer no $zz['fields'][n]['image'][n]['height']
451 boolean no $zz['fields'][n]['image'][n]['ignore'] true = field will be ignored
457 array no $zz['fields'][n]['image'][n]['input_filetypes'] allowed input_filetypes, e. g. pdf, jpeg, doc, ...
454 integer no $zz['fields'][n]['image'][n]['max_height'] max height in px of uploaded image (only applicable for n-Fields without 'source')
452 integer no $zz['fields'][n]['image'][n]['max_width'] max width in px of uploaded image (only applicable for n-Fields without 'source')
455 integer no $zz['fields'][n]['image'][n]['min_height'] min height in px of uploaded image (only applicable for n-Fields without 'source')
453 integer no $zz['fields'][n]['image'][n]['min_width'] min width in px of uploaded image (only applicable for n-Fields without 'source')
999 boolean no $zz['fields'][n]['image'][n]['no_action_unless_thumb_extension'] if true, do not create thumbnails if extension for thumbnails is set to NULL
458 boolean no $zz['fields'][n]['image'][n]['optional_image'] image is optional, i. e. error notices when deleting a record and there are no accompanying files won't be shown.
961 string no $zz['fields'][n]['image'][n]['options_key'] Value from option field will be set to $images with this key

Relations: $zz['fields'][n]['image'][n]['options']

545 string: SQL no $zz['fields'][n]['image'][n]['options_sql'] SQL query which allows to read further field definitions from a database depending on value in corresponding options field; values are expected to be in form of a URL query string

Relations: $zz['fields'][n]['image'][n]['options']

446 array no $zz['fields'][n]['image'][n]['options'] (key value, reads options from this field, overwrite existing keys, options will only be read once)

Relations: option

444 array: path no $zz['fields'][n]['image'][n]['path'] (last field/string part must be file extension only! three letters with dot in case of string, field without dot!)
944 array no $zz['fields'][n]['image'][n]['recreate_on_change'] recreate thumbnails even if file did not change, but e. g. if thumbnail filetype changed
443 boolean no $zz['fields'][n]['image'][n]['required'] true | false
456 boolean no $zz['fields'][n]['image'][n]['show_link'] shows for files without thumbnails link to file (form: long with filename, list: short with title as linktext)
193 string: field no $zz['fields'][n]['image'][n]['source_file']
195 string: SQL no $zz['fields'][n]['image'][n]['source_path_sql'] SQL query to get a path for a source file that was not uploaded from the database, as a file_id the value in 'source_file' is used

Relations: $zz['fields'][n]['image'][n]['source_file']

194 array: path no $zz['fields'][n]['image'][n]['source_path']
445 integer no $zz['fields'][n]['image'][n]['source'] (if no extra upload field shall be shown)
439 string no $zz['fields'][n]['image'][n]['title']
196 array no $zz['fields'][n]['image'][n]['update_from_source_field_name'] list of field names in database query which will be used together with update_from_source_value to check whether a source file has been changed or not (and a new thumbnail has to be created or not)

Relations: $zz['fields'][n]['image'][n]['update_from_source_value']

197 array no $zz['fields'][n]['image'][n]['update_from_source_value'] list of field names in current record which will be used for update_from_source_field_name to check whether a source file has been changed or not (and a new thumbnail has to be created or not)

Relations: $zz['fields'][n]['image'][n]['update_from_source_field_name']

440 integer no $zz['fields'][n]['image'][n]['width']
956 boolean no $zz['fields'][n]['import_id_value'] Allows to import ID values for a database from a different source instead of using auto_increment IDs

Relations: id

392 boolean no $zz['fields'][n]['in_sql_query'] INTERNAL variable only
459 boolean no $zz['fields'][n]['inherit_format'] translation tables: inherit format assignments from field that is to be translated

Relations: $zz['fields'][n]['format']

707 boolean no $zz['fields'][n]['input_only'] field is for input only (e. g. if value will be used for different fields, or parts of it); something entered in this field won't be saved
868 string no $zz['fields'][n]['js'] Adds JavaScript to 'explanation', e. g. 'select/deselect' adds JS for acitvating/deactivating all checkboxes

Relations: $zz['fields'][n]['explanation']

418 string: field no $zz['fields'][n]['key_field_name'] if where is used and where-key-name is different from key name in sql-query; field name differs from foreign_key, e. g. mother_org_id instead of org_id For list view of a subtable, key_field_name has to be used if the fieldname of the foreign_key differs from the fieldname of the ID field of the main record. Table `persons` normally as something like `person_id` as PRIMARY_KEY, table `address` has `person_id` as a foreign key. if for some reason the field in table `address` is called e. g. `primary_address_id`, you have to set this parameter to `address_id`

Relations: select; foreign_key

842 string no $zz['fields'][n]['kml'] item name in KML export, 'title', latitude' and 'longitude' (or alternatively 'point') must be set when KML export is active. 'altitude' is optional. 'description' will be put below all fields with title=> value in tabular format; 'style' will be used as ID for style element for this record
186 array: path no $zz['fields'][n]['link'] Link in list view to record. May be array, then it works with field, mode and string (field1, field2, mode1, ...) see also: path. If root is set, link will be looked for in filesystem. if not existent, returns false (no link)

Relations: $zz['fields'][n]['path']

568 string: HTML no $zz['fields'][n]['link_attributes'] Further HTML attributes for link in list-view
615 boolean no $zz['fields'][n]['link_referer'] adds current URL as referer to a link to create the possibility for a backlink on the linked page
433 string: HTML no $zz['fields'][n]['link_target'] HTML target-attribute for link (`target="value"`)
434 array: path no $zz['fields'][n]['link_title'] HTML title-attribute for link in list to record. May be array, then it works with field and string (field1, field2, string1, ...) see also: path

Relations: $zz['fields'][n]['path']

471 string no $zz['fields'][n]['list_abbr'] name of field whose value will be displayed in <abbr title=""> behind displayed value
894 string: HTML no $zz['fields'][n]['list_append_if_first'] HTML code that will be put before first field of several fields which are concatenated by list_append_next

Relations: $zz['fields'][n]['list_append_next']

895 string: HTML no $zz['fields'][n]['list_append_if_middle'] HTML code that will be put before field of several fields which are concatenated by list_append_next if this field is somehwere in the middle

Relations: $zz['fields'][n]['list_append_next']

477 boolean no $zz['fields'][n]['list_append_next'] appends next record in list/tab view in the same line
822 boolean no $zz['fields'][n]['list_append_show_title'] if set to true, will show title even if list_append = true

Relations: $zz['fields'][n]['list_append_next']

855 string: HTML no $zz['fields'][n]['list_concat_fields'] e. g. for Geo coordinates, this will be HTML code to be put between latitude and longitude values in list view
425 string: function no $zz['fields'][n]['list_format'] function which will be used to format text for display, e. g. markdown | textile, in list part; might be array if you want to use several functions

Relations: $zz['fields'][n]['format']; text; memo

906 string: function no $zz['fields'][n]['list_function'] Name of function that will be called from field type 'list_function' for display in list

Relations: list_function

977 boolean no $zz['fields'][n]['list_no_link'] zzform list: if 'list_no_link' is set to true, no link for list view will be generated (e. g. for fields of type URL)
991 string: HTML no $zz['fields'][n]['list_prefix_append'] prefix in front of the field value in list view; for appended fields, always show this in front of the first field with a value

Relations: $zz['fields'][n]['list_prefix']; $zz['fields'][n]['list_suffix_append']

356 string: HTML no $zz['fields'][n]['list_prefix'] prefix in front of the field value in list view

Relations: $zz['fields'][n]['list_suffix']

992 string: HTML no $zz['fields'][n]['list_suffix_append'] suffix behind the field value in list view; for appended fields, always show this behind the last field if there was a value somewhere

Relations: $zz['fields'][n]['list_suffix']; $zz['fields'][n]['list_prefix_append']

355 string: HTML no $zz['fields'][n]['list_suffix'] suffix behind the field value in list view

Relations: $zz['fields'][n]['list_prefix']

967 string: HTML no $zz['fields'][n]['list_unit'] displays a unit behind a number, won't display if value = NULL, list mode

Relations: number; $zz['fields'][n]['unit']

1007 array no $zz['fields'][n]['mark_scope'] marks content in this field (most likely a field with 'display_field' set) if a search is done over one of the fields in the list of fields
190 integer no $zz['fields'][n]['max_records']

Relations: subtable

940 string: SQL no $zz['fields'][n]['max_records_sql'] SQL query to get the maximum number of detail records

Relations: subtable

460 integer no $zz['fields'][n]['maxlength'] maxlength, if not set will be taken from database
953 boolean no $zz['fields'][n]['merge_equal'] Records will only be merged if values in this field are equal

Relations: $zz_conf['merge']

952 boolean no $zz['fields'][n]['merge_ignore'] Field will be ignored for comparison of main records while merging

Relations: $zz_conf['merge']

714 integer no $zz['fields'][n]['min_records_required']

Relations: $zz['fields'][n]['min_records']; subtable

189 integer no $zz['fields'][n]['min_records']

Relations: subtable

939 string: SQL no $zz['fields'][n]['min_records_sql'] SQL query to get the minimum number of detail records

Relations: subtable

650 string no $zz['fields'][n]['msg_no_subtables'] a message will appear in record view if no detail record is left after a database operation was performed
911 boolean no $zz['fields'][n]['multiple_edit'] if set to false, field will not be shown in record form for editing

Relations: $zz[list']['select_multiple_records']

436 boolean no $zz['fields'][n]['null_string'] Field value might be 0 or '', won't be set to NULL => output = ''

Relations: $zz['fields'][n]['null']

435 boolean no $zz['fields'][n]['null'] Field value might be 0 or '', won't be set to NULL => output = 0

Relations: $zz['fields'][n]['null_string']

398 string no $zz['fields'][n]['number_type'] - 'longitude' | 'latitude', for entering geo information - 'currency' for money - 'bytes' for bytes, for displaying MB, GB, TB etc. - 'number' for numbers, formatted with thousands_separator and decimal_point

Relations: number

427 array no $zz['fields'][n]['options'] Together with enum-array; values from enum-array will have to be set as pairs. E. g. enum-value proportional will be an array in options, first is key which will be added to image, second is corresponding value: ['options'] = array('proportional' => array('key' => 'value')); existing keys will be overwritten
617 string no $zz['fields'][n]['order'] different field name for ORDER BY, e. g. if a table name is needed in case of ambiguous field names or for mixed alpha-numerical strings without preceding zeros
648 string no $zz['fields'][n]['path_json_base'] base for JSON link, will be prepended

Relations: image; $zz['fields'][n]['path_json_request']

647 array: path no $zz['fields'][n]['path_json_request'] requests image filename via JSON request

Relations: image

421 string: SQL no $zz['fields'][n]['path_sql'] only if this sql query is needed for constructing the extension of a file path; sql-query which will be used if this field's display_value is set as fieldxx in path to get a correct extension for file conversions

Relations: select

184 array no $zz['fields'][n]['path'] values: - `root` DOCUMENT_ROOT or path to directory, will be used as a prefix to check whether file_exists or not - `webroot` alternative for DOCUMENT_ROOT on URL basis of the webserver - `fieldXX` will add corresponding field value, - `stringXX` will add string value, (string1 will be weblink to file, parallel to root) - `webstringXX` same as string, but applied only to web path, not to file path - `modeXX`: functions that will be applied to all field_values - last `stringXX` or `fieldXX`: this must consist of the fileextension only (with or without .) e. g. array('field1' => 'fieldname_bla', 'string1' => '/', 'field2' => 'fieldname_blubb') etc. - as an alternative, `extension` can be used instead of fieldXX - `x_field[2]XX` = similar to field, but for 2x image - `x_field[1.5]XX` = similar to field, but for 1.5x image - `x_extension[2]XX` = similar to extension, but for 2x image - `x_webfield[2]XX` = similar to webfield, but for 2x image
709 string: function no $zz['fields'][n]['post_validation'] Function that will be called with field value and field name as parameters directly after validation of a field; returned values will be saved in 'extra' to let other records access values later

Relations: $zz['fields'][n]['detail_value']

464 string: HTML no $zz['fields'][n]['prefix'] adds prefix-string to form view

Relations: $zz['fields'][n]['suffix']

616 integer no $zz['fields'][n]['read_options'] Index of field on which options depend

Relations: option; $zz['fields'][n]['options']

200 boolean no $zz['fields'][n]['records_depend_on_upload']
986 boolean no $zz['fields'][n]['remove_local_hostname'] per default, the hostname of the local server will be removed starting with http:// or https://. this setting disables this behaviour
741 array no $zz['fields'][n]['replace_values'] replaces submitted value with a different value (e. g. if you ask for some date in a field when somebody has done something and the answer is "no" but you just want to get the date)
618 boolean no $zz['fields'][n]['required'] field requires an input (same behaviour as NOT NULL, but allow flexible table definition)
412 integer no $zz['fields'][n]['rows_max'] max number of rows in textarea (textarea might expand if text is edited to approximately the numbers of rows needed to display all text without scroll bar)

Relations: memo

202 integer no $zz['fields'][n]['rows'] number of rows in textarea, will be expanded if a record is edited to approximately the needed length

Relations: memo

802 string: SQL no $zz['fields'][n]['search_between']
619 string: SQL no $zz['fields'][n]['search'] if a field does not appear without an alias or appears ambiguous in the SQL query for 'list' view, here you can define the exact field name or field combination that will be used for search
929 mixed no $zz['fields'][n]['separator_before'] - true: will put a separation before this field, to improve form layout. - column_begin, column, column_end: put form in two columns - text bla blubb: will put bla blubb below `<hr>`-Separator

Relations: $zz['fields'][n]['separator']

465 mixed no $zz['fields'][n]['separator'] - true: will put a separation behind this field, to improve form layout. - column_begin, column, column_end: put form in two columns - text bla blubb: will put bla blubb below `<hr>`-Separator
779 string: filename no $zz['fields'][n]['set_folder'] path of folder, files in this folder will be presented for selection (no subfolders), names of chosen files will be saved in database.

Relations: select

780 boolean no $zz['fields'][n]['set_show_all_values'] all values will be shown, even if current set does not include value (useful in conjunction with set_folder, when files are deleted from directory)

Relations: select; $zz['fields'][n]['set_folder']

640 string: SQL no $zz['fields'][n]['set_sql'] similar to set, lets you get comma separated values from an SQL query that will be treated similar as a mysql SET field

Relations: select

638 array no $zz['fields'][n]['set_title'] similar to enum_title in combination with set_sql: if = true, uses second field from sql-query as set_title

Relations: select; $zz['fields'][n]['set']

395 array no $zz['fields'][n]['set'] array for set

Relations: $zz['fields'][n]['show_values_as_list']; select

782 boolean no $zz['fields'][n]['show_hierarchy_same_table'] set to true: checks if ID in select is equal to main ID and if so, does not display it to user to avoid recursion

Relations: $zz['fields'][n]['show_hierarchy']

416 integer no $zz['fields'][n]['show_hierarchy_subtree'] ID of top hierarchy value, if not set NULL will be used

Relations: select; $zz['fields'][n]['show_hierarchy']

419 boolean no $zz['fields'][n]['show_hierarchy_use_top_value_instead_NULL'] if record is saved, no NULL will be used but show_hierarchy_subtree-ID instead

Relations: select; $zz['fields'][n]['show_hierarchy']

417 string: field no $zz['fields'][n]['show_hierarchy'] shows hierarchy in selects, value must be set to corresponding SQL field name

Relations: select

386 boolean no $zz['fields'][n]['show_id'] Normally, id fields get class record_id {display: none;}, show_id stops zzform from doing that

Relations: id

178 boolean no $zz['fields'][n]['show_title'] display record: show field title in TH (mainly for subtables, for aesthetic reasons)
298 boolean no $zz['fields'][n]['show_values_as_list'] puts all enum/select values in a radio button list, not in select/option-elements, no matter how many values are available

Relations: select; $zz['fields'][n]['set']; $zz['fields'][n]['enum']

423 integer no $zz['fields'][n]['size_select_too_long'] if set, this will be the size of input if a select is not shown but input field instead

Relations: select

405 integer no $zz['fields'][n]['size'] Maximum length of characters that may be entered in input field, size of input field, standard for number 16, for time 8 and for all other fields 32 (or maxlength if smaller)
872 array no $zz['fields'][n]['sql_character_set'] Character sets for fields in 'sql'-query (if different collations among the database are used); used for checking reselects

Relations: $zz['fields'][n]['sql']; select

896 array no $zz['fields'][n]['sql_fieldnames_ignore'] list of field names that will be ignored for checking a text input against a list of values from the database

Relations: select

415 array no $zz['fields'][n]['sql_ignore'] doesn't display fields of sql query in form view. this is useful if you need the fields for an identifier field; array, fields won't display in form view.

Relations: $zz['fields'][n]['sql']; select

467 boolean no $zz['fields'][n]['sql_index_only'] only show index field (e. g. for SHOW COLUMNS ... queries)

Relations: select

787 string: SQL no $zz['fields'][n]['sql_not_unique'] Detail records migh be shown with an n:m relation as well (read only). The SQL query for n:1 goes into the 'sql'-variable, the 1:m LEFT JOIN (or similar) has to go into the 'sql_not_unique' variable. Will be shown in record as well as in list view.
404 string: SQL no $zz['fields'][n]['sql_password_check'] SQL query that is used to check if the given password equals the existing password

Relations: password_change

873 array no $zz['fields'][n]['sql_table'] Table names of fields in SQL query if not included in this query (to get correct character set for reselect)

Relations: $zz['fields'][n]['sql']; select

958 array no $zz['fields'][n]['sql_translate'] Allows translation for this table (or key => table or list of tables or keys and tables) with wrap_translate() from zzwrap library

Relations: $zz['sql']

623 boolean no $zz['fields'][n]['sql_where_with_id'] Adds WHERE (or AND)-clause with main_record_id = main_record_value to SQL query if there is a main_record_id
1002 boolean no $zz['fields'][n]['sql_where_without_id'] Adds WHERE (or AND)-clause with main_record_id != main_record_value to SQL query if there is a main_record_id
413 array no $zz['fields'][n]['sql_where'] adds where to sql-string, rather complicated ... :-) $zz['fields'][4]['sql_where'][1] = array( 'team_id', 'paarung_id', 'SELECT heim_team_id FROM ligen_paarungen WHERE paarung_id = '); Target: additional where-clause in sql-clause, e. g. WHERE team_id = 1 How to do it: - element [0] = field_name in WHERE-clause, e. g. team_id - element [1] = field_name which has to be queried - element [2] = SQL-clause where [1] is inserted to get value for [0] as result.

Relations: select

414 boolean no $zz['fields'][n]['sql_without_id'] where['id']-value will be appended automatically

Relations: select

181 string: SQL no $zz['fields'][n]['sql'] SQL-Query for select, first field is key field which will not be displayed but entered into database field

Relations: select

946 string: SQL no $zz['fields'][n]['sqlcount'] query which has to have something like `COUNT(record_id) AS record_id` in it to provide a faster alternative to querying several records up to max_select for counting all records available for a select field

Relations: $zz['fields'][n]['sql']; $zz_conf['max_select']

201 string: SQL no $zz['fields'][n]['sqlorder']
299 array no $zz['fields'][n]['subselect'] Displays records of detail tables in list view, allows to search through these detail tables as well. Key 'sql' is required, rest is optional.
302 string: HTML no $zz['fields'][n]['subselect']['concat_fields']
301 string: HTML no $zz['fields'][n]['subselect']['concat_rows']
997 boolean no $zz['fields'][n]['subselect']['count'] if set to true, show count of records either behind 'prefix' or in prefix with sprintf %d

Relations: $zz['fields'][n]['subselect']['prefix']

883 string: HTML no $zz['fields'][n]['subselect']['field_prefix'][m] Allows HTML formatting prefixed for each database field
884 string: HTML no $zz['fields'][n]['subselect']['field_suffix'][m] Allows HTML formatting suffixed for each database field (index starts with 0 for first field)
879 array: path no $zz['fields'][n]['subselect']['link'] Link for each of the elements of the subselect
300 string: HTML no $zz['fields'][n]['subselect']['prefix']
882 boolean no $zz['fields'][n]['subselect']['show_empty_cells'] if true, &nbsp; will be set for each empty field
973 array no $zz['fields'][n]['subselect']['sql_ignore'] List of field names which are ignored when displaying subselect

Relations: $zz['fields'][n]['subselect']['sql']

438 string: SQL no $zz['fields'][n]['subselect']['sql'] For subtables. SQL-Select query, foreign_key must be included, shows detail records in list view as well.
303 string: HTML no $zz['fields'][n]['subselect']['suffix']
788 string: field no $zz['fields'][n]['subselect']['table'] Set this if ID field is in different table than main table (works only for displayed subtables, not for editable)
909 string: function no $zz['fields'][n]['subselect']['list_field_format'] Formats each single field (e. g. binary represenations of IP addresses to strings) with list_field_format function (opposed to list_format which formats the full string). Might be array as well, then key is field_name

Relations: $zz['fields'][n]['subselect']['list_format']

171 string: function no $zz['fields'][n]['subselect']['list_format']

Relations: $zz['fields'][n]['list_format']

461 string: HTML no $zz['fields'][n]['suffix'] adds suffix-string to form view
462 string: function no $zz['fields'][n]['suffix_function'] adds suffix-function to form view
463 array no $zz['fields'][n]['suffix_function_var'] parameters for suffix-function to form view
188 string: field no $zz['fields'][n]['table_name'] Alias if more subtables are included (used for search only, AFAIK)

Relations: subtable

854 string: field no $zz['fields'][n]['text_field'] similar to display_field, this key must be set to a field name from the SQL query which contains the textual representation of the corresponding spatial field

Relations: geo_point

922 string no $zz['fields'][n]['text_none_selected'] Allows to change the text for 'none_selected' individually per select element. Note: global changes should be done in a 'text'-file or $zz_conf['text'] instead.

Relations: select; $zz['fields'][n]['hide_novalue']; $zz_conf['text']

620 boolean no $zz['fields'][n]['tick_to_save'] Displays checkbox for each detail record, if checked, record will be saved (insert, update), if not, removed (delete, or if it does not exist, ignored)

Relations: subtable

955 string no $zz['fields'][n]['time_format'] allows to format a time with date()

Relations: time

476 boolean no $zz['fields'][n]['title_append'] title for several records which will be in one line
817 string: HTML no $zz['fields'][n]['title_button'] string; title for subtables add/remove buttons
479 string: HTML no $zz['fields'][n]['title_desc'] description, will always be shown below title in form, values in format will be added automatically (cf. explanation)

Relations: $zz['fields'][n]['format']; $zz['fields'][n]['explanation']

13 string: HTML no $zz['fields'][n]['title'] Title of database field, will be shown in form and table Optional, value will be generated from 'field_name' if not set (first letter uppercase, ending `_id` will be deleted)
998 string no $zz['fields'][n]['title_export_prefix'] title prefix for CSV export
478 string: HTML no $zz['fields'][n]['title_tab'] title in table display (optional, default = 'title'), e. g. for abbreviations to save place
289 boolean no $zz['fields'][n]['translate_field_value'] Translates value of field (e. g. for 'yes', 'no') with zz_text()
774 array no $zz['fields'][n]['translation'] gives the possibility to set individual variables for translation subtables, e. g. 'hide_in_list'
971 boolean no $zz['fields'][n]['trim'] if set to true, 'memo' fields will be trimmed

Relations: memo

183 string no $zz['fields'][n]['type_detail'] type of field, used for option and predefined to set real type of field but still remain special functionality

Relations: $zz['fields'][n]['type']

177 string no $zz['fields'][n]['type'] Here, the type of the field can be definfed. For a list of field types, see zz_fieldtypes

Relations: zz_fieldtypes

684 boolean no $zz['fields'][n]['unique'] if field value is unique, it can be used for where-clauses and will show only one record in display mode, without add new record
407 string: HTML no $zz['fields'][n]['unit'] displays a unit behind a number, won't display if value = NULL

Relations: number

960 boolean no $zz['fields'][n]['update_on_detail_update'] Updates this field in main record if there were updates, inserts or deletions in one of the detail records

Relations: timestamp

885 string no $zz['fields'][n]['upload_default'] Sets a value as default _after_ uploaded files have been checked for values and nothing has been found; setting a 'default'-value beforehands would cause upload check not to start

Relations: $zz['fields'][n]['default']

569 integer no $zz['fields'][n]['upload_field'] For hidden or other fields (which ... ?), says which field is the upload field from which a certain value, defined in 'upload_value', shall be taken

Relations: hidden

813 string: function no $zz['fields'][n]['upload_func'] string; name of a function to format upload values (the only way to handle arrays)

Relations: $zz['fields'][n]['upload_field']

571 string: SQL no $zz['fields'][n]['upload_sql'] SQL query to use with upload value, e. g. if you get a string but need an ID value.

Relations: hidden; $zz['fields'][n]['upload_field']

570 mixed no $zz['fields'][n]['upload_value'] Value which will be written to database and taken from uploaded file. Possible values * basics: - filetype: filetype of original file - title: modified filename (without ending, underscores replaced with space, ucfirst() etc.) - filename: filename without extension and web compatible * images: - width: width of original image - height: height of original image - modified[width] - modified[height] * from $_FILES - name: original filename of uploaded file - type - tmp_name - error - size: filesize * more - type_ext: mimetype + extension, e. g. application/octet-stream/dwg - exif[DateTimeOriginal] - ext: file extension - sha1_source_file - modified[filetype] - exif[YResolution] - modified[exif][YResolution] - exif[YResolution] - modified[exif][YResolution] - upload[size] - modified[size] - md5 - md5_source_file - sha1 - sha1_source_file - increment_on_change (adds 1 to a version no. if file changed) - exif[DateTime] - exif[FileName] - exif[FileSize] - ... Good combinations of values are (in case first value is not set, second will be tried): - array('exif[COMPUTED][Width]', 'upload[width]') - array('exif[COMPUTED][Height]', 'upload[height]') - array('channels', 'exif[SamplesPerPixel]') - array('bits', 'exif[BitsPerSample][0]')

Relations: hidden; $zz['fields'][n]['upload_field']

848 boolean no $zz['fields'][n]['use_as_label'] In combination with e. g. tick_for_save, this field's value will be enclosed in a label for the checkbox

Relations: subtable; $zz['fields'][n]['tick_to_save']

636 array no $zz['fields'][n]['validate']
637 array no $zz['fields'][n]['validate']['forbidden_strings'] Allows to set certain strings (as array) which will be tested against. If there's a match, the input will be sent back to the user to recheck it.
175 string no $zz['fields'][n]['value'] Value for field, may not be overwritten

Relations: hidden

622 array no $zz['fields'][n]['values'] Sets values for detail records. Lets you ask e. g. for a level of knowledge for a predefined set of languages
975 string: function no $zz['fields'][n][format_0'] function to format fields from sql query

Relations: $zz['fields'][n]['sql']; select

331 array no $zz['filter'] Filter for records to be shown
348 string no $zz_conf['filter_position'] position of filter, top, bottom or both

Relations: OUTPUT

332 array no $zz['filter'][n]
567 mixed no $zz['filter'][n]['default_selection'] int or array; array might be useful in conjunction with SQL queries which result in nothing
892 integer no $zz['filter'][n]['depends_on'] Make a filter dependent on the selection of another filter (e. g. for categories and subcategories), using the other filters' where field = value if filter is selected to narrow the results of this filter
573 string: field no $zz['filter'][n]['field_name'] If set, filter value will be used as a default value for this field.
804 boolean no $zz['filter'][n]['hide_all_link'] true: hide -all- link at the end of this filter to show all records unfiltered
334 string no $zz['filter'][n]['identifier'] Identifier for filter, will be used in URL. If not set, will be created from 'title'.

Relations: $zz['filter'][n]['title']

893 boolean no $zz['filter'][n]['ignore_invalid_filters'] if true: invalid filter values will not trigger a 404 error and they will not show a message that the filter is invalid
979 string no $zz['filter'][n]['like'] allows to change LIKE "%...%" to something different
337 array no $zz['filter'][n]['selection'] Possible filters, always pairs of record_id and filter title; values starting with »!« will be compared against with !=, »\« escapes possible !-signs
968 string: SQL no $zz['filter'][n]['sql_join'] SQL JOIN to add for filter to $zz['sql']

Relations: $zz['sql']

785 string: SQL no $zz['filter'][n]['sql'] SQL query that should return two fields, set of record_id and title that will be used for `$zz['filter'][n]['selection']`

Relations: $zz['filter'][n]['selection']

333 string: HTML no $zz['filter'][n]['title']
335 string no $zz['filter'][n]['type'] * show_hierarchy * list * where (== list, with the only difference that you must not change the field with the where-value anymore, similar to a 'where' in the URL)
988 array no $zz['filter'][n]['where_if'] 'where_if' allows to set a WHERE query individually for each selection
336 string: SQL no $zz['filter'][n]['where'] If type == 'list', this is the required part for the WHERE condition without the equal sign. Might be, even without 'selection', an array for multiple WHERE-conditions connected with OR filter=NULL and filter=!NULL will be translated to the correct SQL query form
265 array: path no $zz['folder'][] array with root, string, field, mode for a folder that must be renamed/deleted after changing the record

Relations: ACTION

933 string: HTML no $zz['geo_map_html'] if set, zzbrick/forms module will include a javascript map (e. g. OpenLayers) to display the records via a KML export on this map; a map template and a JavaScript-library is required

Relations: $zz_conf['export']; brick_forms()

934 string no $zz['geo_map_template'] template for $zz['geo_map_html']

Relations: $zz_conf['export']; brick_forms(); $zz['geo_map_html']

974 boolean no $zz['list']['hide_columns_if_empty'] check all columns in list and hide columns if they are empty, behaviour is equivalent to 'hide_in_list_if_empty' on a per field basis

Relations: LIST; $zz['fields'][n]['hide_in_list_if_empty']

266 array no $zz['list']['hierarchy'] display table in a hierarchical view. Caution: - these variables might need a lot of memory when handling bigger amounts of records because all record ids have to be saved to memory - in combination with a WHERE-Condition (`&where[field]=32`), some records might be missing in a branch of a tree because the WHERE-Condition might exclude these records. For the top level, the missing records will be shown read-only

Relations: GLOBAL

268 string: field no $zz['list']['hierarchy']['display_in'] field_name where hierarchy shall be displayed (level0...10), or table_name in case field is of type subtable

Relations: LIST

945 boolean no $zz['list']['hierarchy']['hide_top_value'] Shows hierarchy without top value, moving all records one level up
912 integer no $zz['list']['hierarchy']['id'] ID of top record in hierarchy if just a subtree shall be displayed

Relations: LIST

267 string: field no $zz['list']['hierarchy']['mother_id_field_name'] field_name: mother ID, to get hierarchical view

Relations: LIST

539 boolean no $zz['list']['tfoot'] shows table foot, e. g. for sums of individual values

Relations: LIST

920 array no $zz['set_redirect'] List of redirects that will be added to the database redirects table if an identifier is updated or a record with an identifier is deleted. Might be list of strings (old and new pattern is equal), list of arrays (old and new patterns differ); field_name may be set optionally if more than one identifier is in the field list.

Relations: $zz['extra_action']; identifier

8 string: SQL yes $zz['sql'] SQL statement for list display and to get field values for form display
9 string: SQL no $zz['sqlorder'] SQL statement, part must begin with ' ORDER BY', to sort database table
947 string: SQL no $zz['sqlcount'] separate SQL query for counting records if main query is too heavy

Relations: $zz['sql']

985 string: SQL no $zz['sqlextra'] if SQL query is too complex, additional values can be read via 'sqlextra' queries
941 string: SQL no $zz['sqlrecord'] SQL query which will be used only for record view, not for list view

Relations: $zz['sql']

7 string: field yes $zz['table'] Name of database table (might include database name as well, e. g. Database.Table)
216 string: HTML no $zz['title'] optional: h1-heading to be used for form instead of $zz['table']

Relations: OUTPUT

238 string: HTML no $zz['explanation'] Textblock after heading

Relations: $zz_conf['footer_text']; OUTPUT

917 variable no $zz['subtitle'][field]['concat'] Array or string; if more than one field is used for subtitle, this string or these strings will be used instead of the default space for concatenating the fields. If an array is used and the number of elements is smaller than the number of spaces to fill, the last value will be repeated.

Relations: OUTPUT

240 array no $zz['subtitle'][field]['enum'] field = $where_id, without tablename; = $zz['fields'][n]['enum'] where n is the index of the field corresponding to the key

Relations: $zz['fields'][n]['enum']; OUTPUT

987 variable no $zz['subtitle'][field]['format'] Array or string; format all (string) or one (array) value with a formatting function

Relations: OUTPUT

327 string no $zz['subtitle'][field]['link'] heading link provides a link back from the filter text directly below the heading ('var', 'sql') to the main page which triggers the filter (displaying the corresponding record)

Relations: $zz['subtitle'][field]['sql']; $zz['subtitle'][field]['var']; OUTPUT

789 boolean no $zz['subtitle'][field]['link_no_append'] does not append mode=show&id=.. to URL
916 string: HTML no $zz['subtitle'][field]['prefix'] Prefix, added to value if there is one
217 string: SQL no $zz['subtitle'][field]['sql'] [$where_id, without tablename]['sql'] = $zz['fields'][n]['sql'] where n is the index of the field corresponding to the key

Relations: OUTPUT

915 string: HTML no $zz['subtitle'][field]['suffix'] Suffix, added to value if there is one
914 boolean no $zz['subtitle'][field]['value'] if true, value of field will be displayed for subtitle
218 array no $zz['subtitle'][field]['var'] ['heading_sub'][$where_id, without tablename]['var'] = array() field from heading_sql-query which shall be used for better display of H2 and TITLE blabla:<br>var1 var2 var3

Relations: OUTPUT

918 array no $zz['unique'] Describes UNIQUE key for detail tables. For updates via zzform_multi() which do not know the record ID of the detail table this can be used to avoid getting this ID first.
821 array no $zz['where'] WHERE condition for record, like via URL where[some_id]=10
538 boolean no $zz[list']['select_multiple_records'] UNDER DEVELOPMENT.

Relations: LIST

Export (CSV Excel)

348 records total