PluginProbe
VdoCipher: Secure Video Player and Hosting / 1.6
VdoCipher: Secure Video Player and Hosting v1.6
trunk 1.10 1.11 1.12 1.13 1.14 1.15 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.3 1.30 1.4 1.5 1.6 All 28 releases
← All changes | vdocipher.php +160 -449 1.271.6 View file →
@@ -1,481 +1,192 @@
1 1 <?php
2 2 /**
3 3 * Plugin Name: VdoCipher
4 - * Plugin URI: https://www.vdocipher.com
5 - * Description: Secured video hosting for WordPress
6 - * Version: 1.27
4 + * Plugin URI: http://www.vdocipher.com
5 + * Description: Secured video hosting for wordpress
6 + * Version: 1.6
7 7 * Author: VdoCipher
8 - * Author URI: https://www.vdocipher.com
8 + * Author URI: http://www.vdocipher.com
9 9 * License: GPL2
10 10 */
11 11
12 +
12 13 if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) {
13 14 header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
14 - exit("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\r\n<html lang='en'><head>\r\n<title>404 Not Found</title>\r\n".
15 - "</head><body>\r\n<h1>Not Found</h1>\r\n<p>The requested URL " . $_SERVER['SCRIPT_NAME'] . " was not found on ".
16 - "this server.</p>\r\n</body></html>");
15 + exit("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\r\n<html><head>\r\n<title>404 Not Found</title>\r\n</head><body>\r\n<h1>Not Found</h1>\r\n<p>The requested URL " . $_SERVER['SCRIPT_NAME'] . " was not found on this server.</p>\r\n</body></html>");
17 16 }
18 17
19 -if (!defined('VDOCIPHER_PLUGIN_VERSION')) {
20 - define('VDOCIPHER_PLUGIN_VERSION', '1.27');
21 -}
18 +function vdo_send($action, $params, $posts = false){
19 + $client_key = get_option('vdo_client_key');
20 + if ($client_key == false || $client_key == "") {
21 + return "Plugin not configured. Please set the key to embed videos.";
22 + }
23 + $curl = curl_init();
24 + curl_setopt($curl, CURLOPT_FAILONERROR, true);
25 + curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
26 + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
27 + curl_setopt($curl, CURLOPT_VERBOSE, true);
28 + curl_setopt($curl, CURLOPT_FAILONERROR, false);
29 + //curl_setopt($curl, CURLOPT_PROXY, "xxxxxxxxxxxxxxxxx:xxxx");
22 30
23 -if (!defined('VDOCIPHER_PLAYER_VERSION')) {
24 - define('VDOCIPHER_PLAYER_VERSION', '1.6.10');
31 + $getData = http_build_query($params);
32 + curl_setopt($curl, CURLOPT_POST, true);
33 + $postData = "clientSecretKey=$client_key";
34 + if ($posts) {
35 + $postData .= "&". $posts;
36 + }
37 + curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
38 + $url = "http://api.vdocipher.com/v2/$action/?$getData";
39 + curl_setopt($curl, CURLOPT_URL,$url);
40 + $html = curl_exec($curl);
41 + if (!$html) {
42 + echo curl_error($curl);
43 + }
44 + curl_close($curl);
45 + return $html;
25 46 }
47 +function vdo_shortcode( $atts ) {
48 + extract( shortcode_atts(
49 + array(
50 + 'title' => 'TITLE_OF_VIDEO',
51 + 'width' => get_option('vdo_default_width'),
52 + 'height' => get_option('vdo_default_height'),
53 + 'id' => 'id',
54 + 'no_annotate'=> false
55 + ), $atts )
56 + );
57 + if(!$atts['id']){
58 + if(!$atts['title'])
59 + return "Required argument id for embedded video not found.";
60 + $params = array(
61 + 'search'=>array(
62 + 'title'=>$title
63 + ),
64 + 'page'=>1,
65 + 'limit'=>30,
66 + 'type'=>'json'
67 + );
68 + $video = vdo_send("videos", $params);
69 + $video = json_decode($video);
70 + if($video == null)
71 + return "404. Video not found.";
72 + $video = $video[0]->id;
73 + if ($video == null) {
74 + return "No video with given title found.";
75 + }
76 + }
77 + else
78 + $video = $id;
26 79
27 -if (!defined('VDOCIPHER_DEFAULT_THEME')) {
28 - define('VDOCIPHER_DEFAULT_THEME', '9ae8bbe8dd964ddc9bdb932cca1cb59a');
29 -}
80 + $params = array(
81 + 'video'=>$video
82 + );
83 + $anno = false;
84 + if (!function_exists("eval_date")) {
85 + function eval_date($matches){
86 + return date($matches[1]);
87 + }
88 + }
89 + if (get_option('vdo_annotate_code') != "") {
90 + $current_user = wp_get_current_user();
91 + $vdo_annotate_code = get_option('vdo_annotate_code');
92 + $vdo_annotate_code = apply_filters('vdocipher_annotate_preprocess', $vdo_annotate_code);
93 + if (is_user_logged_in()) {
94 + $vdo_annotate_code = str_replace('{name}', $current_user->display_name , $vdo_annotate_code);
95 + $vdo_annotate_code = str_replace('{email}', $current_user->user_email , $vdo_annotate_code);
96 + $vdo_annotate_code = str_replace('{username}', $current_user->user_login , $vdo_annotate_code);
97 + $vdo_annotate_code = str_replace('{id}', $current_user->ID , $vdo_annotate_code);
98 + }
99 + $vdo_annotate_code = str_replace('{ip}', $_SERVER['REMOTE_ADDR'] , $vdo_annotate_code);
100 + $vdo_annotate_code = preg_replace_callback('/\{date\.([^\}]+)\}/', "eval_date" , $vdo_annotate_code);
101 + $vdo_annotate_code = apply_filters('vdocipher_annotate_postprocess', $vdo_annotate_code);
102 + if(!$no_annotate)
103 + $anno = "annotate=". urlencode($vdo_annotate_code);
104 + }
105 + $OTP = vdo_send("otp", $params, $anno);
106 + $OTP = json_decode($OTP);
107 + if(is_null($OTP)){
108 + $output = "<span id='vdo$OTP' style='background:#555555;color:#FFFFFF'><h4>Video not found</h4></span>";
109 + return $output;
110 + }
111 + $OTP = $OTP->otp;
30 112
31 -function vdo_plugin_check_version()
32 -{
33 - // This applies only for installs 1.24 and below
34 - if (!get_option('vdo_plugin_version')) {
35 - if (preg_match('/^1\.[0123456]\.[0-9]{1,2}$/', get_option('vdo_embed_version'))) {
36 - update_option('vdo_embed_version', VDOCIPHER_PLAYER_VERSION);
37 - }
38 - if (preg_match('/^1\.[01234]\.[0-9]{1,2}$/', get_option('vdo_embed_version'))) {
39 - update_option('vdo_default_height', 'auto');
40 - }
41 - update_option('vdo_plugin_version', VDOCIPHER_PLUGIN_VERSION);
42 - return ;
43 - }
44 - // This applies for all new installations after 1.25
45 - if (VDOCIPHER_PLUGIN_VERSION !== get_option('vdo_plugin_version')) {
46 - if (preg_match('/^1\.[0-9]{1,2}\.[0-9]{1,2}$/', get_option('vdo_embed_version'))) {
47 - update_option('vdo_embed_version', VDOCIPHER_PLAYER_VERSION);
48 - }
49 - update_option('vdo_plugin_version', VDOCIPHER_PLUGIN_VERSION);
50 - }
113 + $output = "<span id='vdo$OTP'></span>";
114 + $output .= "<script src='https://de122v0opjemw.cloudfront.net/utils/playerInit.php?otp=$OTP&height=$height&width=$width&'></script>";
115 + return $output;
51 116 }
52 117
53 -add_action('plugins_loaded', 'vdo_plugin_check_version');
118 +add_shortcode( 'vdo', 'vdo_shortcode' );
54 119
55 -// Function called to retrieve id for when title given, starts
56 -function vdo_retrieve_id($title)
57 -{
58 - $client_key = get_option('vdo_client_key');
59 - if ($client_key == false || $client_key == "") {
60 - return "Plugin not configured. Please set the API key to embed videos.";
61 - }
62 - $url = "https://dev.vdocipher.com/api/videos?q=$title";
63 - $headers = array(
64 - 'Authorization'=>'Apisecret '.$client_key,
65 - 'Content-Type'=>'application/json',
66 - 'Accept'=>'application/json'
67 - );
68 - $response = wp_remote_post($url, array(
69 - 'method' => 'GET',
70 - 'headers' => $headers
71 - ));
72 - if (is_wp_error($response)) {
73 - $error_message = $response->get_error_message();
74 - echo "VdoCipher: Something went wrong: $error_message";
75 - return "";
76 - }
77 - $video_json_response = $response['body'];
78 - $video_list_object = json_decode($video_json_response);
79 - $video_list = $video_list_object->rows;
80 - $video_object = $video_list[0];
81 - return $video_object->id;
82 -}
83 -// Function called to retrieve id for when title given, ends
84 120
85 -// Function called to get OTP, starts
86 -function vdo_otp($video, $otp_post_array = array())
87 -{
88 - $client_key = get_option('vdo_client_key');
89 - if ($client_key == false || $client_key == "") {
90 - return "Plugin not configured. Please set the API key to embed videos.";
91 - }
92 - $url = "https://dev.vdocipher.com/api/videos/$video/otp";
93 - $headers = array(
94 - 'Authorization'=>'Apisecret '.$client_key,
95 - 'Content-Type'=>'application/json',
96 - 'Accept'=>'application/json'
97 - );
98 - $otp_post_json = json_encode($otp_post_array);
99 - $response = wp_remote_post(
100 - $url,
101 - array(
102 - 'method' => 'POST',
103 - 'headers' => $headers,
104 - 'body' => $otp_post_json
105 - )
106 - );
107 - if (is_wp_error($response)) {
108 - $error_message = $response->get_error_message();
109 - echo "VdoCipher: Something went wrong: $error_message";
110 - return "";
111 - }
112 - $OTP_Response = $response['body'];
113 - return json_decode($OTP_Response);
114 -}
115 -// Function called to get OTP, ends
121 +/// adding the settings link
122 +$plugin = plugin_basename(__FILE__);
123 +add_filter("plugin_action_links_$plugin", 'vdo_settings_link' );
116 124
117 -// VdoCipher Shortcode starts
118 -function vdo_shortcode($atts)
119 -{
120 - $vdo_args = shortcode_atts(
121 - array(
122 - 'title' => 'TITLE_OF_VIDEO',
123 - 'width' => get_option('vdo_default_width'),
124 - 'height' => get_option('vdo_default_height'),
125 - 'id' => 'id',
126 - 'no_annotate'=> false,
127 - 'vdo_theme'=> false,
128 - 'vdo_version'=> false,
129 - 'player_tech'=> ''
130 - ),
131 - $atts
132 - );
133 - $title = $vdo_args['title'];
134 - $width = $vdo_args['width'];
135 - $height = $vdo_args['height'];
136 - $id = $vdo_args['id'];
137 - $no_annotate = $vdo_args['no_annotate'];
138 - $vdo_theme = $vdo_args['vdo_theme'];
139 - $vdo_version = $vdo_args['vdo_version'];
140 - $player_tech = $vdo_args['player_tech'];
141 -
142 - if (!preg_match('/.*px$/', $width)) {
143 - $width = $width."px";
144 - }
145 - if (!preg_match('/.*px$/', $height)) {
146 - if ($height != 'auto') {
147 - $height = $height."px";
148 - }
149 - }
150 - if (!$atts['id']) {
151 - if (!$atts['title']) {
152 - return "Required argument id for embedded video not found.";
153 - } else {
154 - $video = vdo_retrieve_id($title);
155 - if ($video == null) {
156 - return "404. Video not found.";
157 - }
158 - }
159 - } else {
160 - $video = $id;
161 - }
162 -
163 - // Initialize $otp_post_array, to be sent as part of OTP request, as for time-to-live 300
164 - $otp_post_array = array("ttl" => 300);
165 - if (!function_exists("eval_date")) {
166 - function eval_date($matches)
167 - {
168 - return current_time($matches[1]);
169 - }
170 - }
171 - if (get_option('vdo_annotate_code') != "") {
172 - $current_user = wp_get_current_user();
173 - $vdo_annotate_code = get_option('vdo_annotate_code');
174 - $vdo_annotate_code = apply_filters('vdocipher_annotate_preprocess', $vdo_annotate_code);
175 - if (is_user_logged_in()) {
176 - $vdo_annotate_code = str_replace('{name}', $current_user->display_name, $vdo_annotate_code);
177 - $vdo_annotate_code = str_replace('{email}', $current_user->user_email, $vdo_annotate_code);
178 - $vdo_annotate_code = str_replace('{username}', $current_user->user_login, $vdo_annotate_code);
179 - $vdo_annotate_code = str_replace('{id}', $current_user->ID, $vdo_annotate_code);
180 - }
181 - $vdo_annotate_code = str_replace('{ip}', $_SERVER['REMOTE_ADDR'], $vdo_annotate_code);
182 - $vdo_annotate_code = preg_replace_callback('/{date\.([^}]+)}/', "eval_date", $vdo_annotate_code);
183 - $vdo_annotate_code = apply_filters('vdocipher_annotate_postprocess', $vdo_annotate_code);
184 - // Add annotate code to $otp_post_array, which will be
185 - // converted to Json and then sent as POST body to API endpoint
186 - if (!$no_annotate) {
187 - $otp_post_array["annotate"] = $vdo_annotate_code;
188 - }
189 - }
190 - // OTP is requested via vdo_otp function
191 - $OTP_Response = vdo_otp($video, $otp_post_array);
192 - $OTP = $OTP_Response->otp;
193 - $playbackInfo = $OTP_Response->playbackInfo;
194 -
195 - if (is_null($OTP)) {
196 - return "<span id='vdo$OTP' style='background:#555555;color:#FFFFFF'><h4>Video not found</h4></span>";
197 - }
198 -
199 - // Version, legacy, for flash only
200 - $version = 0;
201 - if (isset($atts['version'])) {
202 - $version = $atts['version'];
203 - }
204 -
205 - // Video Embed version is retrieved from options table or from shortcode attribute
206 - if (!$vdo_version) {
207 - $vdo_embed_version_str = get_option('vdo_embed_version');
208 - } else {
209 - $vdo_embed_version_str = $vdo_version;
210 - }
211 -
212 - // Video Player theme, update and as shortcode attribute
213 - if (!$vdo_theme) {
214 - $vdo_player_theme = get_option('vdo_player_theme');
215 - } else {
216 - $vdo_player_theme = $vdo_theme;
217 - }
218 -
219 - // tech override custom names
220 - switch ($player_tech) {
221 - case "flash":
222 - case "nohtml5":
223 - $player_tech = "*,-dash";
224 - break;
225 - case "noflash":
226 - $player_tech = "*,-hss";
227 - break;
228 - case "nozen":
229 - $player_tech = "*,-zen";
230 - break;
231 - case "noios":
232 - $player_tech = "*,-hlse";
233 - break;
234 - default:
235 - break;
236 - }
237 -
238 - // Old Embed Code
239 - if ($vdo_embed_version_str === '0.5') {
240 - $output = "<div id='vdo$OTP' style='height:$height;width:$width;max-width:100%' ></div>";
241 - $output .= "<script> (function(v,i,d,e,o){v[o]=v[o]||{}; v[o].add = v[o].add || function V(a){".
242 - " (v[o].d=v[o].d||[]).push(a);};";
243 - $output .= "if(!v[o].l) { v[o].l=1*new Date();a=i.createElement(d),m=i.getElementsByTagName(d)[0];a.async=1;".
244 - "a.src=e; m.parentNode.insertBefore(a,m);}";
245 - $output .= " })(window,document,'script','//de122v0opjemw.cloudfront.net/vdo.js','vdo'); vdo.add({ ";
246 - $output .= "o: '$OTP', ";
247 - if ($version == 32) {
248 - $output .= "version: '$version' ";
249 - }
250 - $output .= "}); </script>";
251 - } else {
252 - //New embed code
253 - if ($player_tech === '') {
254 - if (get_option('vdo_watermark_flash_html') === 'flash') {
255 - $player_tech = "*,-dash";
256 - }
257 - }
258 - $techOverrideProperty = '';
259 - if ($player_tech !== '') {
260 - $techOverrideProperty = "techoverride: [" ;
261 - $techArray = explode(',', $player_tech);
262 - for ($i = 0; $i < sizeof($techArray); $i++) {
263 - $techStr = $techArray[$i];
264 - $techOverrideProperty .= "'$techStr'";
265 - if ($i !== sizeof($techArray)-1) {
266 - $techOverrideProperty .= ", ";
267 - }
268 - }
269 - $techOverrideProperty .= "],";
270 - }
271 - $output = <<<END
272 - <div id='vdo$OTP' style='height:$height;width:$width;max-width:100%' ></div>
273 - <script>(function(v,i,d,e,o){v[o]=v[o]||{}; v[o].add = v[o].add || function V(a){
274 - (v[o].d=v[o].d||[]).push(a);};
275 - if(!v[o].l) { v[o].l=1*new Date(); a=i.createElement(d), m=i.getElementsByTagName(d)[0];
276 - a.async=1; a.src=e; m.parentNode.insertBefore(a,m);}
277 - })(window,document,'script','https://d1z78r8i505acl.cloudfront.net/playerAssets/$vdo_embed_version_str/vdo.js','vdo');
278 - vdo.add({
279 - otp: '$OTP',
280 - playbackInfo: '$playbackInfo',
281 - theme: '$vdo_player_theme',
282 - plugins: [{
283 - name: 'keyboard',
284 - options: {
285 - preset: 'default',
286 - bindings: {
287 - 'Left' : (player) => player.seek(player.currentTime - 15),
288 - 'Right' : (player) => player.seek(player.currentTime + 15),
289 - },
290 - }
291 - }],
292 - container: document.querySelector('#vdo$OTP'),
293 - $techOverrideProperty
294 - })
295 - </script>
296 -END;
297 - $speedOptions = esc_attr(get_option('vdo_player_speed'));
298 - $speedPattern = '/^\d.\d{1,2}(,\d.\d{1,2})+$/';
299 - if ($speedOptions !== false && preg_match($speedPattern, $speedOptions)) {
300 - $output .= <<<END
301 - <script>
302 - (function () {
303 - var originalReadyFunction = window.onVdoCipherAPIReady;
304 - // private API; do not use anywhere else; might change without notice
305 - var index = vdo.d.length - 1;
306 - window.onVdoCipherAPIReady = () => {
307 - if (originalReadyFunction) originalReadyFunction();
308 - var v_ = vdo.getObjects()[index];
309 - v_.addEventListener('load', () => {
310 - v_.availablePlaybackRates = [$speedOptions]
311 - });
312 - }
313 - })()
314 - </script>
315 -END;
316 - }
317 - }
318 - return $output;
125 +function vdo_settings_link($links) {
126 + $settings_link = '<a href="options-general.php?page=vdocipher.php">Settings</a>';
127 + array_unshift($links, $settings_link);
128 + return $links;
319 129 }
320 -add_shortcode('vdo', 'vdo_shortcode');
321 -// VdoCipher Shortcode ends
322 130
323 -// adding the Settings link, starts
324 -$plugin = plugin_basename(__FILE__);
325 -add_filter("plugin_action_links_$plugin", 'vdo_settings_link');
326 131
327 -function vdo_settings_link($links)
328 -{
329 - $settings_link = '<a href="options-general.php?page=vdocipher">Settings</a>';
330 - array_unshift($links, $settings_link);
331 - return $links;
132 +/// add the menu item and register settings
133 +if ( is_admin() ){ // admin actions
134 + add_action( 'admin_menu', 'vdo_menu' );
135 + add_action( 'admin_init', 'register_vdo_settings' );
136 +} else {
137 + // non-admin enqueues, actions, and filters
332 138 }
333 -// adding the Settings link, ends
334 -
335 -// add the menu item and register settings (3 functions), starts
336 -if (is_admin()) { // admin actions
337 - add_action('admin_init', 'register_vdo_settings');
338 - add_action('admin_menu', 'vdo_menu');
139 +function vdo_menu(){
140 + add_options_page( 'VdoCipher Options', 'VdoCipher', 'manage_options', 'vdocipher', 'vdo_options' );
339 141 }
340 -function vdo_menu()
341 -{
342 - add_menu_page(
343 - 'VdoCipher Options',
344 - 'VdoCipher',
345 - 'manage_options',
346 - 'vdocipher',
347 - 'vdo_options',
348 - plugin_dir_url(__FILE__).'images/logo.png'
349 - );
142 +function vdo_options(){
143 + if (!get_option('vdo_default_height'))
144 + update_option('vdo_default_height', '360');
145 + if (!get_option('vdo_default_width'))
146 + update_option('vdo_default_width', '640');
147 + $vdo_client_key = get_option('vdo_client_key');
148 + if (!$vdo_client_key && strlen($vdo_client_key) != 64) {
149 + vdo_show_form_client_key();
150 + return "";
151 + }
152 + if ( !current_user_can( 'manage_options' ) ) {
153 + wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
154 + }
155 + include('include/options.php');
350 156 }
351 -
352 -function vdo_options()
353 -{
354 - if (!get_option('vdo_default_height')) {
355 - update_option('vdo_default_height', 'auto');
356 - }
357 - if (!get_option('vdo_default_width')) {
358 - update_option('vdo_default_width', '1280');
359 - }
360 - if (!current_user_can('manage_options')) {
361 - wp_die(__('You do not have sufficient permissions to access this page.'));
362 - }
363 - include('include/options.php');
364 - return "";
157 +function register_vdo_settings() { // whitelist options
158 + register_setting( 'vdo_option-group', 'vdo_client_key' );
159 + register_setting( 'vdo_option-group', 'vdo_default_height' );
160 + register_setting( 'vdo_option-group', 'vdo_default_width' );
161 + register_setting( 'vdo_option-group', 'vdo_annotate_code' );
365 162 }
366 163
367 -function register_vdo_settings()
368 -{
369 - // whitelist options
370 - register_setting('vdo_option-group', 'vdo_client_key');
371 - register_setting('vdo_option-group', 'vdo_default_height');
372 - register_setting('vdo_option-group', 'vdo_default_width');
373 - register_setting('vdo_option-group', 'vdo_annotate_code');
374 - register_setting('vdo_option-group', 'vdo_embed_version');
375 - register_setting('vdo_option-group', 'vdo_player_theme');
376 - register_setting('vdo_option-group', 'vdo_watermark_flash_html');
377 - register_setting('vdo_option-group', 'vdo_plugin_version');
378 - register_setting('vdo_option-group', 'vdo_player_speed');
379 - register_setting('vdo_custom_theme', 'vdo_player_theme_options');
164 +/// adding a section for asking for the client key
165 +function vdo_show_form_client_key(){
166 + include('include/setting_form.php');
380 167 }
381 -// add the menu item and register settings (3 functions), ends
382 -
383 -// Activation Hook starts
384 -function vdo_activate()
385 -{
386 - add_option('vdo_default_height', 'auto');
387 - add_option('vdo_default_width', 1280);
388 - add_option('vdo_embed_version', VDOCIPHER_PLAYER_VERSION);
389 - add_option('vdo_player_theme', VDOCIPHER_DEFAULT_THEME);
390 - add_option('vdo_watermark_flash_html', 'html5');
168 +register_deactivation_hook(__FILE__, 'vdo_deactivate');
169 +function vdo_deactivate(){
170 + delete_option( 'vdo_client_key' );
171 + delete_option('vdo_default_width');
172 + delete_option('vdo_default_height');
173 + delete_option('vdo_annotate_code');
391 174 }
392 -register_activation_hook(__FILE__, 'vdo_activate');
393 -
394 -// Registering and specifying Gutenberg block
395 -function vdo_register_block()
396 -{
397 - if (!function_exists('register_block_type')) {
398 - return ;
399 - }
400 - wp_register_script(
401 - 'vdo-block-script',
402 - plugins_url('/include/block/dist/blocks.build.js', __FILE__),
403 - array('wp-blocks', 'wp-element', 'wp-editor', 'wp-i18n')
404 - );
405 - wp_register_style(
406 - 'vdo-block-base-style',
407 - plugins_url('/include/block/dist/blocks.style.build.css', __FILE__),
408 - array('wp-blocks')
409 - );
410 - wp_register_style(
411 - 'vdo-block-editor-style',
412 - plugins_url('/include/block/dist/blocks.editor.build.css', __FILE__),
413 - array('wp-edit-blocks')
414 - );
415 - register_block_type(
416 - 'vdo/block',
417 - array(
418 - 'editor_script'=>'vdo-block-script',
419 - 'editor_style'=>'vdo-block-editor-style',
420 - 'style'=>'vdo-block-base-style',
421 - 'attributes'=>array(
422 - 'id'=>array(
423 - 'type'=>'string',
424 - ),
425 - 'width'=>array(
426 - 'type'=>'string',
427 - 'default'=>get_option('vdo_default_width')
428 - ),
429 - 'height'=>array(
430 - 'type'=>'string',
431 - 'default'=>get_option('vdo_default_height')
432 - ),
433 - 'vdo_theme'=>array(
434 - 'type'=>'string',
435 - 'default'=>get_option('vdo_player_theme')
436 - ),
437 - 'vdo_version'=>array(
438 - 'type'=>'string',
439 - 'default'=>get_option('vdo_embed_version')
440 - ),
441 - ),
442 - 'render_callback'=>'vdo_shortcode'
443 - )
444 - );
175 +function vdo_activate() {
176 + if (!get_option('vdo_default_height'))
177 + update_option('vdo_default_height', '400');
178 + if (!get_option('vdo_default_width'))
179 + update_option('vdo_default_width', '640');
445 180 }
446 -
447 -add_action('init', 'vdo_register_block');
448 -
449 -// Deactivation Hook starts
450 -function vdo_deactivate()
451 -{
452 - delete_option('vdo_client_key');
453 - delete_option('vdo_default_width');
454 - delete_option('vdo_default_height');
455 - delete_option('vdo_annotate_code');
456 - delete_option('vdo_embed_version');
457 - delete_option('vdo_player_theme');
458 - delete_option('vdo_watermark_flash_html');
459 - delete_option('vdo_player_theme_options');
460 - delete_option('vdo_plugin_version');
461 - delete_option('vdo_player_speed');
181 +register_activation_hook( __FILE__, 'vdo_activate' );
182 +function vdo_admin_notice() {
183 + if((!get_option('vdo_client_key') || strlen(get_option('vdo_client_key')) != 64) && basename($_SERVER['PHP_SELF']) == "plugins.php" ){
184 + ?>
185 + <div class="error">
186 + <p>The VdoCipher plugin is not ready. <a href="options-general.php?page=vdocipher">Click here to configure</a>
187 + </p>
188 + </div>
189 + <?php
190 + }
462 191 }
463 -register_deactivation_hook(__FILE__, 'vdo_deactivate');
464 -
465 -// Admin notice to configure plugin for new installs, starts
466 -function vdo_admin_notice()
467 -{
468 - if ((!get_option('vdo_client_key') || strlen(get_option('vdo_client_key')) != 64)
469 - && basename($_SERVER['PHP_SELF']) == "plugins.php"
470 - ) {
471 - ?>
472 - <div class="error">
473 - <p>
474 - The VdoCipher plugin is not ready.
475 - <a href="options-general.php?page=vdocipher">Click here to configure</a>
476 - </p>
477 - </div>
478 - <?php
479 - }
480 -}
481 -add_action('admin_notices', 'vdo_admin_notice');
192 +add_action( 'admin_notices', 'vdo_admin_notice' );