METADATA

The following methods facilitate the storage and management of metadata; available when the 'meta' key is included in the installed properties for the class.

$obj->init_meta()

For object classes that have metadata storage, this method will initialize the metadata member.

Class->install_meta( \%meta_properties )

Called to register metadata properties on a particular class. The %meta_properties may contain an arrayref of 'columns', or a hashref of 'column_defs' (similar to the install_properties method):

MT::Foo->install_meta( { column_defs => {
    'metadata1' => 'integer indexed',
    'metadata2' => 'string indexed',
} });

In this form, the storage type is explicitly declared, so the metadata is stored into the appropriate column (vintegeridx and vcharidx respectively).

MT::Foo->install\_meta( { columns => [ 'metadata1', 'metadata2' ] } )

In this form, the metadata properties store their data into a 'blob' column in the meta table. This type of metadata cannot be used to sort or filter on. This form is supported for backward compatibility and is considered deprecated.

$obj->remove_meta()

Deletes all related metadata for the given object.

Class->search_by_meta( $key, $value, [ \%terms [, \%args ] ] )

Returns objects that have a $key metadata value of $value. Further restrictions on the class may be applied through the optional %terms and %args parameters.

$obj->meta_obj()

Returns the MT::Object class

Class->meta_pkg()

Returns the Perl package name for storing it's metadata objects.

Class->meta_args

Returns the source of a Perl package declaration that is loaded to declare and process metadata objects for the Class.

Class->has_meta( [ $name ] )

Returns a boolean as to whether the class has metadata when called without a parameter, or whether there exists a metadata column of the given $name.

Class->is_meta_column( $name )

Returns a boolean as to whether the class has a meta column named $name.

This page is part of the MT::Object Reference

This page was last updated on 2008-10-01, 17:07.

Leave a note

Have a question? Please use the MT Forums. Notes submitted on documentation should pertain to tips & hints regarding documentation. Your note may be removed once its contents have been integrated into the body of the page.