00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 @require_once('config.inc.php');
00013 require_once('html.inc.php');
00014 require_once('modules.inc.php');
00015
00016
00017 function webvideo_alter_render_early($args)
00018 {
00019 $elem = &$args['elem'];
00020 $obj = $args['obj'];
00021 if (!elem_has_class($elem, 'webvideo')) {
00022 return false;
00023 }
00024
00025 if (empty($obj['webvideo-provider']) || empty($obj['webvideo-id'])) {
00026 return false;
00027 }
00028
00029 $i = elem('iframe');
00030 if ($obj['webvideo-provider'] == 'youtube') {
00031 if (empty($_SERVER['HTTPS'])) {
00032 $src = 'http://';
00033 } else {
00034 $src = 'https://';
00035 }
00036 $src .= 'www.youtube.com/embed/'.$obj['webvideo-id'].'?rel=0';
00037 if (isset($obj['webvideo-autoplay']) && $obj['webvideo-autoplay'] == 'autoplay') {
00038 $src .= '&autoplay=1';
00039 }
00040 if (isset($obj['webvideo-loop']) && $obj['webvideo-loop'] == 'loop') {
00041
00042 $src .= '&loop=1';
00043 }
00044 elem_attr($i, 'src', $src);
00045 elem_add_class($i, 'youtube-player');
00046 } elseif ($obj['webvideo-provider'] == 'vimeo') {
00047 $src = 'http://player.vimeo.com/video/'.$obj['webvideo-id'].'?title=0&byline=0&portrait=0&color=ffffff';
00048 if (isset($obj['webvideo-autoplay']) && $obj['webvideo-autoplay'] == 'autoplay') {
00049 $src .= '&autoplay=1';
00050 }
00051 if (isset($obj['webvideo-loop']) && $obj['webvideo-loop'] == 'loop') {
00052 $src .= '&loop=1';
00053 }
00054 elem_attr($i, 'src', $src);
00055 }
00056
00057
00058 elem_css($i, 'border-width', '0px');
00059 elem_css($i, 'height', '100%');
00060 elem_css($i, 'position', 'absolute');
00061 elem_css($i, 'width', '100%');
00062 elem_append($elem, $i);
00063
00064 if ($args['edit']) {
00065
00066 $h = elem('div');
00067 elem_add_class($h, 'glue-webvideo-handle');
00068 elem_add_class($h, 'glue-ui');
00069 elem_attr($h, 'title', 'drag here');
00070 elem_append($elem, $h);
00071 }
00072
00073 return true;
00074 }
00075
00076
00077 function webvideo_render_object($args)
00078 {
00079 $obj = $args['obj'];
00080 if (!isset($obj['type']) || $obj['type'] != 'webvideo') {
00081 return false;
00082 }
00083
00084 $e = elem('div');
00085 elem_attr($e, 'id', $obj['name']);
00086 elem_add_class($e, 'webvideo');
00087 elem_add_class($e, 'resizable');
00088 elem_add_class($e, 'object');
00089
00090
00091 invoke_hook_first('alter_render_early', 'webvideo', array('obj'=>$obj, 'elem'=>&$e, 'edit'=>$args['edit']));
00092 $html = elem_finalize($e);
00093 invoke_hook_last('alter_render_late', 'webvideo', array('obj'=>$obj, 'html'=>&$html, 'elem'=>$e, 'edit'=>$args['edit']));
00094
00095 return $html;
00096 }
00097
00098
00099 function webvideo_render_page_early($args)
00100 {
00101 if ($args['edit']) {
00102 if (USE_MIN_FILES) {
00103 html_add_js(base_url().'modules/webvideo/webvideo-edit.min.js');
00104 } else {
00105 html_add_js(base_url().'modules/webvideo/webvideo-edit.js');
00106 }
00107 html_add_css(base_url().'modules/webvideo/webvideo-edit.css');
00108 }
00109 }
00110
00111
00112 function webvideo_save_state($args)
00113 {
00114 $elem = $args['elem'];
00115 $obj = $args['obj'];
00116 if (array_shift(elem_classes($elem)) != 'webvideo') {
00117 return false;
00118 }
00119
00120
00121 $obj['type'] = 'webvideo';
00122 $obj['module'] = 'webvideo';
00123
00124
00125 invoke_hook('alter_save', array('obj'=>&$obj, 'elem'=>$elem));
00126
00127 load_modules('glue');
00128 $ret = save_object($obj);
00129 if ($ret['#error']) {
00130 log_msg('error', 'webvideo_save_state: save_object returned '.quot($ret['#data']));
00131 return false;
00132 } else {
00133 return true;
00134 }
00135 }