man Bric::Biz::Asset::Business::Story () - The interface to the Story Object

NAME

Bric::Biz::Asset::Business::Story - The interface to the Story Object

VERSION

$LastChangedRevision$

DATE

$LastChangedDate: 2005-10-07 11:27:15 -0700 (Fri, 07 Oct 2005) $

SYNOPSIS

 # creation of new objects
 $story = Bric::Biz::Asset::Business::Story->new( $init )
 $story = Bric::Biz::Asset::Business::Story->lookup( $param )
 ($stories || @stories) = Bric::Biz::Asset::Business::Story->list($param)

 # list of object ids
 ($ids || @ids) = Bric::Biz::Asset::Business::Story->list_ids($param)

 # Type of workflow.
 my $wf_type = Bric::Biz::Asset::Business::Story->workflow_type;

  # General information
 $asset       = $asset->get_id()
 $asset       = $asset->set_description($description)
 $description = $asset->get_description()

 # User information
 $usr_id      = $asset->get_user__id()
 $asset       = $asset->set_user__id($usr_id)

 # Version information
 $vers_grp_id = $asset->get_version_grp__id();
 $vers_id     = $asset->get_asset_version_id();

 # Desk information
 $desk        = $asset->get_current_desk;
 $asset       = $asset->set_current_desk($desk);

 # Workflow methods.
 $id  = $asset->get_workflow_id;
 $obj = $asset->get_workflow_object;
 $id  = $asset->set_workflow_id;

 # Access note information
 $asset                 = $asset->add_note($note)
 ($note_list || @notes) = $asset->get_notes()

 # Access active status
 $asset            = $asset->deactivate()
 $asset            = $asset->activate()
 ($asset || undef) = $asset->is_active()

 # Publish info
 $needs_publish = $asset->needs_publish();

 ## METHODS INHERITED FROM Bric::Biz::Asset::Business ##

 # General info
 $name = $biz->get_name()
 $biz  = $biz->set_name($name)
 $ver  = $biz->get_version()

 # AssetType information
 $name        = $biz->get_element_name()
 $at_id       = $biz->get_element__id()
 $biz         = $biz->set_element__id($at_id)

 # Tile methods
 $container_tile  = $biz->get_tile()
 @container_tiles = $biz->get_tiles()
 $biz             = $biz->add_data($at_data_obj, $data)
 $data            = $biz->get_data($name, $obj_order)
 $parts           = $biz->get_possible_data()

 # Container methods
 $new_container = $biz->add_container($at_contaier_obj)
 $container     = $biz->get_container($name, $obj_order)
 @containes     = $biz->get_possible_containers()

 # Access Categories
 $cat             = $biz->get_primary_category;
 $biz             = $biz->set_primary_category($cat);
 ($cats || @cats) = $biz->get_secondary_categories;
 $biz             = $biz->add_categories([$category, ...])
 ($cats || @cats) = $biz->get_categories()
 $biz             = $biz->delete_categories([$category, ...]);

 # Access keywords
 $biz               = $biz->add_keywords(\@kws)
 ($kw_list || @kws) = $biz->get_keywords()
 ($self || undef)   = $biz->has_keyword($keyword)
 $biz               = $biz->del_keywords([$kw, ...])

 # Setting extra information
 $id   = $biz->create_attr($sql_type, $length, $at_data_id, $data_param);
 $data = $biz->get_attr()
 $id   = $biz->create_map($map_class, $map_type, $data_param);

 # Change control
 $biz            = $biz->cancel()
 $biz            = $biz->revert($version)
 (undef || $biz) = $biz->checkin()
 $biz            = $biz->checkout($param)

 ## INSTANCE METHODS FOR Bric::Biz::Asset::Business::Story

 # Manipulation of slug field
 $slug  = $story->get_slug()
 $story = $story->set_slug($slug)

 # Access the source ID
 $src_id = $story->get_source__id()

 # Change control
 ($story || undef) = $story->is_current()

 # Ad string management
 $story         = $story->delete_ad_param($key)
 $ad_param_hash = $story->get_ad_param()
 $story         = $story->set_ad_param($key ,$val);

 # Publish data
 $date  = $story->get_expire_date()
 $story = $story->set_expire_date()

 $date  = $story->get_publish_date()
 $story = $story->set_publish_date()

 # Save to the database
 $story = $story->save()

DESCRIPTION

Story contains all of the data that will result in published page(s) It contains the metadata and associations with story documents. It inherits from Bric::Biz::Asset::Business

INTERFACE

Constructors

This will create a new story object with an optionally defined initial state Supported Keys:

*
user__id - Required.
*
active
*
priority
*
title - same as name
*
name - Will be overridden by title
*
description
*
workflow_id
*
slug
*
element__id - Required unless asset type object passed
*
element - the object required unless id is passed
*
site_id - required
*
source__id - required
*
cover_date - will set expire date in conjunction with the source Throws: NONE Side Effects: NONE Notes: NONE This will return a story asset that matches the id provided Throws: Missing required parameter 'id' Side Effects: NONE Notes: Inherited from Asset
(@stories||$stories) = Bric::Biz::Asset::Business::Story->list($params)
Returns a list or anonymous array of Bric::Biz::Asset::Business::Story objects based on the search parameters passed via an anonymous hash. The supported lookup keys are:
title
The title of the story. May use CWANY for a list of possible values.
name
Same as CWtitle.
description
Story description. May use CWANY for a list of possible values.
id
The story ID. May use CWANY for a list of possible values.
version
The story version number. May use CWANY for a list of possible values.
version_id
The ID of a version of a story. May use CWANY for a list of possible values.
slug
The story slug. May use CWANY for a list of possible values.
user_id
Returns the versions that are checked out by the user, otherwise returns the most recent version. May use CWANY for a list of possible values.
checked_out
Indicates whether to list stories that are checked out or not. If 0, then only non-checked out stories will be returned. If 1, then only checked-out stories will be returned. If all, then the checked_out attributed will be ignored (unless the CWuser__id parameter is passed).
checked_in
If passed a true value, this parameter causes the checked in version of the most current version of the story to be returned. When a story is checked out, there are two instances of the current version: the one checked in last, and the one currently being edited. When the CWchecked_in parameter is a true value, then the instance last checked in is returned, rather than the instance currently checked out. This is useful for users who do not currently have a story checked out and wish to see the story as of the last check in, rather than as currently being worked on in the current checkout. If a story is not currently checked out, this parameter has no effect.
published_version
Returns the versions of the stories as they were last published. The CWchecked_out parameter will be ignored if this parameter is passed a true value.
return_versions
Boolean indicating whether to return pass version objects for each story listed.
active
Boolean indicating whether to return active or inactive stories.
inactive
Returns only inactive stories.
alias_id
Returns a list of stories aliased to the story ID passed as its value. May use CWANY for a list of possible values.
category_id
Returns a list of stories in the category represented by a category ID. May use CWANY for a list of possible values.
category_uri
Returns a list of stories with a given category URI. May use CWANY for a list of possible values.
keyword
Returns stories associated with a given keyword string (not object). May use CWANY for a list of possible values.
workflow_id
Return a list of stories in the workflow represented by the workflow ID. May use CWANY for a list of possible values.
desk_id
Returns a list of stories on a desk with the given ID. May use CWANY for a list of possible values.
primary_uri
Returns a list of stories with a given primary URI. May use CWANY for a list of possible values.
story.category
Pass in a story ID, and a list of stories in the same categories as the story with that ID will be returned, minus the story with that ID. This parameter triggers a complex join, which can slow the query time significantly on underpowered servers or systems with a large number of stories. Still, it can be very useful in templates that want to create a list of stories in all of the categories the current story is in. But be sure to use the <Limit> parameter!
site_id
Returns a list of stories associated with a given site ID. May use CWANY for a list of possible values.
element_id
Returns a list of stories associated with a given element ID. May use CWANY for a list of possible values.
source_id
Returns a list of stories associated with a given source ID. May use CWANY for a list of possible values.
output_channel_id
Returns a list of stories associated with a given output channel ID. May use CWANY for a list of possible values.
primary_oc_id
Returns a list of stories associated with a given primary output channel ID. May use CWANY for a list of possible values.
priority
Returns a list of stories associated with a given priority value. May use CWANY for a list of possible values.
contrib_id
Returns a list of stories associated with a given contributor ID. May use CWANY for a list of possible values.
grp_id
Returns a list of stories that are members of the group with the specified group ID. May use CWANY for a list of possible values.
publish_status
Boolean value indicating whether to return published or unpublished stories.
first_publish_date_start
Returns a list of stories first published on or after a given date/time.
first_publish_date_end
Returns a list of stories first published on or before a given date/time.
publish_date_start
Returns a list of stories last published on or after a given date/time.
publish_date_end
Returns a list of stories last published on or before a given date/time.
cover_date_start
Returns a list of stories with a cover date on or after a given date/time.
cover_date_end
Returns a list of stories with a cover date on or before a given date/time.
expire_date_start
Returns a list of stories with a expire date on or after a given date/time.
expire_date_end
Returns a list of stories with a expire date on or before a given date/time.
unexpired
A boolean parameter. Returns a list of stories without an expire date, or with an expire date set in the future.
element_key_name
The key name for the story type element. May use CWANY for a list of possible values.
subelement_key_name
The key name for a container element that's a subelement of a story. May use CWANY for a list of possible values.
data_text
Text stored in the fields of the story element or any of its subelements. Only fields that use the short storage type will be searched. May use CWANY for a list of possible values.
Order
A property name to order by.
OrderDirection
The direction in which to order the records, either ASC for ascending (the default) or DESC for descending.
Limit
A maximum number of objects to return. If not specified, all objects that match the query will be returned.
Offset
The number of objects to skip before listing the remaining objcts or the number of objects specified by CWLimit.
simple
Triggers a single OR search that hits title, description, primary_uri and keywords. Throws:
*
Unable to connect to database.
*
Unable to prepare SQL statement.
*
Unable to select column into arrayref.
*
Unable to execute SQL statement.
*
Unable to bind to columns to statement handle.
*
Unable to fetch row from statement handle. Side Effects: NONE Notes: Inherited from Bric::Biz::Asset;

Destructors

$self->DESTROY
This is a dummy method to save autoload the time to find it

Public Class Methods

Returns an unordered list or array reference of story object IDs that match the criteria defined. The criteria are the same as those for the CWlist() method except for CWOrder and CWOrderDirection, which CWlist_ids() ignore. See the CWlist() method for the list of supported Keys. Throws: NONE. Side Effects: NONE. Notes: Inherited from Bric::Biz::Asset. Returns the key name of this class. Throws: NONE. Side Effects: NONE. Notes: NONE.

$meths = Bric::Biz::Asset::Business::Story->my_meths
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. The format for each introspection item introspection is as follows: 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 representing the values and display names to use in a select list. Throws: NONE. Side Effects: NONE. Notes: NONE. Returns the value of the Bric::Biz::Workflow CWSTORY_WORKFLOW constant.

Public Instance Methods

Returns the a URL for this business asset. The URL is determined by the pre- and post- directory strings of an output channel, the URI of the business object's asset type, and the cover date if the asset type is not a fixed URL. Throws:

*
No category associated with story.
*
Category not associated with story.
*
Output channel not associated with story. Side Effects: NONE. Notes: NONE. Sets the slug for this story Throws: Slug Must conform to URL character rules. Side Effects: NONE Notes: NONE returns the slug that has been set upon this story Throws: NONE Side Effects: NONE Notes: NONE This will return a list of categories that have been associated with the business asset. Throws: NONE Side Effects: NONE Notes: NONE Returns the category object that has been defined as primary Throws: NONE Side Effects: NONE Notes: NONE Defines a category as being the the primary one for this story. If a category is already marked as being primary, this will disassociate it. Throws: NONE Side Effects: NONE Notes: NONE Returns the non-primary categories that are associated with this story Throws: NONE Side Effects: NONE Notes: NONE This will take a list ref of category objects or ids and will associate them with the business asset Side Effects: Adds the asset_grp_ids of the categories to grp_ids (unless they are already there). This will take a list of categories and remove them from the asset Throws: NONE Side Effects: NONE Notes: NONE Preforms story specific checkout stuff and then calls checkout on the parent class Throws: NONE Side Effects: NONE Notes: NONE Returns a list or anonymous array of Bric::Biz::Group object ids representing the groups of which this Bric::Biz::Asset::Business::Story object is a member. Throws: See Bric::Util::Grp::list(). Side Effects: NONE. Notes: This list includes the Group IDs of the Desk, Workflow, and categories in which the story is a member. [Actually, this method is currently disabled, since categories don't actually add assets to an underlying group. If we later find that customers need to control access to assets based on category, we'll figure out a way to rectify this.] Reverts the current version to a prior version Throws: NONE Side Effects: NONE Notes: NONE Creates an identical copy of this asset with a different id Throws: NONE Side Effects: NONE Notes: NONE Updates the story object in the database Throws: NONE Side Effects: NONE Notes: NONE

PRIVATE

Private Class Methods

Private Instance Methods

Returns the contributors from a cache or looks em up Throws: NONE Side Effects: NONE Notes: NONE Inserts a row into the mapping table for contributors Throws: NONE Side Effects: NONE Notes: NONE Updates the contributor mapping table Throws: NONE Side Effects: NONE Notes: NONE Deletes the rows from these mapping tables Throws: NONE Side Effects: NONE Notes: NONE Returns the category data structure for this story Throws: NONE Side Effects: NONE Notes: NONE Called by save this will make sure that all the changes in category mappings are reflected in the database Throws: NONE Side Effects: NONE Notes: NONE Adds a record that associates this ba with the category Throws: NONE Side Effects: NONE Notes: NONE Removes this record for the database Throws: NONE Side Effects: NONE Notes: NONE Preforms an update on the row in the data base Throws: NONE Side Effects: NONE Notes: NONE Returns the attribte object for this story Throws: NONE Side Effects: NONE Notes: NONE Inserts a story record into the database Throws: NONE side Effects: NONE Notes: NONE Inserts an instance record into the database Throws: NONE Side Effects: NONE Notes: NONE Updates the story record in the database Throws: NONE Side Effects: NONE Notes: NONE Updates the record for the story instance Throws: NONE Side Effects: NONE Notes: NONE Deletes the version record from a cancled checkout Throws: NONE Side Effects: NONE Notes: NONE Deletes from the story table for a story that has never been checked in Throws: NONE Side Effects: NONE Notes: NONE

NOTES

NONE

AUTHOR

Michael Soderstrom <miraso@pacbell.net>

SEE ALSO

perl, Bric, Bric::Biz::Asset, Bric::Biz::Asset::Business