Name

Bric::Biz::ElementType::Parts::FieldType - Bricolage Field Type management

Synopsis

$field = Bric::Biz::ElementType::Parts::FieldType->new( $initial_state )

$field = Bric::Biz::ElementType::Parts::FieldType->lookup( { id => $id } )

($field_list || @fields) = Bric::Biz::ElementType::Parts::FieldType->list($criteria)

($ids || @ids) = Bric::Biz::ElementType::Parts::FieldType->list_ids($criteria)


$id    = $field->get_id()

# Get/Set the name of this field.
$field = $field->set_key_name($name)
$name  = $field->get_key_name()

# Get/set the description for this field.
$field = $field->set_description($description)
$desc  = $field->get_description()

# Get/Set the maximum length for the data in this field.
$field = $field->set_max_length($max_length)
$max   = $field->get_max_length()

# (deprecated) Get/Set whether this field is required or not.
$field       = $field->set_required(1 || undef)
(1 || undef) = $field->get_required()

# (deprecated) Get/Set the quantifier flag.
$field      = $field->set_quantifier( $quantifier )
$quantifier = $field->get_quantifier()

# Get/Set min occurrence specification limit
$field = $field->set_min_occurrence($amount)
$min = $field->get_min_occurrence()

# Get/Set max occurrence specification limit
$field = $field->set_max_occurrence($amount)
$max = $field->get_max_occurrence()

# Get/Set the data type (or SQL type) of this field.
$field    = $field->set_sql_type();
$sql_type = $field->get_sql_type()

# Set the active flag for this field.
$field       = $field->activate()
$field       = $field->deactivate()
(undef || 1) = $field->is_active()

(undef || $self) = $field->remove()

$field = $field->save()

Description

This class holds the data about data that will eventualy populate Published Assets. The key_name and description fields can be set as can a number of rules.

The max length field. This will allow someone to set the max length allowed for their field. It will have a rule set upon it so that the max length will not be greater than any available storage. The field length will map to what ever storarge is available for a field just larger than the one listed ( Thought needs to be given how to handle those that change their length after data has been entered as it might switch storage catagories)

The quantifier field will state whether the field may be repeated indefinitely, zero or more times, zero or one, one, or an arbitrary number of times.

the sql type will map to a type in the DB ( varchar or date )

Interface

Constructors

$field = Bric::Biz::ElementType::Parts::FieldType->new( $initial_state )

Creates a new element type Field Part with the values associated with the initial state

Supported Keys:

Throws: NONE

Side Effects: NONE

Notes: NONE

$field = $field->copy($at_id);

Makes a copy of itself and passes back a new object. The only argument is an element type ID. This needs to be passed since a field of one name cannot be inserted twice into the same element type.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$field = Bric::Biz::ElementType::Parts::FieldType->lookup({ id => $id })

Returns an existing element type field object that has the id that was given as an argument

Throws: NONE

Side Effects: NONE

Notes: NONE

($parts || @parts) = Bric::Biz::ElementType::Parts::FieldType->list($params)

Returns a list or array refeference of field objects that match the criteria in the $params hash reference. Supported criteria are:

id

Field ID. May use ANY for a list of possible values.

element_type_id

The ID of the Bric::Biz::ElementType object with which the field is associated. May use ANY for a list of possible values.

key_name

The field key name. May use ANY for a list of possible values.

name

The field name. May use ANY for a list of possible values.

description

The field description. May use ANY for a list of possible values.

place

The field place relative to other fields in the same element type. May use ANY for a list of possible values.

quantifier

Boolean value indicating whether the field is single or can be multiple.

autopopulated

Boolean value indicating whether the field's value is autopopulated by a media document.

max_length

The maximum length of the field. May use ANY for a list of possible values.

required

Boolean value indicating whether or not the field is always included in an element.

sql_type

Indicates how the field value should be stored in the database. Possible values are "short", "blob", and "date". May use ANY for a list of possible values.

widget_type

A string indicating what widget should be used to display the field in user interfaces. May use ANY for a list of possible values.

precision

An inteteger indicating the precision of the field's value. Should be set only when the widget_type is set to "date". May use ANY for a list of possible values.

cols

The number of columns to use to display the field. Should only be set when the widget_type is set to "textarea" or "wysiwyg". May use ANY for a list of possible values.

rows

The number of rows to use to display the field. Should only be set when the widget_type is set to "textarea" or "wysiwyg". May use ANY for a list of possible values.

length

The length to use in the display of the field. Should only be set when the widget_type is set to "text". May use ANY for a list of possible values.

multiple

A boolean value indicating whether or not the field may store multiple values. Should only be set to a true value when the widget_type is set to "select".

default_val

A string indicating the default value for the field. May use ANY for a list of possible values.

active

Boolean valule indicating whether or not the field is active.

max_occurrence

Specifies an upper limit to how many instances there may be of this field type. 0 represents unlimited.

min_occurrence

Specifies a lower limit to how many instances there may be of this field type. 0 indicates that it is not required.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

my $data_href = Bric::Biz::Site->href($params);

Returns an anonymous hash of data objects based on the search parameters passed via an anonymous hash. The hash keys will be the site IDs, and the values will be the corresponding data elements. The supported lookup keys are the same as those for list().

Throws:

Exception::DA

Destructors

$self->DESTROY

Dummy method to prevent wasting time trying to AUTOLOAD DESTROY.

Public Class Methods

$meths = Bric::Biz::ElementType->my_meths
(@meths || $meths_aref) = Bric::Biz::ElementType->my_meths(TRUE)
my (@meths || $meths_aref) = Bric::Biz::ElementType->my_meths(0, TRUE)

Returns an anonymous hash of introspection data for this object. If called with a true argument, it will return an ordered list or anonymous array of introspection data. If a second true argument is passed instead of a first, then a list or anonymous array of introspection data will be returned for properties that uniquely identify an object (excluding id, which is assumed).

Each hash key is the name of a property or attribute of the object. The value for a hash key is another anonymous hash containing the following keys:

name

The name of the property or attribute. Is the same as the hash key when an anonymous hash is returned.

disp

The display name of the property or attribute.

get_meth

A reference to the method that will retrieve the value of the property or attribute.

get_args

An anonymous array of arguments to pass to a call to get_meth in order to retrieve the value of the property or attribute.

set_meth

A reference to the method that will set the value of the property or attribute.

set_args

An anonymous array of arguments to pass to a call to set_meth in order to set the value of the property or attribute.

type

The type of value the property or attribute contains. There are only three types:

short
date
blob
len

If the value is a 'short' value, this hash key contains the length of the field.

search

The property is searchable via the list() and list_ids() methods.

req

The property or attribute is required.

props

An anonymous hash of properties used to display the property or attribute. Possible keys include:

type

The display field type. Possible values are

text
textarea
password
hidden
radio
checkbox
select
length

The Length, in letters, to display a text or password field.

maxlength

The maximum length of the property or value - usually defined by the SQL DDL.

rows

The number of rows to format in a textarea field.

cols

The number of columns to format in a textarea field.

vals

An anonymous hash of key/value pairs reprsenting the values and display names to use in a select list.

Throws: NONE.

Side Effects: NONE.

Notes: Not yet written.

($ids || @ids) = Bric::Biz::ElementType::Parts::Field->list_ids($params)

Returns the ids of the field objects that match the given criteria in the $params hash reference. See list() for a list of supported parameters.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

Public Instance Methods

$id = $field->get_id()

Returns the database id of the field object.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$name = $field->get_name()

Gets the name of the field.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_name($name)

Sets the name of the field.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$key_name = $field->get_key_name()

Returns the key name.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_key_name($key_name)

Sets the key name for this field.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$description = $field->get_description()

Return the human readable description field

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_description($description)

Sets the human readable descripton for this field, first converting any non-Unix line endings.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$max_length $field->get_max_length()

Return the max length that has been registered

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_max_length($max_length)

Set the max length in chars for this field

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$required = $field->get_required()

Return the required flag for this field

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_required($required)

Set the flag to make this field required ( default is not)

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$repeatable = $field->get_quantifier()

Return the repeatablity flag

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_quantifier($repeatable)

Sets the boolean attribute that indicates whether or not the field is repeatable within the element.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$max = $field->get_max_occurrence()

Return the maximum occurrence

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_max_occurrence($max)

Sets the maximum occurrence this field type may occur.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$min = $field->get_min_occurrence()

Return the minimum occurrence

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_min_occurrence($min)

Sets the minimum occurrence this field type may occur.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$data_type = $field->get_data_type()

Returns the database datatype

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_data_type($data_type)

Returns the database datatype

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$widget_type = $field->get_widget_type()

Returns a string indicating how to display the field in a UI.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_widget_type($widget_type)

Sets the attribute indicating how to display the field in a UI. Possible values are:

text
textarea
select
pulldown
radio
checkbox
codeselect
wysiwyg
date

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$precision = $field->get_precision()

Returns an inteteger indicating the precision of the field's value. Should be set only when the widget_type is set to "date".

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_precision($precision)

Sets the precision for widget_type "date". See Bric::Util::Time for documentation of the available precisions.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_cols($cols)

Sets the number of columns to use in displaying the field in a UI. Should only be set to a non-zero value if the widget_type attribute is set to "textarea" or "wysiwyg".

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$cols = $field->set_cols()

Returns the number of columns to use in display the field in a UI.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_rows($rows)

Sets the number of rows to use in displaying the field in a UI. Should only be set to a non-zero value if the widget_type attribute is set to "textarea" or "wysiwyg".

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$rows = $field->set_rows()

Returns the number of rows to use in display the field in a UI.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_length($length)

Sets the length to use in displaying the field in a UI. Should only be set to a non-zero value if the widget_type attribute is set to "text".

Thlength: NONE.

Side Effects: NONE.

Notes: NONE.

$length = $field->set_length()

Returns the number of length to use in display the field in a UI.

Thlength: NONE.

Side Effects: NONE.

Notes: NONE.

$multiple = $field->get_multiple()

Returns boolean value indicating whether the field can have multiple values.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_multiple($multiple)

Sets boolean value indicating whether the field can have multiple values. Should only be set to a true value if the widget_type is "select".

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$default_val = $field->get_default_val()

Returns the default value for the field.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_default_val($default_val)

Sets the default value for the field.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$vals = $field->get_vals()

Returns a string representing the possible values for the field.

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$field = $field->set_vals($vals)

Sets a list of values that can be used for the field. Each potential value should be listed on a single line, with a label following the value, separated by a comma and optional whitespace. Commas in the value or the label should be escaped. For example:

larry,  Wall\, Larry
damian, Conway\, Damian
chip,   Salzenberg\, Chip

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

$val = $data->set_attr($name, $value);
$val = $data->get_attr($name);

Get/Set attributes on this element type.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$val = $data->set_meta($name, $field, $value);
$val = $data->get_meta($name, $field);
$val = $data->get_meta($name);

Get/Set attribute metadata on this element type. Calling the 'get_meta' method without '$field' returns all metadata names and values as a hash.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$field = $field->activate()

Activates the field type object.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$field = $field->deactivate()

Deactivates the field type object.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

(undef || 1) = $field->is_active()

Returns 1 if active or undef otherwise

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

(undef || $self) = $field->remove()

Removes this object completely from the DB. Returns true if active or false otherwise.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$field = $field->save()

Saves the changes made to the database

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

Private

Private Class Methods

_do_list

called by list and list ids this does the brunt of their work

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

Private Instance Methods

Needing to be documented.

_get_attr_obj
_update_data

Update the field_type table.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

_insert_data

Insert rows into the field_type table.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

Private Functions

NONE

Notes

NONE

Author

michael soderstrom ( miraso@pacbell.net )

See Also

perl,Bric,Bric::Biz::Asset::Business::Story,Bric::Biz::ElementType,