Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:architecture:record_data_formatter
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
development:architecture:record_data_formatter [2016/12/01 15:55] – demiankatz | development:architecture:record_data_formatter [2020/09/22 14:19] – demiankatz | ||
---|---|---|---|
Line 12: | Line 12: | ||
* A [[development: | * A [[development: | ||
- | As output, getData() returns an associative array of field name < | + | As output, getData() returns |
- | Additionally, | + | Field names are raw and should be translated/ |
+ | |||
+ | Additionally, | ||
===== Specification Array ===== | ===== Specification Array ===== | ||
Line 22: | Line 24: | ||
^Key^Optional/ | ^Key^Optional/ | ||
| allowZero | optional (default = true) | If the raw data evaluates to 0 or ' | | allowZero | optional (default = true) | If the raw data evaluates to 0 or ' | ||
- | | context | optional | When template rendering is used, an array of values | + | | context | optional | An array of contextual values that may be used to help with template rendering; these are always passed through as the ' |
| dataMethod | :!: required :!: | The record driver method to use for extracting raw field data used for generating output. May be set to boolean true to always generate output without variable input; may be set to boolean false to suppress the entire field. | | | dataMethod | :!: required :!: | The record driver method to use for extracting raw field data used for generating output. May be set to boolean true to always generate output without variable input; may be set to boolean false to suppress the entire field. | | ||
- | | method | + | | helperMethod |
| pos | optional | An integer used for sorting the fields to determine the final display order. | | | pos | optional | An integer used for sorting the fields to determine the final display order. | | ||
- | | renderType | optional (default = Simple) | The method used to render output from the input provided by dataMethod. Legal values: RecordDriverTemplate (render a template associated with the record driver, as specified by the ' | + | | renderType | optional (default = Simple) | The method used to render output from the input provided by dataMethod. Legal values: |
- | | labelFunction | optional | May be set to a callback function which will receive the raw field data as input and produce a custom output label (overriding the key of the spec array) as output. | | + | | labelFunction | optional | May be set to a callback function which will receive the raw field data as input and produce a custom output label (overriding the key of the spec array) as output. Starting with VuFind 5.0, the callback function also receives the record driver object as a second parameter. | |
- | | prefix | optional | HTML to prepend to the output generated by the view helper. Applies only when RenderType = Simple. | | + | | multiFunction | optional | The callback required when renderType = Multi. Accepts three parameters: 1.) raw input data, 2.) the options array from the spec, 3.) the record driver object. Outputs an array of associative arrays with the following keys: **label**: Label to display; **values**: Values to render; **options**: |
+ | | multiRenderType | optional | The default type of rendering to apply to each of the sets of values returned by the multiFunction (optional, defaults to Simple, may be overridden by options specified by your multiFunction). | | ||
+ | | itemPrefix | optional | HTML to prepend to each value formatted by the view helper. Use prefix instead if you want to prepend a single value to the whole set of data assembled by the view helper. Applies only when RenderType = Simple. :!: // Introduced in VuFind 7.0. // | | ||
+ | | prefix | optional | HTML to prepend to the output generated by the view helper. This is applied once before the full set of values; use itemPrefix if you want to prepend something to each individual value. Applies only when RenderType = Simple. | | ||
| recordLink | optional | The type of link (from the Record view helper' | | recordLink | optional | The type of link (from the Record view helper' | ||
| separator | optional (default = < | | separator | optional (default = < | ||
- | | suffix | optional | HTML to append to the output generated by the view helper. Applies only when RenderType = Simple. | | + | | itemSuffix | optional | HTML to append to each value formatted by the view helper. Use suffix instead if you want to append a single value to the whole set of data assembled by the view helper. Applies only when RenderType = Simple. :!: // Introduced in VuFind 7.0. // | |
+ | | suffix | optional | HTML to append to the output generated by the view helper. This is applied once after the full set of values; use itemSuffix if you want to append something to each individual value. Applies only when RenderType = Simple. | | ||
| template | optional | The name of the template to render, when renderType = RecordDriverTemplate | | | template | optional | The name of the template to render, when renderType = RecordDriverTemplate | | ||
| translate | optional (default = false) | Should we run raw field data through the translator? Applies only when RenderType = Simple. | | | translate | optional (default = false) | Should we run raw field data through the translator? Applies only when RenderType = Simple. | | ||
+ | | translationTextDomain | optional (default = '' | ||
| useCache | optional (default = false) | Should we cache the raw field data in the view helper to avoid duplicate calls? | | | useCache | optional (default = false) | Should we cache the raw field data in the view helper to avoid duplicate calls? | | ||
===== The Specification Builder ===== | ===== The Specification Builder ===== | ||
- | A SpecBuilder convenience class has been provided to help generate specification arrays. This handles such functionality as auto-generating useful ' | + | A [[https:// |
+ | |||
+ | Useful public methods: | ||
+ | * setLine($key, | ||
+ | * setMultiLine($key, | ||
+ | * setTemplateLine($key, | ||
+ | * reorderKeys($orderedKeys, | ||
===== Customizing Specifications ===== | ===== Customizing Specifications ===== | ||
Line 46: | Line 59: | ||
==== Option 1: Override the Factory ==== | ==== Option 1: Override the Factory ==== | ||
- | If you want to make global changes to a specification, | + | If you want to make global changes to a specification, |
==== Option 2: Override the Template ==== | ==== Option 2: Override the Template ==== |
development/architecture/record_data_formatter.txt · Last modified: 2022/12/20 13:03 by demiankatz