/** * 同步视频模型栏目 */ public function video_category_tb() { if (module_exists('video')) { $setting = getcache('video', 'video'); pc_base::load_app_class('ku6api', 'video', 0); $ku6api = new ku6api($setting['sn'], $setting['skey']); $ku6api->get_categorys(); } return true; }
function video($field, $value) { $post_f = $field . '_video'; if (isset($_POST[$post_f]) && !empty($_POST[$post_f])) { $value = 1; $video_store_db = pc_base::load_model('video_store_model'); $setting = getcache('video', 'video'); pc_base::load_app_class('ku6api', 'video', 0); $ku6api = new ku6api($setting['sn'], $setting['skey']); pc_base::load_app_class('v', 'video', 0); $v_class = new v($video_store_db); $GLOBALS[$field] = ''; foreach ($_POST[$post_f] as $_k => $v) { if (!$v['vid'] && !$v['videoid']) { unset($_POST[$post_f][$_k]); } $info = array(); if (!$v['title']) { $v['title'] = safe_replace($this->data['title']); } if ($v['vid']) { $info = array('vid' => $v['vid'], 'title' => $v['title'], 'cid' => intval($this->data['catid'])); $info['channelid'] = intval($_POST['channelid']); if ($this->data['keywords']) { $info['tag'] = addslashes($this->data['keywords']); } if ($this->data['description']) { $info['description'] = addslashes($this->data['description']); } $get_data = $ku6api->vms_add($info); if (!$get_data) { continue; } $info['vid'] = $get_data['vid']; $info['addtime'] = SYS_TIME; $info['keywords'] = $info['tag']; unset($info['cid'], $info['tag']); $info['userupload'] = 1; $videoid = $v_class->add($info); $GLOBALS[$field][] = array('videoid' => $videoid, 'listorder' => $v['listorder']); } else { $v_class->edit(array('title' => $v['title']), $v['videoid']); $GLOBALS[$field][] = array('videoid' => $v['videoid'], 'listorder' => $v['listorder']); } } } else { $value = 0; } return $value; }
function video($field, $value, $fieldinfo) { $value_data = ''; //获取flash上传属性 pc_base::load_app_class('ku6api', 'video', 0); $setting = getcache('video', 'video'); if (empty($setting)) { return L('please_input_video_setting'); } $ku6api = new ku6api($setting['sn'], $setting['skey']); $flash_info = $ku6api->flashuploadparam(); //获取上传的视频 $key = 0; $list_str = "<div style='padding:1px'><ul class=\"tbsa\" id=\"video_{$field}_list\">"; if ($value) { $video_content_db = pc_base::load_model('video_content_model'); $video_store_db = pc_base::load_model('video_store_model'); $videos = $video_content_db->select(array('contentid' => $this->id), 'videoid, listorder', '', '`listorder` ASC', '', 'videoid'); if (!empty($videos)) { $videoids = ''; foreach ($videos as $v) { $videoids .= $v['videoid'] . ','; } $videoids = substr($videoids, 0, -1); $result = $video_store_db->select("`videoid` IN({$videoids})", '`videoid`, `title`, `picpath`', '', '', '', 'videoid'); if (is_array($result)) { //首先对$result按照$videos的videoid排序 foreach ($videos as $_vid => $v) { $new_result[] = $result[$_vid]; } unset($result, $_vid, $v); foreach ($new_result as $_k => $r) { $key = $_k + 1; $picpath = $r['picpath'] ? $r['picpath'] : IMG_PATH . 'nopic.gif'; $list_str .= "<li class=\"ac\" id=\"video_{$field}_{$key}\"><div class=\"r1\"><img src=\"{$r['picpath']}\" onerror=\"" . IMG_PATH . "nopic.jpg\" width=\"132\" height=\"75\"><input type='text' name='{$field}_video[{$key}][title]' value='" . $r['title'] . "' class=\"input-text ipt_box\"><input type='hidden' name='{$field}_video[{$key}][videoid]' value='{$r[videoid]}'><div class=\"r2\"><span class=\"l\"><label>" . L('listorder') . "</label><input type='text' name='{$field}_video[{$key}][listorder]' value='" . $videos[$r['videoid']]['listorder'] . "' class=\"input-text\"></span><span class=\"r\"> <a href=\"javascript:remove_div('video_{$field}_{$key}')\">" . L('delete') . "</a></span></li>"; } } } } $list_str .= "</ul></div>"; $data = ''; if (!defined('SWFOBJECT_INIT')) { $data .= '<script type="text/javascript" src="' . JS_PATH . 'video/swfobject2.js"></script>'; $data .= '<script type="text/javascript" src="' . JS_PATH . 'video/vod2ckedit.js"></script>'; define('SWFOBJECT_INIT', 1); $data .= '<SCRIPT LANGUAGE="JavaScript"> <!-- var js4swf = { onInit: function(list) { // 初始化时调用, 若 list.length > 0 代表有可续传文件 // [{file}, {file}] if(list.length > 0) { var length = list.length-1; $("#list_name").html("' . L('file', '', 'video') . '"+list[length].name+"' . L('failed_uplaod_choose_again', '', 'video') . '"); } this.showMessage("init", list); }, onSelect: function(files) { // 选中文件后调用, 返回文件列表 // [{file}, {file}] this.showMessage("select", files); }, onSid: function(evt) { // 获得 sid 后返回, 更新 sid 用 (key, sid, name, type, size) $("#video_title").val(evt.name); var ku6vid = evt.vid; $.get(\'index.php\', {m:\'video\', c:\'vid\', a:\'check\', vid:ku6vid}); this.showMessage("sid", evt); }, onStart: function() { // 开始上传 (选择文件后自动开始) this.showMessage("start"); }, onCancel: function() { // 上传取消事件 this.showMessage("cancel"); }, onProgress: function(evt) { // 上传进度事件 (bytesLoaded, bytesTotal, speed) m=1 时没有这事件 this.showMessage("progress", evt); }, onComplete: function(evt) { // 上传完成事件 (包含文件信息和完成后返回数据(data)) $("#vid").val(evt.vid); var video_num = parseInt($("#key").val()) + 1; var title = $("#video_title").val(); var vid = $("#vid").val(); var html = "<li id=\\"video_' . $field . '_"+video_num+"\\"><div class=\\"r1\\"><img src=\\"' . IMG_PATH . 'nopic.jpg\\" width=\\"132\\" height=\\"75\\"><input type=\\"text\\" name=\\"' . $field . '_video["+video_num+"][title]\\" value=\\""+title+"\\" class=\\"input-text\\"><input type=\\"hidden\\" name=\\"' . $field . '_video["+video_num+"][vid]\\" value=\\""+vid+"\\"><div class=\\"r2\\"><span class=\\"l\\"><label>' . L('listorder') . '</label><input type=\\"text\\" class=\\"input-text\\" name=\\"' . $field . '_video["+video_num+"][listorder]\\" value=\\""+video_num+"\\" ></span><span class=\\"r\\"> <a href=\\"javascript:remove_div(\'video_' . $field . '_"+video_num+"\')\\">' . L('delete') . '</a></span></li>"; $("#video_' . $field . '_list").append(html); $("#key").val(video_num); $("#video_title").val(""); swfobject.embedSWF("' . $flash_info['flashurl'] . '", "ku6uploader", "450", "45", "10.0.0", null, flashvars, params, attributes); //document.getElementById("frm").submit(); this.showMessage("complete", evt); }, onWarn: function(evt) { // 报错事件 (key, message) //this.showMessage("warn", evt); alert(evt.msg); }, showMessage: function() { console.log(arguments); } }; //--> </SCRIPT> <script type="text/javascript"> var flashvars = { m: "1", u: "' . $flash_info['userid'] . '", ctime: "' . $flash_info['passport_ctime'] . '", sig:"' . $flash_info['passport_sig'] . '", c: "vms", t: "1", n: "js4swf", k: "190000" ,ms:"39",s: "8000000"}; var params = { allowScriptAccess: "always" , wmode: "transparent"}; var attributes = { }; //swfobject.embedSWF("http://player.ku6cdn.com/default/podcast/upload/201104261840/ku6uploader.swf", "ku6uploader", "450", "45", "10.0.0", null, flashvars, params, attributes); swfobject.embedSWF("' . $flash_info['flashurl'] . '", "ku6uploader", "450", "45", "10.0.0", null, flashvars, params, attributes); </script>'; } $authkey = upload_key("{$upload_number},{$upload_allowext},{$isselectimage}"); $video_store_sel = defined('IN_ADMIN') ? '<div class="picBut cu video_btn" style="float:right; margin-top:10px;"><a herf="javascript:void(0);" onclick="javascript:video_store_select(\'' . $field . '_videoes\', \'' . L('choose_videoes') . '\',\'video_' . $field . '_list\',change_videoes, \'' . $_GET['pc_hash'] . '\')"> ' . L('videoes_store') . ' </a></div>' : ''; $vms_str = $flash_info['allow_upload_to_vms'] ? '<label class="ib cu" style="width:125px"><input type="radio" name="channelid" value="2">' . L('upload_to_ku6vms', '', 'video') . ' </label>' : ''; return $data . '<input name="info[' . $field . ']" type="hidden" value="1"><input type="hidden" id="key" value="' . $key . '"><fieldset class="blue pad-10"> <legend>' . L('videoes_lists') . '</legend><center><div class="onShow" id="nameTip">' . L('videoes_num') . '</center><div id="videoes" class="picList">' . $list_str . '</div> </fieldset> <table width="100%" border="0" cellspacing="1" class="tbb"> <tbody><tr> <td width="15%" height="40">' . L('select_upload_channel', '', 'video') . '</td> <td height="40"><label class="ib cu" style="width:125px"><input type="radio" name="channelid" value="1" checked> ' . L('upload_to_ku6') . ' </label>' . $vms_str . ' </td> </tr> <tr> <td width="15%" height="40"><div align="right" ><input class="input_style" type="text" value="' . L('video_title', '', 'video') . '" name="video_title" id="video_title" size="10"></div></td> <td height="40"> ' . $video_store_sel . ' <div id="ku6uploader"></div><BR><span id="list_name" style="color:red"></span></td><input type="hidden" id="vid" name="vid" value=""> </tr> </tbody></table>'; }
/** * Function UPLOAD_VIDEO * 用户上传视频 */ public function upload_video() { $memberinfo = $this->memberinfo; $grouplist = getcache('grouplist'); //判断会员组是否允许投稿 if (!$grouplist[$memberinfo['groupid']]['allowpost']) { showmessage(L('member_group') . L('publish_deny'), HTTP_REFERER); } //判断每日投稿数 $this->content_check_db = pc_base::load_model('content_check_model'); $todaytime = strtotime(date('y-m-d', SYS_TIME)); $_username = $this->memberinfo['username']; $allowpostnum = $this->content_check_db->count("`inputtime` > {$todaytime} AND `username`='{$_username}'"); if ($grouplist[$memberinfo['groupid']]['allowpostnum'] > 0 && $allowpostnum >= $grouplist[$memberinfo['groupid']]['allowpostnum']) { showmessage(L('allowpostnum_deny') . $grouplist[$memberinfo['groupid']]['allowpostnum'], HTTP_REFERER); } //加载视频库配置信息 pc_base::load_app_class('ku6api', 'video', 0); $setting = getcache('video', 'video'); if (empty($setting)) { showmessage('上传功能还在开发中,请稍后重试!'); } $ku6api = new ku6api($setting['sn'], $setting['skey']); if (isset($_POST['dosubmit'])) { $_POST['info']['catid'] = isset($_POST['info']['catid']) ? intval($_POST['info']['catid']) : showmessage('请选择栏目!'); $_POST['info']['title'] = isset($_POST['info']['title']) ? safe_replace($_POST['info']['title']) : showmessage('标题不能为空!'); $_POST['info']['keywords'] = isset($_POST['info']['keywords']) ? safe_replace($_POST['info']['keywords']) : ''; $_POST['info']['description'] = isset($_POST['info']['description']) ? safe_replace($_POST['info']['description']) : ''; //查询此模型下的视频字段 $field = get_video_field($_POST['info']['catid']); if (!$field) { showmessage('上传功能还在开发中,请稍后重试!'); } $_POST['info'][$field] = 1; $_POST[$field . '_video'] = array(1 => array('title' => $_POST['info']['title'], 'vid' => $_POST['vid'], 'listorder' => 1)); unset($_POST['vid']); $this->publish(); } else { $categorys = video_categorys(); if (is_array($categorys) && !empty($categorys)) { $cat = array(); $priv_db = pc_base::load_model('category_priv_model'); //加载栏目权限表数据模型 foreach ($categorys as $cid => $c) { if ($c['child'] == 0 && $c['type'] == 0 && !$priv_db->get_one(array('catid' => $cid, 'roleid' => $memberinfo['groupid'], 'is_admin' => 0, 'action' => 'add'))) { unset($categorys[$cid]); } } if (empty($categorys)) { showmessage(L('category') . L('publish_deny'), APP_PATH . 'index.php?m=member'); } foreach ($categorys as $cid => $c) { if ($c['child']) { $ischild = 1; $categorys[$cid]['disabled'] = 'disabled'; } $cat[$cid] = $c['catname']; } if (!$ischild) { $cat_list = form::radio($cat, '', 'name="info[catid]"', '90'); } else { $tree = pc_base::load_sys_class('tree'); $str = "<option value='\$catid' \$selected \$disabled>\$spacer \$catname</option>"; $tree->init($categorys); $string = $tree->get_tree(0, $str); $cat_list = '<select name="info[catid]" id="catid"><option value="0">请选择栏目</option>' . $string . '</select>'; } } $flash_info = $ku6api->flashuploadparam(); //加载视频上传工具信息 include template('member', 'upload_video'); } }
<?php defined('IN_PHPCMS') or exit('No permission resources.'); /** * * 视频状态接收接口 vms系统收到ku6系统中视频状态改变时post到cms系统中,此接口负责接收数据改变视频库中视频的状态 * * @author chenxuewang * @link http://www.phpcms.cn http://www.ku6.cn * @copyright CopyRight (c) 2006-2012 酷溜网(北京)科技有限公司 * @license http://www.phpcms.cn/license/ * --------------------------------------------------------------------- * 参数说明 * vid, picpath, size, timelen, status * * vid,视频vid,视频的唯一的标示符。区分视频 * * picpath 视频缩略图 * * size 视频大小 * * timelen 视频播放时长 * * status 视频目前的状态 */ $video_setting = getcache('video'); pc_base::load_app_func('global', 'video'); pc_base::load_app_class('ku6api', 'video', 0); $ku6api = new ku6api($video_setting['skey'], $video_setting['sn']); $msg = $ku6api->update_video_status_from_vms(); exit($msg);