View source
<?php
$lib_path = libraries_get_path('vimeo-lib-api');
require_once $lib_path . '/autoload.php';
use Vimeo\Vimeo;
use Vimeo\Exceptions\VimeoUploadException;
function vimeo_video_uploader_help($path, $arg) {
switch ($path) {
case 'admin/help#vimeo_video_uploader':
return t("Visit !documentation for instructions", array(
'!documentation' => l(t('Documentation'), 'https://www.drupal.org/node/2726121'),
));
}
}
function vimeo_video_uploader_permission() {
return array(
'access vimeo uploader' => array(
'title' => t('Administer Vimeo Video Uploader'),
),
);
}
function vimeo_video_uploader_menu() {
$items = array();
$items['admin/config/media/vimeo_video_uploader'] = array(
'title' => 'Vimeo Auth Configuration',
'description' => 'vimeo authorization',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'vimeo_video_uploader_admin_form',
),
'access arguments' => array(
'access vimeo uploader',
),
'file' => 'vimeo_video_uploader.inc',
);
return $items;
}
function vimeo_video_uploader_node_presave($node) {
$client_id = variable_get('vimeo_video_uploader_client_id');
$client_secret = variable_get('vimeo_video_uploader_client_secret');
$access_token = variable_get('vimeo_video_uploader_access_token');
if (!empty($node->field_vimeo_file_browse[LANGUAGE_NONE])) {
if ($node->type == variable_get('vimeo_video_uploader_content_type_select') && empty($node->nid)) {
try {
$file = file_load($node->field_vimeo_file_browse[LANGUAGE_NONE][0]["fid"]);
$lib = new Vimeo($client_id, $client_secret, $access_token);
$video_id_link = $lib
->upload(drupal_realpath($file->uri));
$video_id = substr($video_id_link, 8);
if ($video_id) {
$video_title = $node->title;
$video_desc = isset($node->body[LANGUAGE_NONE][0]) ? $node->body[LANGUAGE_NONE][0]["value"] : '';
$lib
->request('/videos/' . $video_id, array(
'name' => $video_title,
), 'PATCH');
$lib
->request('/videos/' . $video_id, array(
'description' => $video_desc,
), 'PATCH');
$video_url = 'http://vimeo.com/' . $video_id;
$node->field_embeddedvideo[LANGUAGE_NONE][0]["video_url"] = $video_url;
$node->field_embeddedvideo[LANGUAGE_NONE][0]["description"] = $video_desc;
}
file_delete($file);
} catch (VimeoUploadException $e) {
drupal_set_message(t('Not Authorized...! Please check your Auth information and login to your vimeo account.'), 'error');
drupal_goto('node/add');
drupal_exit();
}
}
elseif ($node->type == variable_get('vimeo_video_uploader_content_type_select') && !empty($node->nid)) {
try {
$file = file_load($node->field_vimeo_file_browse[LANGUAGE_NONE][0]["fid"]);
$lib = new Vimeo($client_id, $client_secret, $access_token);
$video_id_ = substr($node->original->field_embeddedvideo[LANGUAGE_NONE][0]["video_url"], 17);
$lib
->request('/videos/' . $video_id_, array(), 'DELETE');
$video_id_link = $lib
->upload(drupal_realpath($file->uri));
$video_id = substr($video_id_link, 8);
$video_title = $node->title;
$video_desc = isset($node->body[LANGUAGE_NONE][0]) ? $node->body[LANGUAGE_NONE][0]["value"] : '';
$lib
->request('/videos/' . $video_id, array(
'name' => $video_title,
), 'PATCH');
$lib
->request('/videos/' . $video_id, array(
'description' => $video_desc,
), 'PATCH');
$video_url = 'http://vimeo.com/' . $video_id;
$node->field_embeddedvideo[LANGUAGE_NONE][0]["video_url"] = $video_url;
$node->field_embeddedvideo[LANGUAGE_NONE][0]["description"] = $video_desc;
file_delete($file);
} catch (VimeoUploadException $e) {
drupal_set_message(t('Not Authorized...! Please check your Auth information and login to your vimeo account.'), 'error');
drupal_goto('node/add');
drupal_exit();
}
}
}
elseif ($node->type == variable_get('vimeo_video_uploader_content_type_select') && !empty($node->nid) && empty($node->field_vimeo_file_browse[LANGUAGE_NONE])) {
try {
$lib = new Vimeo($client_id, $client_secret, $access_token);
$video_id = substr($node->field_embeddedvideo[LANGUAGE_NONE][0]["video_url"], 17);
$video_title = $node->title;
$video_desc = isset($node->body[LANGUAGE_NONE][0]) ? $node->body[LANGUAGE_NONE][0]["value"] : '';
$lib
->request('/videos/' . $video_id, array(
'name' => $video_title,
), 'PATCH');
$lib
->request('/videos/' . $video_id, array(
'description' => $video_desc,
), 'PATCH');
} catch (VimeoUploadException $e) {
drupal_set_message(t('Not Authorized...! Please check your Auth information and login to your vimeo account.'), 'error');
drupal_goto('node/add');
drupal_exit();
}
}
}
function vimeo_video_uploader_node_delete($node) {
if ($node->type == variable_get('vimeo_video_uploader_content_type_select') && !empty($node->nid)) {
$video_id_val = substr($node->field_embeddedvideo[LANGUAGE_NONE][0]["video_url"], 17);
if (!empty($video_id_val)) {
$client_id = variable_get('vimeo_video_uploader_client_id');
$client_secret = variable_get('vimeo_video_uploader_client_secret');
$access_token = variable_get('vimeo_video_uploader_access_token');
$video_id_ = substr($node->field_embeddedvideo[LANGUAGE_NONE][0]["video_url"], 17);
$lib_ = new Vimeo($client_id, $client_secret, $access_token);
try {
$lib_
->request('/videos/' . $video_id_, array(), 'DELETE');
} catch (VimeoUploadException $e) {
drupal_goto('admin/content');
drupal_exit();
}
}
}
}
function vimeo_video_uploader_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == variable_get('vimeo_video_uploader_content_type_select') . "_node_form") {
$css = "#edit-field-embeddedvideo, #edit-field-vimeo-file-browse #edit-field-vimeo-file-browse-und-0-upload-button { display: none; }";
drupal_add_css($css, 'inline');
}
}