*/
/**
* Implementation of hook_help().
*/
function video_image_help($section) {
switch ($section) {
case 'admin/modules#description':
return t('Enable thumbnails support for video module.');
}
}
/**
* Implementation of hook_form_alter()
*/
function video_image_form_alter($form_id, &$form) {
if($form_id == 'video_node_form' && isset($form['video'])) {
$form['image'] = array('#type' => 'fieldset', '#title' => t('Image thumbnails'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#weight' => -17, '#description' => t('Use this form to upload an image.'));
if (function_exists('_image_check_settings')) {
_image_check_settings();
$node = $form['#node'];
$form['#attributes'] = array("enctype" => "multipart/form-data");
if ($node->iid) {
$image = node_load($node->iid);
$form['image']['image_thumbnail'] = array('#type' => 'item', '#title' => t('Thumbnail'), '#value' => image_display($image, 'thumbnail'));
}
$value = ($node->new_image) ? '#value' : '#default_value';
$form['image']['iid'] = array('#type' => 'hidden' , $value => $node->iid);
$form['image']['image'] = array('#type' => 'file', '#title' => t('Image'));
$form['image']['image_title'] = array('#type' => 'textfield', '#title' => t('Image title'), '#default_value' => '');
}
}
}
/**
* Implementation of hook_nodeapi()
*/
function video_image_nodeapi(&$node, $op, $teaser) {
if($node->type == 'video') {
switch ($op) {
case 'load':
$output['iid'] = $node->serial_data['iid'];
return $output;
case 'submit':
$node->serial_data['iid'] = $node->iid;
break;
case 'prepare':
// check that image.module is actived
if ( !module_exist("image")) {
db_query("UPDATE {system} SET status = 0 WHERE name ='video_image' AND type = 'module' LIMIT 1");
drupal_set_message(t('video_image module requires the %module module.
To prevent system errors video_image module has been disabled.
Please install the image module and then reactivate the video_image module.', array('%module' => l('image', 'http://drupal.org/project/image'))), 'error');
break;
}
$image->title = $_POST['edit']['image_title'];
$image->uid = $node->uid;
$image->name = $node->name;
$image->created = $node->created;
$image->type = 'image';
image_prepare($image, 'image');
if ($image->images) {
node_validate($image);
if (!form_get_errors()) {
$image = node_submit($image);
node_save($image);
$node->iid = $image->nid;
$node->new_image = TRUE;
}
}
elseif ($_POST['edit']['iid']) {
$node->iid = $_POST['edit']['iid'];
}
break;
case 'view':
if($teaser) {
if ($node->serial_data['image_teaser'] || $node->serial_data['iid']) { //If we are dealing with a teaser.
$node->teaser = theme('video_image_teaser', $node);
}
}
else {
if ($node->serial_data['image_view'] || $node->serial_data['iid']) {
$node->body = theme('video_image_body', $node) . $node->body;
}
}
break;
}
}
}
/**
* Render the output for the node teaser.
*
* @param $node
* object with node information
*
* @return
* string of content to display
*/
function theme_video_image_teaser($node) {
if($node->serial_data['iid']) {
$image = node_load($node->serial_data['iid']);
$image = image_display($image, 'thumbnail', array('class' => 'video_image_teaser'));
}
else { // only for backward compatibility
$image = theme('image', $node->serial_data['image_teaser'], $node->title, $node->title, array('class' => 'video_image_teaser'), FALSE);
}
$output .= l($image, "node/$node->nid", array(), NULL, NULL, FALSE, TRUE); //Create a link with an image in it.
$output .= $node->teaser . '
';
return $output;
}
/**
* Generates the image HTML displayed in the Node body.
*
* @param $node
* object with node information
*
* @return
* string of content to display
*/
function theme_video_image_body($node) {
if($node->serial_data['iid']) {
$image = node_load($node->serial_data['iid']);
$image = image_display($image, 'thumbnail');
}
else { // only for backward compatibility
$image = theme('image', $node->serial_data['image_view'], $node->title, $node->title, array('class' => 'video_image_view'), FALSE); //Create image HTML
}
$output = l($image, "node/$node->nid/play", array('title' => t('play') . ' ' . $node->title), NULL, NULL, FALSE, TRUE); //Create link HTML with image in it.
return $output;
}
?>