Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
Asset_Manager Class Reference
Inheritance diagram for Asset_Manager:
MySource_Object

Public Member Functions

 Asset_Manager ()
 
 _loadAssetTypes ()
 
 getAssetTypes ($instantiable=NULL, $non_system_access=FALSE)
 
 refreshAssetType ($type_code)
 
 installed ($type_code)
 
 getTypeList ()
 
 getTypeInfo ($type_code, $field='')
 
 getAssetTypeHierarchy ($base_type_code='', $allowed_access='')
 
 _recurseGetAssetTypeHierarchy ($offspring, $base_type_code)
 
 getAssetTypeInfo ($assetids, $type_code=Array(), $strict_type_code=TRUE)
 
 includeAsset ($type_code, $with_edit_fns=FALSE)
 
 getTypeAncestors ($type_code, $include_asset=TRUE, $query_db=FALSE)
 
 getTypeDescendants ($type_code, $include_passed=FALSE)
 
 isTypeDecendant ($type_code1, $type_code2)
 
 isTypeAncestor ($type_code1, $type_code2)
 
 validAttributeType ($attr_type)
 
 getAttributeInfo ($attrids)
 
 getAttribute ($attrid, $value=NULL, $mute_errors=FALSE)
 
 getAssetTypeAttributes ($type_code, $details=Array('name', 'type'))
 
 getAttributeValuesByName ($attr_name, $asset_type, $assetids, $contextid=NULL)
 
 getAllAttributeValues ($assetid='', $type_code, $contextid=NULL)
 
 getAsset ($assetid, $type_code='', $mute_errors=FALSE)
 
 assetExists ($assetids)
 
 rememberAsset (&$obj)
 
 forgetAsset (&$obj, $force_clean=FALSE)
 
 getSystemAssetid ($name)
 
 _reloadSystemAssetList ()
 
 resetSystemAssetList ()
 
 isSystemAssetType ($asset_type)
 
 registerSystemAsset ($asset_type=NULL, $assetid=NULL)
 
 getSystemAsset ($name, $mute_errors=FALSE)
 
 canPurgeAsset (&$asset)
 
 getAssetInfo ($assetids, $type_code=Array(), $strict_type_code=TRUE, $field='')
 
 getAssetInfoFields ()
 
 getTypeAssetids ($type_code, $strict=TRUE, $include_type=FALSE)
 
 getEditableContents ($assetid)
 
 setEditableContents ($assetid, $content)
 
 _cloneAsset (&$source, &$link, &$clone_map, $components, $cloning_dependent=FALSE)
 
_cloneLink (&$clone, &$link, &$lock, &$source)
 
cloneAsset (&$source, &$link, &$clone_map, $components, $clone_dependents=TRUE, $cloning_dependent=FALSE)
 
 acquireLock ($assetid, $lock_type, $source_assetid=0, $force=FALSE, $expires=0)
 
 releaseLock ($assetid, $lock_type)
 
 updateLock ($assetid, $lock_type, $expires=0)
 
 getLockInfo ($assetid, $lock_type, $force_array=FALSE, $full_chain=FALSE, $check_expires=TRUE, $allow_only_one=FALSE)
 
 getLockTypes ($assetid, $lock_type)
 
 getLink ($assetid, $link_type=NULL, $type_code='', $strict_type_code=TRUE, $value=NULL, $side_of_link='major', $exclusive=NULL)
 
 getShadowLinkByAsset ($assetid, $other_assetid=NULL, $link_types=NULL, $value=NULL, $side_of_link='major', $force_array=FALSE)
 
 getLinkById ($linkid, $assetid=0, $side_of_link='major')
 
 getLinkByAsset ($assetid, $other_assetid, $link_types=NULL, $value=NULL, $side_of_link='major', $force_array=FALSE, $dependant=NULL, $exclusive=NULL)
 
 arrayMerge ($array1, $array2)
 
 getLinks ($assetid, $link_types, $type_code='', $strict_type_code=TRUE, $side_of_link='major', $value=NULL, $dependant=NULL, $exclusive=NULL, $sort_by=NULL, $access=NULL, $effective=TRUE)
 
 getAllChildLinks ($assetid, $link_type=0, $access=NULL, $effective=TRUE, $bind_prefix='gc_', $depth=0)
 
 getLinkLineages ($assetid, $result_limit=0, $from_treeid=NULL, $fields='name', $only_significant=FALSE)
 
 getParents ($assetid, $type_code='', $strict_type_code=TRUE, $sort_by=NULL, $access=NULL, $effective=TRUE, $min_height=NULL, $max_height=NULL, $ignore_bridge=FALSE, $link_value_wanted=NULL, $bind_var_prefix='gp_')
 
 getChildren ($assetid, $type_code='', $strict_type_code=TRUE, $dependant=NULL, $sort_by=NULL, $access=NULL, $effective=TRUE, $min_depth=NULL, $max_depth=NULL, $direct_shadows_only=TRUE, $link_value_wanted=NULL, Array $link_types_wanted=Array(), $expand_shadows=FALSE)
 
 getDependantChildren ($assetid, $type_code='', $strict_type_code=TRUE)
 
 getDependantParents ($assetid, $type_code='', $strict_type_code=TRUE, $include_all_dependants=TRUE)
 
 getAssetTree ($majorids, $levels=NULL, $exclude_list=Array(), $link_type=SQ_SC_LINK_FRONTEND_NAV, $include_type_list=Array(), $include_dependants=TRUE)
 
 _getAssetTree ($majorids, &$tree_data, $levels, $exclude_list, $link_type, $include_type_list, $include_dependants)
 
 getAssetTreeids ($assetid, $link_type=NULL)
 
 getLinkTreeid ($linkid)
 
 assetInTrash ($assetid, $exclusively=FALSE)
 
 countLinks ($assetid, $side_of_link='major', $link_types=0, $type_code='', $strict_type_code=TRUE, $ignore_linkid=0)
 
 createAssetLink (Asset $major, Asset $minor, $link_type, $value='', $sort_order=NULL, $dependant='0', $exclusive='0', $moving=FALSE, $locked='0')
 
 createShadowAssetLink (Asset $major, Asset $minor, $link_type, $value='')
 
 canCreateLink (Asset $major, Asset $minor, $link_type, $exclusive)
 
 canLinkToType (Asset $major, $type_code, $link_type, $ignore_linkid=0, $exclusive=0)
 
 moveLink ($linkid, $to_parentid, $link_type, $to_parent_pos, $link_value='')
 
 moveLinkPos ($linkid, $sort_order=-1)
 
 updateLink ($linkid, $link_type=NULL, $value=NULL, $sort_order=NULL, $locked=NULL)
 
 deleteAssetLink ($linkid, $check_locked=TRUE)
 
 deleteAssetLinkByLink (Array $link, $check_locked=TRUE, $aborting=FALSE)
 
 deleteShadowAssetLink ($linkid)
 
 couldTrashAsset ($assetid, $check_locked=TRUE)
 
 canSafeTrashAsset ($assetid, $ignore_linkid=0, $ignore_other_links=TRUE)
 
 trashAsset ($assetid, $force_trash=FALSE)
 
 getPermission ($assetid, $permission, $granted=NULL, $and_greater=TRUE, $expand_groups=FALSE, $all_info=FALSE, $collapse_roles=FALSE)
 
 getAssetPermissionByCascade ($assetid, $permission, $userid=NULL, $cascades=NULL)
 
 setPermission ($assetid, $userid, $permission, $granted, $cascades=TRUE, $force_set=FALSE)
 
 deletePermission ($assetid, $userid, $permission)
 
 getRole ($assetid=NULL, $roleid=NULL, $userid=NULL, $include_assetid=FALSE, $include_globals=FALSE, $expand_groups=FALSE, $inc_dependants=TRUE, $include_parents=FALSE, $type_codes=Array(), $strict_type_code=TRUE)
 
 setRole ($assetid, $roleid, $userid)
 
 deleteRole ($assetid, $roleid=NULL, $userid=NULL)
 
getAssetFromURL ($protocol=NULL, $url=NULL, $exact_match=TRUE, $mute_errors=FALSE)
 
 getRootURL ($url=NULL)
 
 getURLs ($assetid)
 
 getLineageFromURL ($protocol=NULL, $url=NULL, $mute_errors=FALSE)
 
 getUrlFromLineage ($lineage=Array(), $root_url=NULL, $protocol=NULL)
 
 getDesignFromURL ($url, $design_name='design::system::frontend')
 
 getInheritedDesignValueFromURL ($url, $design_name='design::system::frontend')
 
 getValueFromURL ($url, $value_name, $like_value=FALSE)
 
 getAssetidsByLookupValue ($lookup_name_exp, $lookup_value_exp, $include_treeids)
 
 getAssetURL ($assetids, $base_url=NULL, $ignore_rollback=FALSE, $base_contextid=NULL)
 
 getAssetHref ($assetids, $base_url=NULL, $ignore_rollback=FALSE)
 
 clearLookupsCache ($assetid)
 
 getAssetBackendHref ($asset_info, $backend_page=TRUE)
 
 getAssetIconURL ($asset_type)
 
 webPathsInUse (Asset $major, $paths, $ignore_assetid=0, $return_alternatives=FALSE)
 
 paintBackend (&$backend)
 
 generateGetLinksQuery ($assetid, $link_types, $type_code='', $strict_type_code=TRUE, $side_of_link='major', $value=NULL, $dependant=NULL, $exclusive=NULL, $sort_by=NULL, $access=NULL, $effective=TRUE, $bind_prefix='gl_')
 
 generateGetChildrenQuery (&$asset, $type_code='', $strict_type_code=TRUE, $dependant=NULL, $sort_by=NULL, $access=NULL, $effective=TRUE, $inc_type_code=TRUE, $min_depth=NULL, $max_depth=NULL, $direct_shadows_only=TRUE, $link_value_wanted=NULL, $bind_prefix='gc_', Array $link_types_wanted=Array())
 
 generateGetParentsQuery ($assetid, $type_code='', $strict_type_code=TRUE, $sort_by=NULL, $access=NULL, $effective=TRUE, $min_height=NULL, $max_height=NULL, $link_value_wanted=NULL, $bind_prefix='gp_')
 
 getForgottenItemsReport ()
 
 isDependant ($assetid)
 
 getSnippetKeywords ($more_info=FALSE)
 
 generateRawContent ($details)
 
 purgeAsset ($asset_id)
 
 getDesignHideFrameValues ($designid)
 
 isUnderRootNodes ($assetid, $root_nodes=Array(), $return_matched_nodes=FALSE)
 
- Public Member Functions inherited from MySource_Object
 MySource_Object ()
 
 __sleep ()
 
 __wakeup ()
 

Data Fields

 $_asset_types
 
 $_assets = Array()
 
 $_asset_cache
 
 $_system_assetids = Array()
 
 $_attributes = Array()
 
 $_get_asset_history = Array()
 
- Data Fields inherited from MySource_Object
 $_tmp
 

Detailed Description

Definition at line 31 of file asset_manager.inc.

Member Function Documentation

_cloneAsset ( $source,
$link,
$clone_map,
  $components,
  $cloning_dependent = FALSE 
)

Creates the shell of a clone without cloning any of the source's components

The only child assets that are cloned are the ones that are DEPENDENTLY linked to this asset. NO OTHER linked assets are cloned. It returns the reference to the new object or NULL if an error occured

Parameters
object&$sourcethe source asset that we are creating a clone of
array&$linkinformation used to create the initial link,
                                        Array (
                                        'asset'         => [ref major asset to create link under],
                                            'link_type'     => SQ_LINK_?,
                                        'value'         => [link value],
                                            'sort_order'    => [link sort order],
                                            'is_dependant'  => [0|1],
                                            'is_exclusive'  => [0|1]
                                        )
array&$clone_mapa map for that can be used for re-indexing data held in assets of the form Array([old asset id] => [new asset id])
array$componentsthe wanted components to clone,
                                        Array(
                                            'attributes',
                                            'metadata_schemas',
                                            'metadata',
                                            'workflow',
                                            'permissions',
                                            'data',
                                             'content_tags',
                                             'roles',
                                        );
                                        or alternately
                                    Array('all');
boolean$cloning_dependentby default FALSE, flipped to TRUE if the asset being cloned is another asset's dependent
Returns
mixed object|NULL private

Definition at line 2004 of file asset_manager.inc.

& _cloneLink ( $clone,
$link,
$lock,
$source 
)

Links a cloned asset the under its new parent

This function also handles [links] locking of the new parent to accommodate the new link.

Parameters
object&$clonethe new clone
string&$linkthe link object
array&$lockthe lock object
object&$sourcethe source object the clone is based off
Returns
mixed NULL|object public

Definition at line 2228 of file asset_manager.inc.

_getAssetTree (   $majorids,
$tree_data,
  $levels,
  $exclude_list,
  $link_type,
  $include_type_list,
  $include_dependants 
)

Does the work for getAssetTree

Parameters
int | array$majoridsthe majorids to traverse the tree from
array&$tree_datathe data that is created recursively
int$levelsthe number of levels to traverse (if NULL, traverse all levels)
array$exclude_listan array of assetid to exclude from the tree
int$link_typethe type of wanted links
array$include_type_listArray of asset types to include
                                    Array(
                                        'type_code' => Array(
                                                        0   => 'type_code1',
                                                        1   => 'type_code2'
                                                       ),
                                        'inherit'   => Array(
                                                        0   => TRUE,
                                                        1   => FALSE,
                                                       ),
                                    )
boolean$include_dependantsWhether to include dependants
Returns
boolean private

Definition at line 4396 of file asset_manager.inc.

_loadAssetTypes ( )

Loads all the assets types into the asset array

Returns
void private

Definition at line 105 of file asset_manager.inc.

_recurseGetAssetTypeHierarchy (   $offspring,
  $base_type_code 
)

Private function called by getAssetTypeHierarchy()

Parameters
array$offspringoffspring
string$base_type_codethe asset type's hierarchy to return
Returns
array private

Definition at line 491 of file asset_manager.inc.

_reloadSystemAssetList ( )

Refreshes the list of cached system assets

Returns
void private

Definition at line 1514 of file asset_manager.inc.

acquireLock (   $assetid,
  $lock_type,
  $source_assetid = 0,
  $force = FALSE,
  $expires = 0 
)

Acquires a lock on an asset

Note that this method operates on a single asset only. To get the locks on children too (as per backend behaviour), you need to use the acquire_locks HIPO job. It returns zero on failure, non-zero on success (1 on success if all lock types requested had to be acquired, 2 if any lock was updated [ie if at least one lock type was already held])

Parameters
int$assetidthe assetid of the asset that we want to lock
string$lock_typeany valid lock type for the passed asset's type, plus 'all' which will attempt to acquire all locks that this asset has
int$source_assetidthe id of the asset that started this locking process
boolean$forceattempt to forcibly acquire (if allowed)
int | NULL$expireswhen the lock expires (timestamp or NULL) If expires is null or zero, the lock will be acquired for the current time plus SQ_CONF_LOCK_LENGTH
Returns
int public

Definition at line 2444 of file asset_manager.inc.

arrayMerge (   $array1,
  $array2 
)

Get details of the link(s) between the two specified assets

It returns array of link info if only one link and force_array=FALSE, array of arrays of link info otherwise

Parameters
array$array1first array to merge
array$array2second array to merge
Returns
array public

Definition at line 3270 of file asset_manager.inc.

Constructor

Definition at line 84 of file asset_manager.inc.

assetExists (   $assetids)

Determine if the passed assetid or assetids refer(s) to a valid asset in the system

Note that this will always return FALSE if you pass it a shadow asset

Parameters
int | array$assetidsthe ID of the asset we are going to the check for existence or an array of assetids we want to check
Returns
mixed boolean|array public

Definition at line 1319 of file asset_manager.inc.

assetInTrash (   $assetid,
  $exclusively = FALSE 
)

Return TRUE if the passed assetid is in the trash, FALSE otherwise

Note that if the passed assetid is the id of the trash folder, FALSE will be returned NOTE: If $exclusively is TRUE, TRUE will be returned for assets that are not linked anywhere outside the trash including non existent assets

Parameters
int$assetidthe asset id to check the trash for
boolean$exclusivelyis the asset ONLY in the trash (ie. does it have no other significant links outside the trash?)
Returns
boolean public

Definition at line 4667 of file asset_manager.inc.

canCreateLink ( Asset  $major,
Asset  $minor,
  $link_type,
  $exclusive 
)

Returns TRUE if the supplied assets can be linked in the specified way

Parameters
Asset$majorthe major asset in the proposed link
Asset$minorthe minor asset in the proposed link
string$link_typethe type of link that is proposed
int$exclusive(0|1) whether this will be the only significant link with $minor as the minor asset
Returns
mixed boolean|string public

Definition at line 5749 of file asset_manager.inc.

canLinkToType ( Asset  $major,
  $type_code,
  $link_type,
  $ignore_linkid = 0,
  $exclusive = 0 
)

Returns TRUE if the supplied asset can have assets of the specified type linked under it

Parameters
Asset$majorthe major asset that we are linking to
string$type_codethe type code of the proposed link
string$link_typethe type of the proposed link
int$ignore_linkidif it gets down to the checking of the cardinality, ignore the link represented by this link id
int$exclusive(0|1) whether this will be the only significant link with $minor as the minor asset
Returns
mixed boolean|string public

Definition at line 5852 of file asset_manager.inc.

canPurgeAsset ( $asset)

Determine if this asset can be purged from the trash

The function stops system assets and their dependent children from being purged.

Parameters
object&$assetthe asset to purge
Returns
boolean public

Definition at line 1622 of file asset_manager.inc.

canSafeTrashAsset (   $assetid,
  $ignore_linkid = 0,
  $ignore_other_links = TRUE 
)

Return list of errors if the asset would be blocked from being trashed if Safe Trash feature is on, empty array otherwise

Parameters
int$assetidThe asset we want to trash
int$ignore_linkidLink ID to ignore when calculating the number of type 1/2 links remaining (typically the link we are moving)
boolean$ignore_other_linksWhether to check whether there are any remaining type 1/2 links before providing link errors (default = TRUE, as most use of this is for status of safe trash cron job)
Returns
array public

Definition at line 6833 of file asset_manager.inc.

clearLookupsCache (   $assetid)

Clear the asset manager's internal cache of URLs and HREFs for the specified asset

Parameters
int$assetidThe assetid whose cached lookup values we want cleared
Returns
void public

Definition at line 8731 of file asset_manager.inc.

& cloneAsset ( $source,
$link,
$clone_map,
  $components,
  $clone_dependents = TRUE,
  $cloning_dependent = FALSE 
)

Creates a clone of an asset and clones the required components of the source asset

if $clone_dependents is set the TRUE, the dependents of the source asset will be cloned, and the specified components will be cloned to them as well. It returns the clone of the source, NULL on error

Parameters
object&$sourcethe source asset that we are creating a clone of
array&$linkinformation used to create the initial link,
Array (
  'asset'         => [ref major asset to create link under],
  'link_type'     => SQ_LINK_?,
  'value'         => [link value],
  'sort_order'    => [link sort order],
  'is_dependant'  => [0|1],
  'is_exclusive'  => [0|1]
);
array&$clone_mapa map for that can be used for re-indexing data held in assets of the form Array([old asset id] => [new asset id])
array$componentsthe wanted components to clone,
Array(
  'attributes',
  'metadata_schemas',
  'metadata',
  'workflow',
  'permissions',
  'data'// data directory
);
or alternately
Array('all');
boolean$clone_dependentsif TRUE the dependents of the source asset will be cloned and will have their sources components cloned
boolean$cloning_dependentTRUE mean this call is a recursive call from itself, and it is cloning the dependent of an asset (in a recursive manner)
Returns
object public

Definition at line 2297 of file asset_manager.inc.

couldTrashAsset (   $assetid,
  $check_locked = TRUE 
)

See whether we COULD send the specified asset to the trash IF we got the locks on its parents

It reutns TRUE if we can trash, FALSE if assetid=0, Array(linkid=>problem) otherwise

Parameters
int$assetidThe asset we want to trash
Returns
mixed boolean|array public

Definition at line 6799 of file asset_manager.inc.

countLinks (   $assetid,
  $side_of_link = 'major',
  $link_types = 0,
  $type_code = '',
  $strict_type_code = TRUE,
  $ignore_linkid = 0 
)

Return the number of links in the system that involve the specified asset

Can be restricted by either link type afnd/or asset type code

Parameters
int$assetidid of the the $side_of_link asset
string$side_of_linkWhich side of the link this (the current) asset is on ('major' or 'minor')
int$link_typesinteger that can be the product of bitwise operations on the SQ_LINK_* constants
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
int$ignore_linkidignore the link represented by this link id when returning the count
Returns
int public

Definition at line 4731 of file asset_manager.inc.

createAssetLink ( Asset  $major,
Asset  $minor,
  $link_type,
  $value = '',
  $sort_order = NULL,
  $dependant = '0',
  $exclusive = '0',
  $moving = FALSE,
  $locked = '0' 
)

Create a link between the two supplied assets

It returns the linkid of the created link

Parameters
Asset$majorthe major asset that we are linking from
Asset$minorthe minor asset that we are linking to
string$link_typethe type of link this is
string$valuethe value that is to be associated with this link
string$sort_orderthe position in the links list that this link should take, if null or less than zero places at end of list
string$dependant'0' / '1' - whether the minor asset is dependant on the major
string$exclusive'0' / '1' - whether the major asset is to be the minor's only parent
boolean$movingwhether or not this asset is being moved
string$lockedwhether or not this asset's link is locked
Returns
int public

Definition at line 4828 of file asset_manager.inc.

createShadowAssetLink ( Asset  $major,
Asset  $minor,
  $link_type,
  $value = '' 
)

Create a "shadow" asset link between the two supplied assets

It returns the linkid of the created link

Parameters
Asset$majorthe major asset that we are linking from
Asset$minorthe minor asset that we are linking to
string$link_typethe type of link this is
string$valuethe value that is to be associated with this link
Returns
int public

Definition at line 5677 of file asset_manager.inc.

deleteAssetLink (   $linkid,
  $check_locked = TRUE 
)

Remove a link by id

Parameters
int$linkidthe link id of the link to remove
boolean$check_lockedCheck if the link is locked or not
Returns
boolean public

Definition at line 6421 of file asset_manager.inc.

deleteAssetLinkByLink ( Array  $link,
  $check_locked = TRUE,
  $aborting = FALSE 
)

Remove a link by the link that is passed This function the initial checking that is done by deleteAssetLink() Fix to #3877 Matrix will create and retain links in DB if asset fails to get created a new function call made to deleteAssetLinkByLink() from _abortCreate() from asset.inc

Parameters
Array$linkthe link we are supposed to delete
boolean$check_lockedCheck if the link is locked or not
boolean$abortingset to TRUE when link to be deleted belongs an asset that was just aborted (TRUE when called by Asset->_abortCreate())
Returns
boolean public

Definition at line 6462 of file asset_manager.inc.

deletePermission (   $assetid,
  $userid,
  $permission 
)

Deletes a permission with the passed user or user_group

Parameters
int$assetidthe assetid for asset whose permissions to delete
int$useridthe id of the user or user_group to remove the permission from
string$permissionthe permission code you are deleting
Returns
boolean public

Definition at line 7382 of file asset_manager.inc.

deleteRole (   $assetid,
  $roleid = NULL,
  $userid = NULL 
)

Remove a role from an asset

Parameters
int$assetidthe assetid of the asset
int$roleidthe assetid the role
int$useridthe assetid of the user performing the role
Returns
boolean public

Definition at line 7757 of file asset_manager.inc.

deleteShadowAssetLink (   $linkid)

Remove a SHADOW asset link by id

Parameters
int$linkidthe link id of the link to remove
Returns
boolean public

Definition at line 6768 of file asset_manager.inc.

forgetAsset ( $obj,
  $force_clean = FALSE 
)

Tell the asset manager that you have finished with the asset, when everyone has finished with the asset is is removed from the asset store

Parameters
object&$objthe asset to be unregistered
boolean$force_cleanforce the asset manager to forget this asset rather than just reducing its entires (only used by the asset itself during a purge)
Returns
void public
See Also
rememberAsset()

Definition at line 1458 of file asset_manager.inc.

generateGetChildrenQuery ( $asset,
  $type_code = '',
  $strict_type_code = TRUE,
  $dependant = NULL,
  $sort_by = NULL,
  $access = NULL,
  $effective = TRUE,
  $inc_type_code = TRUE,
  $min_depth = NULL,
  $max_depth = NULL,
  $direct_shadows_only = TRUE,
  $link_value_wanted = NULL,
  $bind_prefix = 'gc_',
Array  $link_types_wanted = Array() 
)

Generate the parts of the query needed to get children of the passed asset

The return value is array consisting of a select statement, a from statement, a where clause (which may be blank is we are getting children of the root node) and an order by clause (which may be blank if we are not sorting). The return array is structed so you can implode it using ' ' as glue to form the full query.

Parameters
object&$assetthe asset to get its children for
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
boolean$dependantif TRUE, results will be filtered to assets that are dependants. If FALSE, results will all not be dependants. If NULL, results will not be filtered
string$sort_bya field in the asset table you would like the results sorted by (eg. name, short_name etc)
int$accessSQ_PERMISSION_READ|SQ_PERMISSION_WRITE|SQ_PERMISSION_ADMIN Specify that links should be returned for assets the user has read, write, or admin access for. Leave NULL to ignore permissions.
boolean$effectiveIf effective permissions should be considered or not.
boolean$inc_type_codewhether to include the type code in the SELECT or not
int$min_depthOptional parameter that specifies minimum number of levels below the specified asset for a child to qualify (immediate child is 1)
int$max_depthOptional parameter that specifies maximum number of levels below the specified asset for a child to qualify to be returned
boolean$direct_shadows_onlyIf TRUE, ONLY direct shadow asset children will be returned If FALSE, ALL the shadow asset children will be returned
string$link_value_wantedLink Value Wanted
string$bind_prefixThe prefix for bind variables generated by this function (default: 'gc_'). Set this parameter if you are planning to use more than one call to this function in a query (through a UNION, say).
array$link_types_wantedlink_type we want our results to be filtered by. By default it uses empty array which mean it will return all the link_types Other values that can be used in the array : SQ_LINK_TYPE_1, SQ_LINK_TYPE_2, SQ_LINK_TYPE_3, SQ_LINK_NOTICE, SQ_SC_LINK_FRONTEND_NAV, SQ_SC_LINK_BACKEND_NAV, SQ_SC_LINK_SIGNIFICANT, SQ_SC_LINK_WEB_PATHS
Returns
array public
See Also
getChildren()

We do need the ast table if we're in rollback mode though so shadow assets can check dates/times

Definition at line 9308 of file asset_manager.inc.

generateGetLinksQuery (   $assetid,
  $link_types,
  $type_code = '',
  $strict_type_code = TRUE,
  $side_of_link = 'major',
  $value = NULL,
  $dependant = NULL,
  $exclusive = NULL,
  $sort_by = NULL,
  $access = NULL,
  $effective = TRUE,
  $bind_prefix = 'gl_' 
)

Return all links between the specified asset and other assets

The return value is array consisting of a select statement, a from statement, a where clause (which may be blank is we are getting children of the root node) and an order by clause (which may be blank if we are not sorting). The return array is structed so you can implode it using ' ' as glue to form the full query.

Parameters
int$assetidid of the the $side_of_link asset
int$link_typesinteger that can be the product of bitwise operations on the SQ_LINK_* constants
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
string$side_of_linkWhich side of the link the specified asset is on ('major' or 'minor')
array$valueThe value for all the links must equal this (if not null)
boolean$dependantThe dependant status for all the links must be this (if not null)
boolean$exclusiveThe exclusive status for all the links must be this (if not null)
string$sort_bya field in the asset table you would like the results sorted by (eg. name, short_name etc)
int$accessSQ_PERMISSION_READ|SQ_PERMISSION_WRITE|SQ_PERMISSION_ADMIN Specify that links should be returned for assets the user has read, write, or admin access for. Leave NULL to ignore permissions.
boolean$effectiveIf effective permissions should be considered or not.
string$bind_prefixThe prefix for bind variables generated by this function (default: 'gc_'). Set this parameter if you are planning to use more than one call to this function in a query (through a UNION, say).
Returns
array public

Definition at line 9057 of file asset_manager.inc.

generateGetParentsQuery (   $assetid,
  $type_code = '',
  $strict_type_code = TRUE,
  $sort_by = NULL,
  $access = NULL,
  $effective = TRUE,
  $min_height = NULL,
  $max_height = NULL,
  $link_value_wanted = NULL,
  $bind_prefix = 'gp_' 
)

Get all asset ids that are above the passed assetid in the various trees in which it exists

Parameters
int$assetidthe id of the asset to get its parents for
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
string$sort_bya field in the asset table you would like the results sorted by (eg. name, short_name etc)
int$accessSQ_PERMISSION_READ|SQ_PERMISSION_WRITE|SQ_PERMISSION_ADMIN Specify that links should be returned for assets the user has read, write, or admin access for. Leave NULL to ignore permissions.
boolean$effectiveIf effective permissions should be considered or not.
int$min_heightOptional parameter that specifies minimum number of levels above the specified asset for a parent to qualify (immediate parent is 1)
int$max_heightOptional parameter that specifies maximum number of levels above the specified asset for a parent to qualify to be returned
array$link_value_wantedthe link value wanted
string$bind_prefixThe prefix for bind variables generated by this function (default: 'gp_'). Set this parameter if you are planning to use more than one call to this function in a query (through a UNION, say).
Returns
array public
See Also
getParents()

keep an array of id's we've already added to where clauses. this is used so we don't duplicate looking for the same treeid's in the query (though the db should be smart enough to do that itself)

if max_height is null, that means we specified a min_height

this means we can look for specific treeid's rather than doing a like search, and get rid of the length(treeid) check.

($treeid = t.treeid or $treeid2 = t.treeid or $treeid3 = t.treeid)

it loops over the treeid and takes SQ_CONF_ASSET_TREE_SIZE chars off the end until it ends up with the root tree node.

in the get children query function this section gets minor links, but we want the major links in this case, so we have to go one further link down - hence the '-1' in these queries

we've got this far - so we've specified a min & max heights. if they are the same, we can look for specific treeid's. we need to take off one SQ_CONF_ASSET_TREE_SIZE section to get the right id to search for

also only add the treeid if we haven't done it already to save duplicate id's being passed in.

so we end up with this (which works much better performance wise): $treeid = t.treeid

if we've already processed this treeid, continue no need to put it in the query multiple times.

Here we have both min_height & max_height and they are also different values

If min_height > max_height, just switch them We would end up with the same queries anyway.

Set some temporary variables in case the originals are used elsewhere.

Get exact treeid's by taking off SQ_CONF_ASSET_TREE_SIZE chunks from the end until we end up with the length we're looking for (i.e. between temp_min_height and temp_max_height)

If there are no conditions, then work out which treeid's to look at.

This is a separate query for performance reasons. Previously it was an 'IN' clause in the main query, but because it runs through a function the query optimizers can't cope with it efficiently. (this affects both oracle and postgres)

So we do a query here to get the treeid's which are then put into the main query.

and since we're now looking at static id's basically, the optimizers are a lot happier

This is also done with the assumption that you'll never have a lot of parents as oracle has a limit on the number of id's you can use in an in clause (999).

Instead of calling the sq_get_parent_treeids database function/stored procedure, take the query directly and run it here. Then we need to chop the treeid's returned from that into SQ_CONF_ASSET_TREE_SIZE chunks and use those in the where clause.

If we didn't find any tree id's, make a where clause that will return nothing which then causes the parent query to return an empty result set. If we leave the where clause blank, we actually return every treeid which is not what we want.

See if we've dealt with this id before. It's not necessarily all the results from $tree_result we need to worry about Rather the shared 'parent' tree id's. eg they all have base tree id 0000, we only need to include that once.

Definition at line 9634 of file asset_manager.inc.

generateRawContent (   $details)

Generate the raw content to be sent, ignoring user switching and recpient keyword replacement

Parameters
array$detailsThe details of the job
Returns
string public

Definition at line 10268 of file asset_manager.inc.

getAllAttributeValues (   $assetid = '',
  $type_code,
  $contextid = NULL 
)

Get all the attribute values of the given assetid and type code. This method is similar to asset:_loadVars() except it does not unserialize any attributes. Return array of name => array (attrid, type, value, is_contextable, use_default)

If there are no custom value for an attribute, its default value will be loaded. If no asset ID is provided, this function just loads the default values for the asset type. This method will also allow you to get attribute values for a different context.

Parameters
mixed$assetid(int | string) the asset id to be loaded
string$type_codethe type of $assetid
int$contextidThe ID of the context we wish to get the value of the attr for. (If omitted, use the currently active context.)
Returns
array public

Definition at line 1119 of file asset_manager.inc.

getAllChildLinks (   $assetid,
  $link_type = 0,
  $access = NULL,
  $effective = TRUE,
  $bind_prefix = 'gc_',
  $depth = 0 
)

Get details of the links from the specified asset to all its children

Parameters
string$assetidthe assetid of the asset to find the child links for
int$link_typethe type of links to get
int$accessSQ_PERMISSION_READ|SQ_PERMISSION_WRITE|SQ_PERMISSION_ADMIN Specify that links should be returned for assets the user has read, write, or admin access for. Leave NULL to ignore permissions.
boolean$effectiveIf effective permissions should be considered or not.
string$bind_prefixThe prefix for bind variables generated by this function (default: 'gc_')
int$depthThe maximum depth we need to get links until
Returns
array public

Definition at line 3514 of file asset_manager.inc.

getAsset (   $assetid,
  $type_code = '',
  $mute_errors = FALSE 
)

Returns a reference to the asset represented by the passed assetid

Parameters
mixed$assetid(int | string) the asset id to be loaded
string$type_codeif this exists then this object is used to load the asset, if not then the DB is queried to find out the asset type
boolean$mute_errorsstops the outputting of errors in this fn, needed because you can't use the '@' operator when returning by reference
Returns
mixed object|NULL public

We got the asset from the cache

If we also have a type_code to check, make sure it matches the one we're loading from cache.

Definition at line 1192 of file asset_manager.inc.

getAssetBackendHref (   $asset_info,
  $backend_page = TRUE 
)

Returns the href(s) of an asset based on its assetid and the wanted screen

It reutrns an array of assetid and hrefs to the wanted screen

Parameters
array$asset_infoan array of asset info in the form assetid => screen code name
boolean$backend_pagewhether to include the 'SQ_BACKEND_PAGE=main' query string include this bit when we are switching screens in the backend do not include when generating URL (e.g. for workflow emails)
Returns
array public

Definition at line 8756 of file asset_manager.inc.

& getAssetFromURL (   $protocol = NULL,
  $url = NULL,
  $exact_match = TRUE,
  $mute_errors = FALSE 
)

Returns a reference to the asset that has the passed url If no url is passed the current (aka PHP_SELF) one is used

Parameters
string$protocolthe protocol to match -> null means it is ignored
string$urlthe urls to check for -> null defaults it to current url
boolean$exact_matchwhen TRUE only returns an asset if there is an exact match on the url, if FALSE searches back along the URL path for the asset that matches
boolean$mute_errorsstops the outputting of errors in this fn, needed because you can't use the '@' operator when returning by reference
Returns
mixed object|NULL public

Definition at line 7821 of file asset_manager.inc.

getAssetHref (   $assetids,
  $base_url = NULL,
  $ignore_rollback = FALSE 
)

Returns the href for an asset closest to the $base_url, but relative to the current url

It returns string if $assetids is an in and an array(int => string) if $assetids is an array

Parameters
int | array$assetidsthe id of the asset you want the href for or an array for a whole bunch of them
string$base_urlthe url that we are want to match closest to
boolean$ignore_rollbackignore rollback checks
Returns
mixed int|array public

Definition at line 8654 of file asset_manager.inc.

getAssetIconURL (   $asset_type)

Get a URL to access the icon for a type of asset

Parameters
string$asset_typethe type code to get the icon for
Returns
string public

Definition at line 8790 of file asset_manager.inc.

getAssetidsByLookupValue (   $lookup_name_exp,
  $lookup_value_exp,
  $include_treeids 
)

Get assetids that match the given lookup name and value

Parameters
string$lookup_name_expThe name of the lookup value, or a SQL expression to match it
string$lookup_value_expThe value of the lookup value, or a SQL expression to match it
boolean$include_treeidsIf true, the result will be an array indexed by assetid where the values are arrays of treeids for that assetid. Otherwise it will be a simple array of treeids.
Returns
array public

Query 1 gets all the override values. Query 2 gets all the inherited values.

These are both DISTINCT's because we're potentially joining to the ast_lnk table which can have different link values for the same assetid.

The joins are a little different. override values are based on (almost) matching urls.

inherited values are based on like urls (basically, they start the same).

If we're including tree id's, we need to join to the lnk table, which has the matching of lookup.assetid = lnk.minorid so then we can get to the treeid.

Both queries need to restrict based on the lookup name and the value.

Definition at line 8410 of file asset_manager.inc.

getAssetInfo (   $assetids,
  $type_code = Array(),
  $strict_type_code = TRUE,
  $field = '' 
)

Returns an array of information about assets of the passed codes

If one value in $field then the return value is Array(assetid => '[field]'), otherwise Array(assetid => Array())

Parameters
array$assetidsan array of assets to limit
string | array$type_codean asset type code, or array of typecodes, to limit results to
boolean$strict_type_codeensure returned assets are of the passed type codes
string$fieldsingle field from the asset table to return (along with the assetid) Default is all fields
Returns
array public

Definition at line 1660 of file asset_manager.inc.

getAssetInfoFields ( )

Get the list of fields that getAssetInfo can return for an asset

Returns
array public

Definition at line 1821 of file asset_manager.inc.

getAssetPermissionByCascade (   $assetid,
  $permission,
  $userid = NULL,
  $cascades = NULL 
)

Get list of permissions for a certain asset, filtered by cascading setting

This is primarily used for showing settings on the Permissions screen. Therefore, roles will NOT be collapsed.

Definition at line 7157 of file asset_manager.inc.

getAssetTree (   $majorids,
  $levels = NULL,
  $exclude_list = Array(),
  $link_type = SQ_SC_LINK_FRONTEND_NAV,
  $include_type_list = Array(),
  $include_dependants = TRUE 
)

Return an array of asset ids in the order that they propogate out from the passed in assetIDs

The array returned for each asset is in the following format:

Array(
  'assetid'    => '155',
  'majorid'    => '151',
  'type_code'  => 'page_standard',
  'status'     => '2',
  'name'       => '(( page2 ))',
  'short_name' => '(( page2 ))',
  'path'       => 'page2',
  'sort_order' => '0',
)
Parameters
int | array$majoridsthe majorids to traverse the tree from
int$levelsthe number of levels to traverse (if null, traverse all levels)
array$exclude_listan array of assetid to exclude from the tree
int$link_typethe type of wanted links
array$include_type_listArray of asset types to include
                                    Array(
                                        'type_code' => Array(
                                                        0   => 'type_code1',
                                                        1   => 'type_code2'
                                                       ),
                                        'inherit'   => Array(
                                                        0   => TRUE,
                                                        1   => FALSE,
                                                       ),
                                    )
boolean$include_dependantsa boolean
Returns
array public

Definition at line 4360 of file asset_manager.inc.

getAssetTreeids (   $assetid,
  $link_type = NULL 
)

Returns the treeids of any links between the passed assetid(s) and any parents

If a single assetid is supplied, a simple array of treeids is returned. If an array of assetids is supplied then the result is indexed by assetid and each element is an array of treeids for that assetid.

Parameters
int | array$assetidthe id of the asset passed, or array of assetids
int$link_typethe type of wanted links
Returns
array public

Definition at line 4573 of file asset_manager.inc.

getAssetTypeAttributes (   $type_code,
  $details = Array('name', 'type') 
)

Retrieves the attributes (with null values) for the asset type

Parameters
string$type_codethe type of asset
array$detailsan array of columns from the DB table you want returned
Returns
array public

Definition at line 878 of file asset_manager.inc.

getAssetTypeHierarchy (   $base_type_code = '',
  $allowed_access = '' 
)

Returns an array representing the class hierarchy for the asset types, either for whole system or for under the the passed asset type

Parameters
string$base_type_codethe asset type's hierarchy to return
string$allowed_accessthe access type to return
Returns
array public

Definition at line 443 of file asset_manager.inc.

getAssetTypeInfo (   $assetids,
  $type_code = Array(),
  $strict_type_code = TRUE 
)

Returns an array of assetid => inherited_types for assets of the passed codes

Parameters
array$assetidsan array of assets to limit
array$type_codean array of types codes to limit the results to
boolean$strict_type_codeensure returned assets are of the passed type codes
Returns
array public

Definition at line 517 of file asset_manager.inc.

getAssetTypes (   $instantiable = NULL,
  $non_system_access = FALSE 
)

Returns the asset types and their information.

Parameters
boolean$instantiabledoes the asset type need to instanstiable or not ? NULL = don't care
boolean$non_system_accesswe don't want assets that only have system access
Returns
array public

Definition at line 136 of file asset_manager.inc.

getAssetURL (   $assetids,
  $base_url = NULL,
  $ignore_rollback = FALSE,
  $base_contextid = NULL 
)

Returns the URL for an asset, closest to the $base_url

It returns string if $assetids is an int and an array(int => string) if $assetids is an array

Parameters
int | array$assetidsthe id of the asset you want the url for or an array for a whole bunch of them
string$base_urlthe url that we are want to match closest to
boolean$ignore_rollbackignore rollback checks
int$base_contextidthe id of the context that you want the url from
Returns
mixed int|array public

Definition at line 8494 of file asset_manager.inc.

getAttribute (   $attrid,
  $value = NULL,
  $mute_errors = FALSE 
)

Returns a reference to an attribute object

Parameters
string$attridthe id of the attribute
string$valuethe value of the attribute
boolean$mute_errorsstops the outputting of errors in this fn, needed because you can't use the '@' operator when returning by reference
Returns
mixed object|NULL public

Definition at line 845 of file asset_manager.inc.

getAttributeInfo (   $attrids)

Returns an array of information about attributes

Parameters
array$attridsan array of assets to limit
Returns
array public

Definition at line 799 of file asset_manager.inc.

getAttributeValuesByName (   $attr_name,
  $asset_type,
  $assetids,
  $contextid = NULL 
)

Get the values of the attribute with the given name for the given assetids

The assetids supplied must be assets of the specified type, or assets which inherit the specified attribute from the specified asset type. You may use 'asset' for the $asset_type to skip asset type checking (recommended that this only be used for common attributes like name). It returns the array of (string => mixed) representing assetid => attribute value

This method will also allow you to get attribute values for a different context. (The methods in Asset class, like attr(), will only return information for the currently active context, for simplicity in handling.)

Parameters
string$attr_nameThe name of the attribute to get the values of
string$asset_typeThe type code of the asset type that defines the attribute
array$assetidsIDs of the assets whose values we want
int$contextidThe ID of the context we wish to get the value of the attr for. (If omitted, use the currently active context.)
Returns
array public

For small number of assetids, we can safely nest them in where clause.

We make two parts of a query here This is for performance reasons If we get lots of asset id's in the where clause, performance isn't great so use an intersect query to break it down (this lets the db use different indexes)

The first part of the query gets the asset id's with the right attribute id's the second part gets the right asset id's then intersect

If it's an oracle db we're talking to, we can't do an intersect query as above because oracle won't let you use intersect queries where a nvarchar field is included in the query (custom_val)

so we're going to have to take the performance hit if there are lots of asset id's to filter through.

Definition at line 932 of file asset_manager.inc.

getChildren (   $assetid,
  $type_code = '',
  $strict_type_code = TRUE,
  $dependant = NULL,
  $sort_by = NULL,
  $access = NULL,
  $effective = TRUE,
  $min_depth = NULL,
  $max_depth = NULL,
  $direct_shadows_only = TRUE,
  $link_value_wanted = NULL,
Array  $link_types_wanted = Array(),
  $expand_shadows = FALSE 
)

Get all asset ids that are below the passed assetid in the various trees in which it exists

The query generated to get the children is actually constructed in the Asset Manager's generateGetChildrenQuery function. It returns Array(int => string) returns an array of assetids and their type code The function might return a list of users without their type code (i.e.: when shadow assets are returned)

Parameters
int | string$assetidthe id of the asset to get its children for
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
boolean$dependantif TRUE, results will be filtered to assets that are dependants. If FALSE, results will all not be dependants. If NULL, results will not be filtered
string$sort_bya field in the asset table you would like the results sorted by (eg. name, short_name etc)
int$accessSQ_PERMISSION_READ|SQ_PERMISSION_WRITE|SQ_PERMISSION_ADMIN Specify that links should be returned for assets the user has read, write, or admin access for. Leave NULL to ignore permissions.
boolean$effectiveIf effective permissions should be considered or not.
int$min_depthOptional parameter that specifies minimum number of levels below the specified asset for a child to qualify (immediate child is 1)
int$max_depthOptional parameter that specifies maximum number of levels below the specified asset for a child to qualify to be returned
boolean$direct_shadows_onlyIf TRUE, ONLY direct shadow asset children will be returned If FALSE, ALL the shadow asset children will be returned
string | array$link_value_wantedLink value wanted
array$link_types_wantedlink_type we want our results to be filtered by. By default it uses empty array which mean it will return all the link_types Other values that can be used in the array : SQ_LINK_TYPE_1, SQ_LINK_TYPE_2, SQ_LINK_TYPE_3, SQ_LINK_NOTICE, SQ_SC_LINK_FRONTEND_NAV, SQ_SC_LINK_BACKEND_NAV, SQ_SC_LINK_SIGNIFICANT, SQ_SC_LINK_WEB_PATHS
boolean$expand_shadowsGet shadow children of shadow asset links. Enable this where necessary but keep performance in mind.
Returns
array public
See Also
generateGetChildrenQuery()

Definition at line 4146 of file asset_manager.inc.

getDependantChildren (   $assetid,
  $type_code = '',
  $strict_type_code = TRUE 
)

Get all dependent children of an asset in the various tress in which it exists

It returns an array of the form Array([assetid] => [type_code])

Parameters
int$assetidthe id of the asset to get its children for
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
Returns
array public

Definition at line 4243 of file asset_manager.inc.

getDependantParents (   $assetid,
  $type_code = '',
  $strict_type_code = TRUE,
  $include_all_dependants = TRUE 
)

Get all dependent parents of an asset in the various trees in which it exists

It returns an array of assetids

Parameters
int$assetidthe id of the asset to get its children for
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
boolean$include_all_dependantsWhen FALSE, only show the top level of dependant parents
Returns
array public

Definition at line 4295 of file asset_manager.inc.

getDesignFromURL (   $url,
  $design_name = 'design::system::frontend' 
)

Return the design for the passed URL

Parameters
string$urlthe url to get the design for
string$design_namethe code for the design (eg. design::system::frontend)
Returns
array public

Since we have the url, we don't need to include the ast_lookup table in the query. we can just join the ast_lookup_value table to ast directly.

Definition at line 8275 of file asset_manager.inc.

getDesignHideFrameValues (   $designid)

This function returns the hide frame value for a design.

Parameters
int$asset_idthe asset ID of the asset to delete
Returns
void public

Definition at line 10413 of file asset_manager.inc.

getEditableContents (   $assetid)

Get the editable content of any asset below the passed assetid It returns FALSE if assetid is invalid, Array(assetid=>content) otherwise

Parameters
int$assetidThe asset we want to get the contents of
Returns
mixed boolean|array public

Definition at line 1901 of file asset_manager.inc.

getForgottenItemsReport ( )

Returns a information string about all the assets in the cache which Ref Count > 0

Returns
string public

Definition at line 10084 of file asset_manager.inc.

getInheritedDesignValueFromURL (   $url,
  $design_name = 'design::system::frontend' 
)

Return an inheritable design value, given a URL

Currently called by Asset::updateLookups() when a design or paint layout is being handled and the asset's gone to its parents for an inherited value. In the case of designs we need to now go directly to links, because we can't use the lookup table values by itself anymore - we might end up inheriting an override instead

Parameters
string$urlthe url to get the design for
string$design_namethe code for the design (eg. design::system::frontend)
Returns
mixed array|NULL public
See Also
Asset::updateLookups()

Definition at line 8327 of file asset_manager.inc.

getLineageFromURL (   $protocol = NULL,
  $url = NULL,
  $mute_errors = FALSE 
)

Returns an array of assetid's + info in the order that they propogate out from the site url

If no url is passed the current (aka PHP_SELF) one is used

Parameters
string$protocolthe protocol to match -> null means it is ignored
string$urlthe urls to check for -> null defaults it to current url
boolean$mute_errorsMute errors - to stop errors appearing on a clean system
Returns
array public

Definition at line 7974 of file asset_manager.inc.

getLink (   $assetid,
  $link_type = NULL,
  $type_code = '',
  $strict_type_code = TRUE,
  $value = NULL,
  $side_of_link = 'major',
  $exclusive = NULL 
)

Get details of a link with the specified characteristics

Parameters
int$assetidid of the the $side_of_link asset
int$link_typeinteger that should be a single integer of the SQ_LINK_* constants
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding an asset that is just a $type_code or potentially an inherited type or $type_code and any of it's sub-classes
string$valuethe value that is associated with this link
string$side_of_linkWhich side of the link this (the current) asset is on ('major' or 'minor')
boolean$exclusiveThe exclusive status for the link must be this (if not null)
Returns
array public

Definition at line 2825 of file asset_manager.inc.

getLinkByAsset (   $assetid,
  $other_assetid,
  $link_types = NULL,
  $value = NULL,
  $side_of_link = 'major',
  $force_array = FALSE,
  $dependant = NULL,
  $exclusive = NULL 
)

Get details of the link(s) between the two specified assets

It returns array of link info if only one link and force_array=FALSE, array of arrays of link info otherwise

Parameters
int$assetidid of the the $side_of_link asset
mixed$other_assetidthe asset(s) on the other side of the link - can be an array of assets
int$link_typesinteger that can be the product of bitwise operations on the SQ_LINK_* constants
string$valuethe value that is associated with this link
string$side_of_linkWhich side of the link the first assetid is on ('major' or 'minor')
boolean$force_arrayforce the results to return an array of links even if there is only one link
boolean$dependantThe dependant status for all the links must be this (if not null)
boolean$exclusiveThe exclusive status for all the links must be this (if not null)
Returns
array public

Definition at line 3077 of file asset_manager.inc.

getLinkById (   $linkid,
  $assetid = 0,
  $side_of_link = 'major' 
)

Get details of the link with specified linkid

Parameters
int$linkidid of the link
string$assetidid of the the $side_of_link asset if zero no check is made and both major and minor information is returned
string$side_of_linkWhich side of the link the asset represented by $assetid is on ('major' or 'minor')
Returns
array public

Definition at line 2997 of file asset_manager.inc.

getLinkLineages (   $assetid,
  $result_limit = 0,
  $from_treeid = NULL,
  $fields = 'name',
  $only_significant = FALSE 
)

For a given asset, get the lineages from the Root folder down to it

Also returns basic information about the last link (linkid and link type) linkid => Array ('linkid' => linkid, 'link_type' => link_type, 'lineage' => Array(...))

Parameters
string$assetidID of the asset whose linages we want
int$result_limitlimits the number of results returned
string | array$from_treeidUses this/these treeid(s) as the root node
string | array$fieldsReturns these asset field(s) in lineage details (e.g name, type_code)
boolean$only_significantOnly return the significant links, and ignore notice links
Returns
array public

get the parent treeid's for this asset.

This is done as a separate db call for performance reasons if it's done as a subquery, then there are multiple seq-scans of the lnk & lnk_tree tables (which can be quite large) separating the two calls means the second call looks at hardcoded id's - which can then be looked up in the index which is a nice win.

we found some tree id's - quote them and plug them back in to the main query directly.

check if we've seen this tree id before if we have, skip it. if we haven't, add it to the list this check can provide an improvement if an asset is linked in lots of places all over the system

no parent tree ids? then we don't have any lineages we are on the top level.

Definition at line 3698 of file asset_manager.inc.

getLinks (   $assetid,
  $link_types,
  $type_code = '',
  $strict_type_code = TRUE,
  $side_of_link = 'major',
  $value = NULL,
  $dependant = NULL,
  $exclusive = NULL,
  $sort_by = NULL,
  $access = NULL,
  $effective = TRUE 
)

Get all links matching the specified characteristics

The query generated to get the links is actually contructed in the Asset Manager's generateGetLinksQuery function.

Parameters
int$assetidid of the the $side_of_link asset
int$link_typesinteger that can be the product of bitwise operations on the SQ_LINK_* constants
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
string$side_of_linkWhich side of the link this (the current) asset is on ('major' or 'minor')
string | array$valueThe value for all the links must equal this (if not null)
boolean$dependantThe dependant status for all the links must be this (if not null)
boolean$exclusiveThe exclusive status for all the links must be this (if not null)
string$sort_bya field in the asset table you would like the results sorted by (eg. name, short_name etc)
int$accessSQ_PERMISSION_READ|SQ_PERMISSION_WRITE|SQ_PERMISSION_ADMIN Specify that links should be returned for assets the user has read, write, or admin access for. Leave NULL to ignore permissions.
boolean$effectiveIf effective permissions should be considered or not.
Returns
array public

Definition at line 3334 of file asset_manager.inc.

getLinkTreeid (   $linkid)

Returns the treeids for linkids passed in.

Accepts a single treeid int or an array of treeids for which to get link ids

Parameters
int | array$linkidthe id of the link passed, or array of linkids
Returns
array public

Definition at line 4634 of file asset_manager.inc.

getLockInfo (   $assetid,
  $lock_type,
  $force_array = FALSE,
  $full_chain = FALSE,
  $check_expires = TRUE,
  $allow_only_one = FALSE 
)

Returns an array of information about the current lock on this asset (if any)

Parameters
int$assetidthe assetid of the asset that we want lock info for
string$lock_typeany valid lock type for the passed asset's type, plus 'all' which will return all locks that this asset has - will force an array to be returned
boolean$force_arrayalways return the information in an array, as though more than one lock has been requested
boolean$full_chainreturn the info for every asset in the lock chain
boolean$check_expirescheck the expiry date and cleanup the lock if it has expired
boolean$allow_only_oneForce only one lock returned
Returns
array public

Definition at line 2696 of file asset_manager.inc.

getLockTypes (   $assetid,
  $lock_type 
)

Returns an array of lock types strings that the passed lock type really represents for the passed asset eg 'content' could mean 'attributes' and 'links'

Parameters
int$assetidthe assetid of the asset that we want lock info for
string$lock_typeany valid lock type for the passed asset's type, plus 'all' which will return all lock types that this asset has
Returns
array private

Definition at line 2761 of file asset_manager.inc.

getParents (   $assetid,
  $type_code = '',
  $strict_type_code = TRUE,
  $sort_by = NULL,
  $access = NULL,
  $effective = TRUE,
  $min_height = NULL,
  $max_height = NULL,
  $ignore_bridge = FALSE,
  $link_value_wanted = NULL,
  $bind_var_prefix = 'gp_' 
)

Get all asset ids that are above the passed assetid in the various trees in which it exists

It returns Array(int => string) returns an array of assetids and their type code

Parameters
int$assetidthe id of the asset to get its parents for
string | array$type_codethe type of asset that is linked (eg 'Page', 'File', etc) if an array returns link if matches any of the array values
boolean$strict_type_codewhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
string$sort_bya field in the asset table you would like the results sorted by (eg. name, short_name etc)
int$accessSQ_PERMISSION_READ|SQ_PERMISSION_WRITE|SQ_PERMISSION_ADMIN Specify that links should be returned for assets the user has read, write, or admin access for. Leave NULL to ignore permissions.
boolean$effectiveIf effective permissions should be considered or not.
int$min_heightOptional parameter that specifies minimum number of levels above the specified asset for a parent to qualify (immediate parent is 1)
int$max_heightOptional parameter that specifies maximum number of levels above the specified asset for a parent to qualify to be returned
boolean$ignore_bridgeOptional parameter that, if true, will prevent this function from requesting parents from shadow asset bridges
string | array$link_value_wantedLink Value Wanted
string$bind_var_prefixPrefix for bind variables. Use if this query is going to be used more than once in a larger query (say, a UNION).
Returns
array public
See Also
generateGetParentsQuery()

Definition at line 3999 of file asset_manager.inc.

getPermission (   $assetid,
  $permission,
  $granted = NULL,
  $and_greater = TRUE,
  $expand_groups = FALSE,
  $all_info = FALSE,
  $collapse_roles = FALSE 
)

Returns an array of all user or user_group assets that have the passed permission for the passed asset

Parameters
int$assetidthe assetid for asset whose permissions to get
string$permissionthe permission code you are getting
boolean$grantedtype of Access : NULL = all, TRUE = granted, FALSE = denied
boolean$and_greaterget effective permission (eg read access = read or write or admin)
boolean$expand_groupsexpand user groups so only user ids get returned (NOTE: only valid if $all_info is FALSE)
boolean$all_infowhen FALSE fn just returns an array of userids for those that have permission When TRUE fn returns all info about the permission in the form of Array(userid => granted) (NOTE: TRUE is only valid if $and_greater and $expand_groups are FALSE)
boolean$collapse_rolesWhen TRUE, only use the permissions table (ie. don't expand roles) Otherwise, the permissions view (which includes role expansions) are used
Returns
array public

Definition at line 7042 of file asset_manager.inc.

getRole (   $assetid = NULL,
  $roleid = NULL,
  $userid = NULL,
  $include_assetid = FALSE,
  $include_globals = FALSE,
  $expand_groups = FALSE,
  $inc_dependants = TRUE,
  $include_parents = FALSE,
  $type_codes = Array(),
  $strict_type_code = TRUE 
)

Returns an array of roles and the users/groups which can perform it

Parameters
int$assetidthe assetid of the asset the role is applied to
int$roleidthe assetid of the the role that is applied
int$useridthe assetid of the user performing the role
boolean$include_assetidwhether to include the assetid in the returned array
boolean$include_globalswhether to query the role view which includes expanded global roles as individual users
boolean$expand_groupswhen TRUE, any groups defined within a role will be replaced with the userids in that group. If FALSE, return the groupids
boolean$inc_dependantsIf false it will filter out the dependant assets
boolean$include_parentsWhen $userid is specified. This will include the roles applied directly to the user and indirectly to user parent groups.
array$type_codesWhen $include_assetid is TRUE. This is a type code filter for returned assetids.
array$strict_type_codeUse strict type code for type code filter
Returns
array public

Definition at line 7510 of file asset_manager.inc.

getRootURL (   $url = NULL)

Returns the information from the sq_asset_url table for the root url closest to the passed URL i.e. returns the info for the site closest to this url If no url is passed the current (aka PHP_SELF) one is used

Parameters
string$urlthe urls to check for (excluding protocol) -> NULL defaults it to current url
Returns
array public

Definition at line 7898 of file asset_manager.inc.

getShadowLinkByAsset (   $assetid,
  $other_assetid = NULL,
  $link_types = NULL,
  $value = NULL,
  $side_of_link = 'major',
  $force_array = FALSE 
)

Get details of a "shadow" asset link with the specified characteristics

Parameters
int$assetidid of the the $side_of_link asset
int$other_assetidid of the the other asset
int$link_typesinteger that should be a single integer of the SQ_LINK_* constants
string$valuethe value that is associated with this link
string$side_of_linkside of this asset in this link
boolean$force_arrayif it's TRUE, the returned value is always an array
Returns
array public

Definition at line 2930 of file asset_manager.inc.

getSnippetKeywords (   $more_info = FALSE)

Returns an array of global snippet keywords that are available to the current user

Parameters
boolean$more_inforeturns description if this is true
Returns
array public

Check if we've generated this list before. If we have, return the old list. include the more_info var in case we get a call with & without more_info requested

Definition at line 10127 of file asset_manager.inc.

getSystemAsset (   $name,
  $mute_errors = FALSE 
)

Returns a reference to a system asset

Parameters
string$namethe name of the system asset 'root_folder', 'trash_folder' etc
boolean$mute_errorsstops the outputting of errors in this fn, needed because you can't use the '@' operator when returning by reference
Returns
mixed object|NULL public

Definition at line 1597 of file asset_manager.inc.

getSystemAssetid (   $name)

Returns an assetid for a system asset if it exists

Parameters
string$namethe name of the system asset 'root_folder', 'trash_folder' etc
Returns
mixed string|boolean public

Definition at line 1487 of file asset_manager.inc.

getTypeAncestors (   $type_code,
  $include_asset = TRUE,
  $query_db = FALSE 
)

Returns an array of all assets types that are parents for the passed asset in the order Array ('parent', 'grand-parent', 'great-grand-parent', ..., 'asset')

Parameters
string$type_codethe code name for the asset that you want to check
boolean$include_assetwhen TRUE adds the "Asset" type to the parent list, even though it's an uninstantiable object
boolean$query_dbwhether to ask the DB instead of using the cache file
Returns
array public

Definition at line 656 of file asset_manager.inc.

getTypeAssetids (   $type_code,
  $strict = TRUE,
  $include_type = FALSE 
)

Returns list of all assetids of a certain type

Parameters
string$type_codeif this exists then this object is used to load the asset, if not then the DB is queried to find out the asset type
boolean$strictwhether we are finding assets that are just a $type_code or $type_code and any of it's sub-classes
boolean$include_typeif FALSE returns Array(assetid, assetid, ...), if TRUE returns Array(assetid => asset_type, assetid => asset_type, ...)
Returns
array public

Definition at line 1849 of file asset_manager.inc.

getTypeDescendants (   $type_code,
  $include_passed = FALSE 
)

Returns an array of all assets types that are descendants for the passed asset type in the order Array ('type_code_sub_class_one', 'type_code_sub_class_two', ..., 'type_code_sub_class_one_sub_class_one', ...)

Parameters
string | array$type_codethe type code that you want the decendants of
boolean$include_passedwhen TRUE includes the passed $type_code in the result
Returns
array public

Definition at line 707 of file asset_manager.inc.

getTypeInfo (   $type_code,
  $field = '' 
)

Returns an array of asset information or a specific piece of information

on success: field value if field specified, array of field values if field blank on failure: null if field specified, empty array otherwise

Parameters
mixed$type_codethe code name (or array of code names) for the asset that you want to check
string$fieldif exists, returns this information from the array for this specific field
Returns
mixed string|array|NULL public

Definition at line 331 of file asset_manager.inc.

getTypeList ( )

Returns an array of type codes that are installed in the system

Returns
array public

Definition at line 312 of file asset_manager.inc.

getUrlFromLineage (   $lineage = Array(),
  $root_url = NULL,
  $protocol = NULL 
)

Given lineage of asset ids from top to bottom, this funciton will pick an URL of the bottom asset (current asset) that matches with given lineage.

Parameters
array$lineagearray of asset ids from top to bottom
string$root_urladditional root url to help filtering the results in case the root site has multiple urls
Returns
array public

Definition at line 8212 of file asset_manager.inc.

getURLs (   $assetid)

Returns an array of URLs of an asset, including the protocol information

Parameters
int$assetidthe assetid of the asset
Returns
array public

Definition at line 7940 of file asset_manager.inc.

getValueFromURL (   $url,
  $value_name,
  $like_value = FALSE 
)

Return the lookup value for the passed URL

Parameters
string$urlthe url to get the design for
string$value_namethe code for the design/layout (eg. design/paint_layout::system::frontend), the code pattern if using $like_value (eg. design/paint_layout::%)
boolean$like_valueTRUE = LIKE $value_name, otherwise direct match to $value_name
Returns
string public

Definition at line 8364 of file asset_manager.inc.

includeAsset (   $type_code,
  $with_edit_fns = FALSE 
)

Includes the class file for the passed asset

Parameters
string$type_codethe code name for the asset that you want to check
boolean$with_edit_fnsWhether to include the Edit_Fns class file too
Returns
void public

Definition at line 617 of file asset_manager.inc.

installed (   $type_code)

Returns whether the passed asset is installed in the system or not

Parameters
string$type_codethe code name for the asset that you want to check
Returns
boolean public

Definition at line 299 of file asset_manager.inc.

isDependant (   $assetid)

isDependant function: check if an asset is linked dependantly somewhere

Parameters
string$assetidThe id of the asset that we are checking for
Returns
boolean public

Definition at line 10099 of file asset_manager.inc.

isSystemAssetType (   $asset_type)

Returns TRUE if given asset type is already registered as a system asset

During install, the output of this function should not be cached as it can change when new asset types are installed

Parameters
string$asset_typetypecode of asset in question
Returns
boolean public

Definition at line 1555 of file asset_manager.inc.

isTypeAncestor (   $type_code1,
  $type_code2 
)

Returns whether or not a type code is an ancestor of another

Parameters
string$type_code1potential parent type code
string$type_code2potential child type code
Returns
boolean public

Definition at line 762 of file asset_manager.inc.

isTypeDecendant (   $type_code1,
  $type_code2 
)

Returns whether or not a type code is a decendant of another

Parameters
string$type_code1potential child type code
string$type_code2potential parent type code
Returns
boolean public

Definition at line 744 of file asset_manager.inc.

isUnderRootNodes (   $assetid,
  $root_nodes = Array(),
  $return_matched_nodes = FALSE 
)

Checks whehter the given asset is under specific root nodes

Parameters
string$assetidthe asset ID of the asset to see if it's under specific root nodes
array$root_nodesan array of assetids of root nodes
Returns
mixed Either a boolean or an array of matched nodes public

Definition at line 10443 of file asset_manager.inc.

moveLink (   $linkid,
  $to_parentid,
  $link_type,
  $to_parent_pos,
  $link_value = '' 
)

Move a link to a new parent

Parameters
int$linkidthe link id of the link to move
int$to_parentidthe asset id of the new parent asset
int$link_typethe type of the new link
int$to_parent_posthe position under the new parent
string$link_valuethe value of the new link
Returns
int public

Definition at line 5928 of file asset_manager.inc.

moveLinkPos (   $linkid,
  $sort_order = -1 
)

Move a link from one position in the asset's links order to another

Parameters
int$linkidthe link id of the link to move about
int$sort_orderthe position in the links list that this link should take, if less than zero places at end of list
Returns
boolean public

Definition at line 6052 of file asset_manager.inc.

paintBackend ( $backend)

Prints out the interface for viewing and customising asset types

Parameters
object&$backendbackend
Returns
void public

Definition at line 9008 of file asset_manager.inc.

purgeAsset (   $asset_id)

Deletes an asset for good - bypassing the trash. PLEASE NOTE: This is a permanent and irreversible action, so please use with extreme care.

Parameters
int$asset_idthe asset ID of the asset to delete
Returns
void public

Definition at line 10307 of file asset_manager.inc.

refreshAssetType (   $type_code)

Refreshes the passed asset types data in the assets array Also updates the sq_ast_typ_inhd table so as to have all links pointing correctly

Parameters
string$type_codethe code name for the asset type that you want to refresh
Returns
void public

Definition at line 172 of file asset_manager.inc.

registerSystemAsset (   $asset_type = NULL,
  $assetid = NULL 
)

Registers a system asset, identified by the type,id pair

Parameters
string$asset_typeasset typecode
string$assetidasset id
Returns
boolean public

Definition at line 1575 of file asset_manager.inc.

releaseLock (   $assetid,
  $lock_type 
)

Release the locks that the passed asset holds

Assume that the current user has the lock to release before trying to see if it can be released by force.

Parameters
int$assetidthe assetid of the asset that we want to release
string$lock_typethe type of the lock (eg 'contents', 'permissions', etc)
Returns
boolean public

Definition at line 2587 of file asset_manager.inc.

rememberAsset ( $obj)

Registers the passed object in the store, for others to get Used when a new record has just been "created"

Parameters
object&$objthe asset to be registered
Returns
void public
See Also
forgetAsset()

Definition at line 1429 of file asset_manager.inc.

resetSystemAssetList ( )

Empties the cached list of system assets

Returns
void public

Definition at line 1537 of file asset_manager.inc.

setEditableContents (   $assetid,
  $content 
)

Set the editable content of the specified asset It returns FALSE if assetid is invalid, TRUE if successful

Parameters
int$assetidThe asset we want to set the contents of
string$contentThe content of editable asset
Returns
boolean public

Definition at line 1947 of file asset_manager.inc.

setPermission (   $assetid,
  $userid,
  $permission,
  $granted,
  $cascades = TRUE,
  $force_set = FALSE 
)

Sets a permission for the passed user or user_group

Parameters
int$assetidthe assetid for asset whose permissions to set
int$useridthe id of the user or user_group to add the permission for
string$permissionthe permission code you are adding
boolean$grantedwhether this permission grants access or not
boolean$cascadeswhether this permission cascades to children or not
boolean$force_setif TRUE, existing permissions will be overridden even if the new permissions are found to conflict with them
Returns
boolean public

Definition at line 7203 of file asset_manager.inc.

setRole (   $assetid,
  $roleid,
  $userid 
)

Apply a role to an asset and specify a user to perform the role

Parameters
int$assetidthe assetid of the asset
int$roleidthe assetid the role
int$useridthe assetid of the user performing the role
Returns
boolean public

Definition at line 7690 of file asset_manager.inc.

trashAsset (   $assetid,
  $force_trash = FALSE 
)

Send the specified asset directly to the trash, where possible

This deletes its links to all its current parents, and creates a link for it in the trash folder

Parameters
string$assetidthe asset to trash
boolean$force_trashdo not abort trashing if any error occurs
Returns
boolean public

Definition at line 6942 of file asset_manager.inc.

updateLink (   $linkid,
  $link_type = NULL,
  $value = NULL,
  $sort_order = NULL,
  $locked = NULL 
)

Update the details of an existing link

If any of the detail vars are NULL they are not updated.

Parameters
int$linkidthe link id of the link to update
int$link_typethe type of the link (one of the SQ_LINK_* constants)
string$valuethe value to place on the link
int$sort_orderthe position in the links list that this link should take, if less than zero places at end of list
string$lockedthe asset's link lock status
Returns
boolean public

Definition at line 6074 of file asset_manager.inc.

updateLock (   $assetid,
  $lock_type,
  $expires = 0 
)

Updates the expiry date of the lock on this asset

Parameters
int$assetidthe assetid of the asset that we want to release
string$lock_typethe type of the lock (eg 'contents', 'permissions', etc)
int | NULL$expireswhen the lock expires (timestamp or NULL)
Returns
boolean public

Definition at line 2652 of file asset_manager.inc.

validAttributeType (   $attr_type)

Checks the passed attribute type is valid type or not

Parameters
string$attr_typethe type of asset represented by the id
Returns
boolean public

Definition at line 778 of file asset_manager.inc.

webPathsInUse ( Asset  $major,
  $paths,
  $ignore_assetid = 0,
  $return_alternatives = FALSE 
)

Returns an array of the passed web paths that are currently in use by any the children of the major asset

Ideally we could do this in only a couple of queries:

  • check which paths already exist
  • get the last path variation for each one that does exist
  • increment variations appropriately. Unfortunately due to db sorting (sometimes '#99' is being returned when '#120 is the real last variation) this isn't possible. Instead, it checks only problem paths in chunks of 1000 to see which exist, remembers the last id from each chunk (worked out in php, it's more consistent), and then modifies path variations as required.
Parameters
Asset$majorthe major asset, whose children we are to check
array$pathsarray of web paths to check
int$ignore_assetidignore this assetid when checking
boolean$return_alternativesreturn all paths but replace the bad paths with a valid alternative
Returns
array protected

fixPaths will be a list of paths that are already taken and need to be adjusted.

There are none? Yay!

We only need to do this for the paths we need to fix. We'll go through them one by one and work out the closest match. We do that by stripping numbers off the end of the path and seeing if there are any matches.

endPaths keeps a lits of the last path used in each chunk received from the database. See function comments about #99 vs #120 for why

Since we're fetching in chunks we need to make sure we order the results. So we don't double up and we don't miss any.

(path, assetid) is the primary key - so use that for ordering.

If we're only looking at numeric paths, get rid of non-numeric paths we can't use 'max' here to do it because '1' and 'page-1' will get returned depending on which path was found first (see php.net/max for details/examples) and also if a path starts with a number it will be included (which is not what we want at all).

Keep a list of the last path in this chunk. We'll use this later on in case we need to increment the path id's.

increment each modified path based on the last_path above. no need to check if the id is taken again, we've done that.

Definition at line 8818 of file asset_manager.inc.


The documentation for this class was generated from the following file: