source: extensions/gvideo/admin/add.php @ 19056

Last change on this file since 19056 was 19056, checked in by mistic100, 8 years ago

allow to add private dailymotion videos, remove videobb support, add tags support

File size: 3.9 KB
Line 
1<?php
2if (!defined('GVIDEO_PATH')) die('Hacking attempt!');
3
4include_once(GVIDEO_PATH.'include/functions.inc.php');
5include_once(PHPWG_ROOT_PATH . 'admin/include/functions_upload.inc.php');
6
7if (isset($_POST['add_video']))
8{
9  // check inputs
10  if (empty($_POST['url']))
11  {
12    array_push($page['errors'], l10n('Please fill the video URL'));
13  }
14  if ( !empty($_POST['url']) and ($video = parse_video_url($_POST['url'])) === false )
15  {
16    array_push($page['errors'], l10n('Unable to contact host server'));
17  }
18 
19  if (count($page['errors']) == 0)
20  {
21    // download thumbnail
22    $thumb_name = $video['type'].'-'.$video['video_id'].'-'.uniqid().'.'.get_extension($video['thumbnail']);
23    $thumb_source = $conf['data_location'].$thumb_name;
24    if (download_remote_file($video['thumbnail'], $thumb_source) !== true)
25    {
26      $thumb_source = $conf['data_location'].get_filename_wo_extension($thumb_name).'.jpg';
27      copy(GVIDEO_PATH.'mimetypes/'.$video['type'].'.jpg', $thumb_source);
28    }
29   
30    if (isset($_POST['add_film_frame']))
31    {
32      add_film_frame($thumb_source);
33    }
34   
35    // add image and update infos
36    $image_id = add_uploaded_file($thumb_source, $thumb_name, array($_POST['category']));
37   
38    $updates = array(
39      'name' => pwg_db_real_escape_string($video['title']),
40      'author' => pwg_db_real_escape_string($video['author']),
41      'is_gvideo' => 1,
42      );
43     
44    if ( $_POST['sync_description'] and !empty($video['description']) )
45    {
46      $updates['comment'] = pwg_db_real_escape_string($video['description']);
47    }
48    if ( $_POST['sync_tags'] and !empty($video['tags']) )
49    {
50      set_tags(get_tag_ids(implode(',', $video['tags'])), $image_id);
51    }
52   
53    single_update(
54      IMAGES_TABLE,
55      $updates,
56      array('id' => $image_id),
57      true
58      );
59   
60    // register video
61    if ($_POST['size_common'] == 'true')
62    {
63      $_POST['width'] = $_POST['height'] = '';
64    }
65    else if ( !preg_match('#^([0-9]+)$#', $_POST['width']) or !preg_match('#^([0-9]+)$#', $_POST['height']) )
66    {
67      array_push($page['errors'], l10n('Width and height must be integers'));
68      $_POST['width'] = $_POST['height'] = '';
69    }
70    if ($_POST['autoplay_common'] == 'true')
71    {
72      $_POST['autoplay'] = '';
73    }
74   
75    $insert = array(
76      'picture_id' => $image_id,
77      'url' => $video['url'],
78      'type' => $video['type'],
79      'video_id' => $video['video_id'],
80      'width' => $_POST['width'],
81      'height' => $_POST['height'],
82      'autoplay' => $_POST['autoplay'],
83      );
84     
85    single_insert(
86      GVIDEO_TABLE,
87      $insert
88      );
89     
90    $query = '
91SELECT id, name, permalink
92  FROM '.CATEGORIES_TABLE.'
93  WHERE id = '.$_POST['category'].'
94;';
95    $category = pwg_db_fetch_assoc(pwg_query($query));
96     
97    array_push($page['infos'], sprintf(
98      l10n('Video successfully added. <a href="%s">View</a>'), 
99      make_picture_url(array(
100        'image_id' => $image_id,
101        'category' => array(
102          'id' => $category['id'],
103          'name' => $category['name'],
104          'permalink' => $category['permalink'],
105          ),
106        ))
107      ));
108    unset($_POST);
109  }
110}
111
112// categories
113$query = '
114SELECT id,name,uppercats,global_rank
115  FROM '.CATEGORIES_TABLE.'
116;';
117display_select_cat_wrapper($query, array(), 'category_parent_options');
118
119// upload limit
120$upload_max_filesize = min(
121  get_ini_size('upload_max_filesize'),
122  get_ini_size('post_max_size')
123  );
124$upload_max_filesize_shorthand = 
125  ($upload_max_filesize == get_ini_size('upload_max_filesize')) ?
126  get_ini_size('upload_max_filesize', false) :
127  get_ini_size('post_max_filesize', false);
128 
129// template
130$template->assign(array(
131  'upload_max_filesize' => $upload_max_filesize,
132  'upload_max_filesize_shorthand' => $upload_max_filesize_shorthand,
133  'gd_available' => function_exists('imagecreatetruecolor'),
134  'gvideo' => $conf['gvideo'],
135  'POST' => @$_POST,
136  ));
137
138$template->set_filename('gvideo_content', dirname(__FILE__) . '/template/add.tpl');
139
140?>
Note: See TracBrowser for help on using the repository browser.