t('Link'),
'types' => array('*' => array('*')),
'description' => t('A simple download link.'),
);
$formats['image'] = array(
'name' => t('Image'),
'types' => array('local' => array('jpg', 'gif', 'png')),
'description' => t('The full-size image.'),
);
return $formats;
case 'options':
switch ($attr['format']) {
case 'image' :
$info = image_get_info(file_create_path($asset->filepath));
$form['height'] = array(
'#type' => 'textfield',
'#title' => t('Height'),
'#size' => '10',
'#default_value' => !isset($_GET['height']) ? $info['height'] : filter_xss($_GET['height']),
);
$form['width'] = array(
'#type' => 'textfield',
'#title' => t('Width'),
'#size' => '10',
'#default_value' => !isset($_GET['width']) ? $info['width'] : filter_xss($_GET['width']),
);
$form['resizable'] = array(
'#type' => 'hidden',
'#value' => 'true',
);
return $form;
default :
return array();
}
break;
case 'render':
switch ($attr['format']) {
case 'image' :
$img_attributes = array(
'title' => $attr['title'],
'alt' => $attr['title'],
);
if ($attr['height']) {
$img_attributes['height'] = $attr['height'];
}
if ($attr['width']) {
$img_attributes['width'] = $attr['width'];
}
return '';
default :
return theme('asset_render_default', $asset);
}
break;
case 'preview':
switch ($attr['format']) {
case 'image' :
return theme('image', file_create_path($asset->filepath), '', '', array('width' => '100'), false);
case 'link' :
return theme('asset_render_default', $asset);
}
break;
case 'details':
switch ($attr['format']) {
case 'image' :
$info = image_get_info(file_create_path($asset->filepath));
return array(
t('Width') => $info['width'] .'px',
t('Height') => $info['height'] .'px',
);
}
return array();
case 'img':
switch ($attr['format']) {
case 'image' :
return file_create_url($asset->filepath);
case 'link' :
default :
// when we get around to building icons.
$icon = drupal_get_path('module', 'asset') . '/misc/icons/' . $asset->extension .'.png';
if (file_exists($icon)) {
return $icon;
}
// if all else fails send back a transparent gif so the default bg image shows
return drupal_get_path('module', 'asset') . '/misc/transparent.gif';
}
break;
}
}
/**
* Implementation of hook_asset_type().
*/
function asset_asset_type($op = 'info', $delta = 0, $form_values=array()) {
switch ($op) {
case 'info':
$info['upload'] = array(
'value' => t('Upload'),
'title' => t('Upload a new file.'),
'src' => drupal_get_path('module', 'asset') . '/misc/lullacons/doc-option-add.png',
);
$info['directory'] = array(
'value' => t('New Folder'),
'title' => t('Create a new folder.'),
'src' => drupal_get_path('module', 'asset') . '/misc/lullacons/folder-option-add.png',
);
$info['directory-del'] = array(
'value' => t('Delete Folder'),
'title' => t('Delete the current folder.'),
'src' => drupal_get_path('module', 'asset') . '/misc/lullacons/folder-option-remove.png',
);
return $info;
case 'form':
$form['module'] = array('#type' => 'value', '#value' => 'asset');
if ($delta == 'upload') {
$form['upload'] = array(
'#type' => 'file',
'#title' => t('Upload a File'),
'#size' => 35,
'#weight' => -1,
);
}
if (empty($_SESSION['asset_op'])) {
// Don't allow the asset cck to select a width/size or imagecache preset
$form['#redirect'] = "node/1";
}
$form['#attributes']['enctype'] = 'multipart/form-data';
return $form;
case 'validate':
// must return a valid asset aid
if ($delta == 'upload') {
if ($file = file_save_upload('upload')) {
$parent_tmp = $form_values['parent'] ? $form_values['parent'] .'/' : $form_values['parent'];
$path = file_create_path($parent_tmp . $file->filename);
if (file_copy($file, $path, FILE_EXISTS_REPLACE)) {
$asset = asset_save($file, $form_values);
drupal_set_message(t("The file $file->filename has been successfully uploaded."));
if (isset($_SESSION['asset_fieldname'])) {
drupal_goto(filter_xss($_GET['q']), 'dir='. filter_xss($_GET['dir']));
} else {
return $asset->aid;
}
} else {
form_set_error('upload', 'Error saving file to ' . $path .'');
}
} else {
form_set_error('upload', 'Error uploading file');
}
} else {
$parent_tmp = $form_values['parent'] ? $form_values['parent'] . '/' : $form_values['parent'];
$dir = $parent_tmp . $form_values['title'];
if (asset_check_directory($dir, FILE_CREATE_DIRECTORY)) {
$query = $_GET;
unset($query['q']);
$query['dir'] = trim(str_replace(file_create_path(), '', $dir), '/');
drupal_goto($_GET['q'], asset_build_query($query));
} else {
form_set_error('title', t('Error creating directory.'));
}
}
break;
case 'submit':
break;
}
}
?>