Jump to content

Boolean field: Difference between revisions

From EPrints Documentation
Removed link to API page (just a redirect to this)
Reinstate link to API page even though a redirect
 
Line 64: Line 64:


== API ==
== API ==
See [[API:EPrints/MetaField/Boolean|API page]].
In the code these fields are stored as strings containing <tt>TRUE</tt>, <tt>FALSE</tt> or <tt>undef</tt> if they are not set.
In the code these fields are stored as strings containing <tt>TRUE</tt>, <tt>FALSE</tt> or <tt>undef</tt> if they are not set.



Latest revision as of 09:47, 9 July 2024


Description[edit]

Describes a simple yes/no value. Unless the field has the required property set, it can actually have a third setting of unset. This can be useful as it distinguishes between a "False" and a "don't know/haven't filled this in yet". For example when asking if a paper is refereed, this is a boolean field. However it's not required as often someone isn't sure, and does not want to click "no" when that's not necessarily true.

Inheritance[edit]

Additional Properties[edit]

Name Default Value Required Description Notes
input_style checkbox NO This controls how the field is rendered in input forms. May be one of menu, radio or checkbox.
input_rows n/a NO Number of rows for select box in input form. Only applicable if input_style => 'menu'. If so, must be configured within field definition.
false_first 0 NO Whether the false option should appear before the true option.

Required Phrases[edit]

In addition to the standard metadata field phrases:

menu style[edit]

If you use input_style=>"menu" then you need two phrases of the type:

datasetid + "_fieldopt_" + fieldname + "_TRUE"
datasetid + "_fieldopt_" + fieldname + "_FALSE"

These control the display of the items in the menu.

Example:

   <epp:phrase id="eprint_fieldopt_myboolean_TRUE">Certainly!</epp:phrase>
   <epp:phrase id="eprint_fieldopt_myboolean_FALSE">No way!</epp:phrase>

optional phrase to replace 'UNSPECIFIED' text[edit]

To overwrite the default 'UNSPECIFIED' option displayed when a boolean field is not required, a phrase with an underscore at the end can be used:

datasetid + "_fieldopt_" + fieldname + "_"

Example:

   <epp:phrase id="eprint_fieldopt_myboolean_">Don't know.</epp:phrase>

radio style[edit]

This uses a single phrase with two pins in it to indicate the locations of the radio buttons. The phrase id is:

datasetid + "_radio_" + fieldname

We suggest placing a <label> element around the radio button and it's title - as well as being good practice, this also means that in some browsers clicking on the text will select the button.

For example:

   <epp:phrase id="eprint_radio_myboolean"><label><epc:pin name="true"/>Yes, I like cheese.</label>
<label><epc:pin name="false"/>No, cheese is bad.</label></epp:phrase>

Database[edit]

Boolean fields are stored in the database as

fieldname VARCHAR(5)

API[edit]

See API page.

In the code these fields are stored as strings containing TRUE, FALSE or undef if they are not set.

Examples[edit]

Most basic example. Display a checkbox as this is the default.

{ 
   name => "no_request_email_button",
   type => "boolean",
}

Display as radio group of options. Allows TRUE, FALSE and UNSPECIFIED but phrases uses will determine labelling of options displaye.

{
    name => 'refereed',
    type => 'boolean',
    input_style => 'radio',
},

Display as drop down list of options. Allows only TRUE or FALSE as required is set to true.

{ 
    name => 'is_artwork', 
    type => 'boolean', 
    required => 1, 
    input_style => 'menu',
},