asset_load
- 5 – 6
asset_load($param = array(), $reset = NULL)
Load an asset object from db and set some default properties.
Taken almost exactly from node_load to utilize caching and assetapi load hook
Parameters
$aid
id of asset to load
Code
contributions/asset/inc/asset.node.inc, line 65
<?php
function asset_load($param = array(), $reset = NULL) {
static $assets = array();
if ($reset) {
$assets = array();
}
$arguments = array();
if (is_numeric($param)) {
if (isset ($assets[$param])) {
return is_object($assets[$param]) ? drupal_clone($assets[$param]) : $assets[$param];
}
$cond ='a.aid = %d';
$arguments[] = $param;
} elseif (is_array($param)) {
foreach ($param as $key => $value) {
$cond[] ='a.'. db_escape_string($key) ." = '%s'";
$arguments[] = $value;
}
$cond = implode(' AND ', $cond);
} else {
return false;
}
$asset = db_fetch_object(db_query('SELECT a.* FROM {asset} a WHERE ' . $cond, $arguments));
if (!$asset) {
return false;
}
$dirname_tmp = $asset->dirname ? $asset->dirname . '/' : $asset->dirname;
$result = db_query('SELECT * FROM {asset_role} WHERE aid = %d', $asset->aid);
while ($role = db_fetch_array($result)) {
$asset->roles[$role['rid']] = $role['status'] ? $role['rid'] : 0;
}
$asset->filepath = file_create_path($dirname_tmp . $asset->filename);
$asset->url = file_create_url($dirname_tmp . $asset->filename);
$asset->extension = strtolower($asset->extension);
$asset->title = $asset->title ? $asset->title : $asset->filename;
if ($asset->type == 'directory' && $asset->dirname == '' && $asset->filename == $GLOBALS['user']->name) {
$asset->title = t('My Assets');
}
if ($asset->aid) {
if ($extra = module_invoke_all('assetapi', 'load', $asset)) {
foreach ($extra as $key => $value) {
$asset->$key = $value;
}
}
$assets[$asset->aid] = is_object($asset) ? drupal_clone($asset) : $asset;
}
return $asset;
}
?>