Server : nginx/1.22.1
System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/www.jkmold.com/phpcms/modules/video/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpcms/modules/video/video.php
<?php 

defined('IN_PHPCMS') or exit('No permission resources.');



/**

 * 

 * ------------------------------------------

 * video video class

 * ------------------------------------------

 * 

 * 视频库管理扩展下的视频管理控制器  控制视频添加、修改、删除及从ku6导入视频等

 * 用户在配置好ku6vms账户后才能使用该模块。

 * 在此扩展下对视频的所有操作通过接口同步到ku6vms下面

 * 

 * @package 	PHPCMS V9.1.16

 * @author		chenxuewang

 * @copyright	CopyRight (c) 2006-2012 上海盛大网络发展有限公司

 * 

 */

pc_base::load_app_class('admin', 'admin', 0);

pc_base::load_sys_class('form', 0, 0);

pc_base::load_app_func('global', 'video');





class video extends admin {

	

	public $db,$module_db;

	

	public function __construct() {

		parent::__construct();

		$this->db = pc_base::load_model('video_store_model');

		$this->module_db = pc_base::load_model('module_model');

		$this->userid = $_SESSION['userid'];

		pc_base::load_app_class('ku6api', 'video', 0);

		pc_base::load_app_class('v', 'video', 0);

		$this->v =  new v($this->db); 

		//获取短信平台配置信息

		$this->setting = getcache('video');

		

		$this->ku6api = new ku6api($this->setting['sn'], $this->setting['skey']);

	}

	

	/**

	 * 

	 * 视频列表

	 */

	public function init() {

		$where = '';

		$page = $_GET['page'];

		$pagesize = 20;

		if($_GET['q']){

			if (isset($_GET['type'])) {

				if ($_GET['type']==1) {

					$where .= ' `videoid`=\''.$_GET['q'].'\'';

				} else {

					$where .= " `title` LIKE '%".$_GET['q']."%'";

				}

			}

 		}

 		

		if (isset($_GET['start_addtime']) && !empty($_GET['start_addtime'])) {

 			$where .= !empty($where) ? ' AND `addtime`>=\''.strtotime($_GET['start_addtime']).'\'' : ' `addtime`>=\''.strtotime($_GET['start_addtime']).'\'';

		}

		if (!empty($_GET['end_addtime'])) {

			$where .= !empty($where) ? ' AND `addtime`<=\''.strtotime($_GET['end_addtime']).'\'' : ' `addtime`<=\''.strtotime($_GET['end_addtime']).'\'';

 		} 

		$userupload = intval($_GET['userupload']);

		if ($userupload) {

			$where .= ' AND `userupload`=1';

		}

 		$infos = $this->db->listinfo($where, 'videoid DESC', $page, $pagesize);

		$pages = $this->db->pages;

		include $this->admin_tpl('video_list');		

	}

	

	/**

	 * 

	 * 视频添加方法

	 */

	public function add() {

		if ($_POST['dosubmit']) {

			//首先处理,提交过来的数据

			$data['vid'] = safe_replace($_POST['vid']);

			if (!$data['vid']) showmessage(L('failed_you_video_uploading'), 'index.php?m=video&c=video&a=add');

			$data['title'] = isset($_POST['title']) && trim($_POST['title']) ? trim($_POST['title']) : showmessage(L('video_title_not_empty'), 'index.php?m=video&c=video&a=add&meunid='.$_GET['meunid']);

			$data['description'] = trim($_POST['description']);

			$data['keywords'] = trim(strip_tags($_POST['keywords']));

			$data['channelid'] = intval($_POST['channelid']);

			//其次向vms post数据,并取得返回值

			$get_data = $this->ku6api->vms_add($data);

			if (!$get_data) {

				showmessage($this->ku6api->error_msg);

			}

			$data['vid'] = $get_data['vid'];

			$data['addtime'] = SYS_TIME;

			

			$data['userupload'] = intval($_POST['userupload']);

			$videoid = $this->v->add($data);

			if ($videoid) {

				showmessage(L('operation_success'), 'index.php?m=video&c=video&a=init&meunid='.$_GET['meunid']);

			} else {

				showmessage(L('operation_failure'), 'index.php?m=video&c=video&a=add&meunid='.$_GET['meunid']);

			}

		} else {

			if((empty($this->setting['sn']) || empty($this->setting['skey'])) && ROUTE_A!='open') {

				header("Location: ".APP_PATH."index.php?m=video&c=video&a=open&meunid=".$_GET['meunid'].'&pc_hash='.$_GET['pc_hash']);

			}

			if(!$this->ku6api->testapi()) {

				header("Location: ".APP_PATH."index.php?m=video&c=video&a=open&meunid=".$_GET['meunid'].'&pc_hash='.$_GET['pc_hash']);

			}

			$flash_info = $this->ku6api->flashuploadparam();

			$show_validator = true;

			include $this->admin_tpl('video_add');

		}

	}

	

	/**

	 * function edit

	 * 视频编辑控制器

	 */

	public function edit() {

		$vid = intval($_GET['vid']);

		if (!$vid) showmessage(L('illegal_parameters'));

		if (isset($_POST['dosubmit'])) {

			//首先处理,提交过来的数据

			$data['vid'] = $_POST['vid'];

			if (!$data['vid']) showmessage(L('failed_you_video_uploading'), 'index.php?m=video&c=video&a=add');

			$data['title'] = isset($_POST['title']) && trim($_POST['title']) ? trim($_POST['title']) : showmessage(L('video_title_not_empty'), 'index.php?m=video&c=video&a=add&meunid='.$_GET['meunid']);

			$data['description'] = trim($_POST['description']);

			$data['keywords'] = trim(strip_tags($_POST['keywords']));

			//其次向vms post数据,并取得返回值

			if ($this->ku6api->vms_edit($data)) {

				$return = $this->v->edit($data, $vid);

				if ($return) showmessage(L('operation_success'), 'index.php?m=video&c=video&a=init');

				else showmessage(L('operation_failure'), 'index.php?m=video&c=video&a=edit&vid='.$vid.'&menuid='.$_GET['menuid']);

			} else {

				showmessage($this->ku6api->error_msg, 'index.php?m=video&c=video&a=edit&vid='.$vid.'&menuid='.$_GET['menuid']);

			}

		} else {

			$show_validator = true;

			$info = $this->db->get_one(array('videoid'=>$vid));

			include $this->admin_tpl('video_edit');

		}

	}

	

	/**

	 * function delete

	 * 删除视频控制器

	 */

	public function delete() {

		$vid = $_GET['vid'];

		$r = $this->db->get_one(array('videoid'=>$vid), 'vid');

		if (!$r) showmessage(L('video_not_exist_or_deleted'));

		if (!$this->ku6api->delete_v($r['vid'])) showmessage(L('operation_failure'), 'index.php?m=video&c=video&a=init&meunid='.$_GET['meunid']);

		$this->v->del_video($vid);	

		showmessage(L('success_next_update_content'), 'index.php?m=video&c=video&a=public_update_content&vid='.$vid.'&meunid='.$_GET['meunid']);

	}



	/**

	 * function delete_all

	 * 批量删除视频

	 * @删除视频时,注意同时删除视频库内容对应关系表中的相关数据,因为操作时间限制,无法同时更新相关的内容。删除完成时需要提醒用户

	 */

	public function delete_all() {

		if (isset($_GET['dosubmit'])) {

			$ids = $_POST['ids'];

			if (is_array($ids)) {

				$video_content_db = pc_base::load_model('video_content_model');

				foreach ($ids as $videoid) {

					$videoid = intval($videoid);

					$r = $this->db->get_one(array('videoid'=>$videoid), 'vid');

					if (!$this->ku6api->delete_v($r['vid'])) continue;

					$this->v->del_video($videoid);

					$video_content_db->delete(array('videoid'=>$videoid));

				}

			}

			showmessage(L('succfull_create_index'));

		}

	}

	

	/**

	 * Function UPDATE_CONTENT

	 * 更新与此视频关联的内容模型

	 * @param int $vid 视频库videoid字段

	 */

	public function public_update_content() {

		$videoid = intval($_GET['vid']);

		$video_content_db = pc_base::load_model('video_content_model');

		$meunid = intval($_GET['meunid']);

		$pagesize = 10;

		$result = $video_content_db->select(array('videoid'=>$videoid), '*', $pagesize);

		if (!$result || empty($result)) {

			showmessage(L('update_complete'), 'index.php?m=video&c=video&a=init&meunid='.$meunid);

		}

		//加载更新html类

		$html = pc_base::load_app_class('html', 'content');

		$content_db = pc_base::load_model('content_model');

		$url = pc_base::load_app_class('url', 'content');

		foreach ($result as $rs) {

			$modelid = intval($rs['modelid']);

			$contentid = intval($rs['contentid']);

			$video_content_db->delete(array('videoid'=>$videoid, 'contentid'=>$contentid, 'modelid'=>$modelid));

			$content_db->set_model($modelid);

			$table_name = $content_db->table_name;

			$r1 = $content_db->get_one(array('id'=>$contentid));

			if ($this->ishtml($r1['catid'])) {

				$content_db->table_name = $table_name.'_data';

				$r2 = $content_db->get_one(array('id'=>$contentid));

				$r = array_merge($r1, $r2);unset($r1, $r2);

				if($r['upgrade']) {

					$urls[1] = $r['url'];

				} else {

					$urls = $url->show($r['id'], '', $r['catid'], $r['inputtime']);

				}

				$html->show($urls[1], $r, 0, 'edit');

			} else {

				continue;

			}

		}

		showmessage(L('part_update_complete'), 'index.php?m=video&c=video&a=public_update_content&vid='.$videoid.'&meunid='.$meunid);

	}

	

	/**

	 * Function ISHTML

	 * 判断内容是否需要生成静态

	 * @param int $catid 栏目id

	 */

	private function ishtml($catid = 0) {

		static $ishtml, $catid_siteid;

		if (!$ishtml[$catid]) {

			if (!$catid_siteid) {

				$catid_siteid = getcache('category_content', 'commons');

			} else {

				$siteid = $catid_siteid[$catid];

			}

			$siteid = $catid_siteid[$catid];

			$categorys = getcache('category_content_'.$siteid, 'commons');

			$ishtml[$catid] = $categorys[$catid]['content_ishtml'];

		}

		return $ishtml[$catid];

	}

	

	/**

	 * 

	 * 配置视频参数。包括身份识别码、加密密钥、调用方案编号等信息

	 */

	public function setting() {

		if(isset($_POST['dosubmit'])) {

			$setting = array2string($_POST['setting']);

			setcache('video', $_POST['setting']);

			$this->ku6api->ku6api_skey = $_POST['setting']['skey'];

			$this->ku6api->ku6api_sn = $_POST['setting']['sn'];

			$this->module_db->update(array('setting'=>$setting),array('module'=>'video'));

			if(!$this->ku6api->testapi()) {

				showmessage(L('vms_sn_skey_error'),'?m=video&c=video&a=open');

			}

			showmessage(L('operation_success'),'?m=video&c=video&a=open');

		} else {

			$show_pc_hash = '';

			$v_model_categorys = $this->ku6api->get_categorys(true, $this->setting['catid']);

			$category_list = '<select name="setting[catid]" id="catid"><option value="0">'.L('please_choose_catid').'</option>'.$v_model_categorys.'</select>';

			include $this->admin_tpl('video_open');

		}

	}

	

	//获取SKEY ,SN 写入缓存

	public function set_video_setting(){

		$array['skey'] = $_GET['skey'];

		$array['sn'] = $_GET['sn'];

		if(empty($_GET['skey']) || empty($_GET['sn'])){

			showmessage(L('操作失败!正在返回!'),'?m=admin');

		}

		$setting = array2string($array);

		setcache('video', $array);

		$this->ku6api->ku6api_skey = $_GET['skey'];

		$this->ku6api->ku6api_sn = $_GET['sn'];

		$this->module_db->update(array('setting'=>$setting),array('module'=>'video'));

		showmessage(L('operation_success'),'?m=admin');

	}

	

	/**

	 * function get_pos 获取推荐位

	 * 根据栏目获取推荐位id,并生成form的select形式

	 */

	public function public_get_pos () {

		$catid = intval($_GET['catid']);

		if (!$catid) exit(0);

		$position = getcache('position','commons');

		if(empty($position)) exit;

		$category = pc_base::load_model('category_model');

		$info = $category->get_one(array('catid'=>$catid), 'modelid, arrchildid');

		if (!$info) exit(0);

		$modelid = $info['modelid'];

		$array = array();

		foreach($position as $_key=>$_value) {

			if($_value['modelid'] && ($_value['modelid'] !=  $modelid) || ($_value['catid'] && strpos(','.$info['arrchildid'].',',','.$catid.',')===false)) continue;

			$array[$_key] = $_value['name'];

		}

		$data = form::select($array, '', 'name="sub[posid]"', L('please_select'));

		exit($data);

	}

	

	/**

	 * Function subscribe_list 获取订阅列表

	 * 获取订阅列表

	 */

	public function subscribe_list() {

		if (isset($_GET['dosubmit'])) {

			if (is_array($_GET['sub']) && !empty($_GET['sub'])) {

				$sub = $_GET['sub'];

				if (!$sub['channelid'] || !$sub['catid']) showmessage(L('please_choose_catid_and_channel'));

				$sub['catid'] = intval($sub['catid']);

				$sub['posid'] = intval($sub['posid']);

				$result = $this->ku6api->subscribe($sub);

				if ($result['check'] == 6) showmessage(L('subscribe_for_default')); 

				if ($result['code'] == 200) showmessage(L('operation_success'), 'index.php?m=video&c=video&a=subscribe_list');

				else showmessage(L('subscribe_set_failed'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid']);

			} else {

				showmessage(L('please_choose_catid_and_channel'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid']);

			}

		} else {

			$type = isset($_GET['type']) ? intval($_GET['type']) : 1;

			if((empty($this->setting['sn']) || empty($this->setting['skey'])) && ROUTE_A!='open') {

				header("Location: ".APP_PATH."index.php?m=video&c=video&a=open&meunid=".$_GET['meunid'].'&pc_hash='.$_GET['pc_hash']);

			}

			if(!$this->ku6api->testapi()) {

				header("Location: ".APP_PATH."index.php?m=video&c=video&a=open&meunid=".$_GET['meunid'].'&pc_hash='.$_GET['pc_hash']);

			}

			//获取用户订阅信息

			$v_model_categorys = $this->ku6api->get_categorys(true);

			$category_list = '<select name="sub[catid]" id="catid" onchange="select_pos(this)"><option value="0">'.L('please_choose_catid').'</option>'.$v_model_categorys.'</select>';

			$siteid = get_siteid();

			$CATEGORYS = getcache('category_content_'.$siteid, 'commons');

			$ku6_channels = $this->ku6api->get_subscribetype();

			$subscribes = $this->ku6api->get_subscribe();

			$usersubscribes = $this->ku6api->get_usersubscribe();

			$position = getcache('position','commons');

			

			include $this->admin_tpl('subscribe_list');

		}

	}

	

	/**

	 * Function Sub_DEl 删除订阅

	 * 用户删除订阅方法

	 */

	public function sub_del() {

		$id = intval($_GET['id']);

		if (!$id) showmessage(L('illegal_parameters'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid']);

		if ($this->ku6api->sub_del($id)) showmessage(L('operation_success'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid']);

		else showmessage(L('delete_failed'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid']);

	}

	

	/**

	 * Function sub_del 删除订阅用户

	 * 删除订阅用户方法

	 */

	public function user_sub_del() {

		$id = intval($_GET['id']);

		$type = intval($_GET['type']);

		if (!$id) showmessage(L('illegal_parameters'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid']);

		if ($this->ku6api->user_sub_del($id)) showmessage(L('operation_success'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid'].'&type='.$type);

		else showmessage(L('delete_failed'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid'].'&type='.$type);

	}	

	

	/**

	 * Function video2content 视频库中视频

	 * 用户选择在视频中选择已上传的视频加入到视频字段或编辑器中

	 */

	public function video2content () {

		$page = max(intval($_GET['page']), 1);

		$pagesize = isset($_GET['pagesize']) ? intval($_GET['pagesize']) : 8;

		$where = '`status` = 21';

		if (isset($_GET['name']) && !empty($_GET['name'])) {

			$title = safe_replace($_GET['name']);

			$where .= " AND `title` LIKE '%$title%'";

		}

		if (isset($_GET['starttime']) && !empty($_GET['starttime'])) {

			$addtime = strtotime($_GET['starttime']);

			$where .= " AND `addtime`>='$addtime'";

		}

		if (isset($_GET['endtime']) && !empty($_GET['endtime'])) {

			$endtime = strtotime($_GET['endtime']);

			$where .= " AND `addtime` <= '$endtime'";

		}

		if ($_GET['userupload']) {

			$userupload = intval($_GET['userupload']);

			$where .= " AND `userupload`=1";

		}

		$show_header = 1;

		$infos = $this->db->listinfo($where, '`videoid` DESC', $page, $pagesize, '', 5);

		$pages = $this->db->pages;

		include $this->admin_tpl('album_list');

	}

	

	/**

	 * 设置swfupload上传的json格式cookie

	 */

	public function swfupload_json() {

		$arr['id'] = $_GET['id'];

		$arr['src'] = trim($_GET['src']);

		$arr['title'] = urlencode($_GET['title']);

		$json_str = json_encode($arr);

		$att_arr_exist = param::get_cookie('att_json');

		$att_arr_exist_tmp = explode('||', $att_arr_exist);

		if(is_array($att_arr_exist_tmp) && in_array($json_str, $att_arr_exist_tmp)) {

			return true;

		} else {

			$json_str = $att_arr_exist ? $att_arr_exist.'||'.$json_str : $json_str;

			param::set_cookie('att_json',$json_str);

			return true;			

		}

	}

	

	/**

	 * 删除swfupload上传的json格式cookie

	 */	

	public function swfupload_json_del() {

		$arr['aid'] = intval($_GET['aid']);

		$arr['src'] = trim($_GET['src']);

		$arr['filename'] = urlencode($_GET['filename']);

		$json_str = json_encode($arr);

		$att_arr_exist = param::get_cookie('att_json');

		$att_arr_exist = str_replace(array($json_str,'||||'), array('','||'), $att_arr_exist);

		$att_arr_exist = preg_replace('/^\|\|||\|\|$/i', '', $att_arr_exist);

		param::set_cookie('att_json',$att_arr_exist);

	}



	/**

	* 导入KU6视频

	*/

	public function import_ku6video(){

		if(!$this->ku6api->testapi()) {

			header("Location: ".APP_PATH."index.php?m=video&c=video&a=open&meunid=".$_GET['meunid'].'&pc_hash='.$_GET['pc_hash']);

		}

		pc_base::load_sys_class('format','',0);

		$do = isset($_GET['do']) ? $_GET['do'] : '';

		$ku6url = isset($_GET['ku6url']) ? $_GET['ku6url'] : '';

		$time = isset($_GET['time']) ? $_GET['time'] : '';

		$keyword = isset($_GET['keyword']) ? $_GET['keyword'] : '*:*';

		$len = isset($_GET['len']) ? $_GET['len'] : '';//时长s:小于4分钟 I:大于4分钟

		$fenlei = isset($_GET['fenlei']) ? $_GET['fenlei'] : '*:*';//搜索分类

		$srctype = isset($_GET['srctype']) ? $_GET['srctype'] : 0;//视频质量 

		$videotime = isset($_GET['videotime']) ? $_GET['videotime'] : 0;//视频时长 

 		$page = isset($_GET['page']) ? $_GET['page'] : '1';

		$pagesize = 20;

 		$list = array();

		

		if(CHARSET!='utf-8'){

			$keyword = iconv('gbk', 'utf-8', $keyword);

		}

		$keyword = urlencode($keyword);

		

  		$data = $this->ku6api->Ku6search($keyword,$pagesize,$page,$srctype,$len,$fenlei,$videotime); 

 		$totals = $data['data']['total'];

		$list = $data['data']['list'];

		//获取视频大小接口

		if(isset($list) && is_array($list) && count($list) > 0) {

			foreach ($list as $key=>$v) {

				$spaceurl = "http://v.ku6.com/fetchVideo4Player/1/$v[vid].html";

				$spacejson = file_get_contents($spaceurl);

				$space = json_decode($spacejson, 1);	 

				$list[$key]['size'] = $space['data']['videosize'];

				$list[$key]['uploadTime']  = substr($v['uploadtime'], 0, 10); 

				//判断那些已经导入过本机系统 $vidstr .= ',\''.$v['vid'].'\'';

			}

		}   

		//选择站点和栏目进行导入

		$sitelist = getcache('sitelist','commons');

		

		//分类数组

		$fenlei_array = array('101000'=>'资讯','102000'=>'体育','103000'=>'娱乐','104000'=>'电影','105000'=>'原创','106000'=>'广告','107000'=>'美女','108000'=>'搞笑','109000'=>'游戏','110000'=>'动漫','111000'=>'教育','113000'=>'生活','114000'=>'汽车','115000'=>'房产','116000'=>'音乐','117000'=>'电视','118000'=>'综艺','125000'=>'女生','126000'=>'记录','127000'=>'科技','190000'=>'其它');

		//视频质量

		$srctype_array = array('1'=>'超清','2'=>'高清','3'=>'标清','4'=>'流畅');

 		$videotime_array = array('1'=>'短视频','2'=>'普通视频','3'=>'中视频','4'=>'长视频');

		

		//本机视频栏目

		$categoryrr = $this->get_category();

  		include $this->admin_tpl('import_ku6video');   

 	}



	/**

	* 搜索视频浏览 

	*/

	public function preview_ku6video(){

		$ku6vid = $_GET['ku6vid'];

 		$data = $this->ku6api->Preview($ku6vid);

   		include $this->admin_tpl('priview_ku6video');

	}

	

	/**

	* 获取站点栏目数据

	*/

	public function get_category(){

  		$siteid = get_siteid();//直取SITEID值

		$sitemodel_field = pc_base::load_model('sitemodel_field_model');

		$result = $sitemodel_field->select(array('formtype'=>'video', 'siteid'=>$siteid), 'modelid');

		if (is_array($result)) {

			$models = '';

			foreach ($result as $r) {

				$models .= $r['modelid'].',';

			}

		}

		$models = substr(trim($models), 0, -1);

		$cat_db = pc_base::load_model('category_model');

		if ($models) {

			$where = '`modelid` IN ('.$models.') AND `type`=0 AND `siteid`=\''.$siteid.'\'';

			$result = $cat_db->select($where, '`catid`, `catname`, `parentid`, `siteid`, `child`');

			if (is_array($result)) { 

				$data = $return_data = $categorys = array(); 

				$tree = pc_base::load_sys_class('tree');   

				$data = $return_data = $categorys = array(); 

				$tree = pc_base::load_sys_class('tree');//factory::load_class('tree', 'utils');

 				$string = '<select name="select_category" id="select_category" onchange="select_pos(this)">';

				$string .= "<option value=0>请选择分类</option>";

				foreach ($result as $r) {

					$r['html_disabled'] = "";

					if ($r['child']) {

						$r['html_disabled'] = "disabled";

					} 

					$categorys[$r['catid']] = $r;

				}

				$str  = $str2 = "<option value=\$catid \$html_disabled \$selected>\$spacer \$catname</option>"; 			     $tree->init($categorys);

				$string .= $tree->get_tree_category(0, $str, $str2);

 				$string .= '</select>';

				return $string;//不使用前台js调用,使用return ;

			}

 		}

		return array();

	}



	public function public_view_video() {

		$id = intval($_GET['id']);

		if (!$id) showmessage('请选择要浏览的视频!');

		$r = $this->db->get_one(array('videoid'=>$id), 'vid,channelid');

		$video_cache = $this->setting;

		$show_header = 1;

		include $this->admin_tpl('view_video');

	}



	/**

	 *@ function public_check_status

	 *@ 手动检查视频状态 

	 */

	public function public_check_status() {

		$id = intval($_GET['id']);

		if (!$id) exit('1');

		$r = $this->db->get_one(array('videoid'=>$id), 'vid,channelid,status,picpath');

		if (!$r) exit('2');

		$return = $this->ku6api->check_status($r['vid']);

		if (!$return) exit('3');

		

		$status_arr = pc_base::load_config('ku6status_config');

		if ($return['ku6status'] != $r['status']) {

			$this->db->update(array('status'=>$return['ku6status'], 'picpath'=>$return['picpath']), array('videoid'=>$id));

			

			if ($return['ku6status']==21) {

				/**

				 * 加载视频内容对应关系数据模型,检索与删除视频相关的内容。

				 * 在对应关系表中找出对应的内容id,并更新内容的静态页

				 */

				$video_content_db = pc_base::load_model('video_content_model');

				$result = $video_content_db->select(array('videoid'=>$id));

				if (is_array($result) && !empty($result)) {

					//加载更新html类

					$html = pc_base::load_app_class('html', 'content');

					$content_db = pc_base::load_model('content_model');

					$content_check_db = pc_base::load_model('content_check_model');

					$url = pc_base::load_app_class('url', 'content');

					foreach ($result as $rs) {

						$modelid = intval($rs['modelid']);

						$contentid = intval($rs['contentid']);

						$content_db->set_model($modelid);

						$c_info = $content_db->get_one(array('id'=>$contentid), 'thumb');



						$where = array('status'=>99);

						if (!$c_info['thumb']) $where['thumb'] = $return['picpath'];

						$content_db->update($where, array('id'=>$contentid));

						$checkid = 'c-'.$contentid.'-'.$modelid;

						$content_check_db->delete(array('checkid'=>$checkid));

						$table_name = $content_db->table_name;

						$r1 = $content_db->get_one(array('id'=>$contentid));

						/**

						 * 判断如果内容页生成了静态页,则更新静态页

						 */

						if (ishtml($r1['catid'])) {

							$content_db->table_name = $table_name.'_data';

							$r2 = $content_db->get_one(array('id'=>$contentid));

							$r = array_merge($r1, $r2);unset($r1, $r2);

							if($r['upgrade']) {

								$urls[1] = $r['url'];

							} else {

								$urls = $url->show($r['id'], '', $r['catid'], $r['inputtime']);

							}

							$html->show($urls[1], $r, 0, 'edit');

							

						} else {

							continue;

						}

					}

				}

				$msg_r = json_encode(array('change'=>1, 'status'=>21, 'statusname'=>iconv(CHARSET, 'UTF-8', $status_arr[$return['ku6status']])));

			} else {

				$msg_r = json_encode(array('change'=>1, 'status'=>$return['ku6status'], 'statusname'=>iconv(CHARSET, 'UTF-8', $status_arr[$return['ku6status']])));

			}

		} else if (!$r['picpath'] && $return['picpath']) {

			$this->db->update(array('picpath'=>$return['picpath']), array('videoid'=>$id));

			$msg_r = json_encode(array('change'=>1, 'status'=>$return['ku6status'], 'statusname'=>iconv(CHARSET, 'UTF-8', $status_arr[$return['ku6status']])));

		}else {

			$msg_r = json_encode(array('change'=>0));

		}	

		exit($msg_r);	

	}

	

	/***********2013.1.15添加**********/

	

	/** 

	 * 后台申请开通视频聚合功能。服务器自动返回配置视频参数。包括身份识别码、加密密钥、调用方案编号等信息

	 */

	public function open() {   

		$this->setting = getcache('video');

 		if(empty($this->setting['skey']) || empty($this->setting['sn'])){

			//配置不存在,则先验证域名是否存在,如果存在,直接跳去验证页面

			$check_user_back = APP_PATH . 'api.php?op=video_api';

			$return_check = $this->ku6api->check_user_back($check_user_back);

			if ($return_check==200 && SITE_URL != 'localhost' && !preg_match("/^(127|192|10)\.([1-2]?)([0-9]?)([0-9])\.([1-2]?)([0-9]?)([0-9])\.([1-2]?)([0-9]?)([0-9])/", SITE_URL)) {//存在同域名记录,进行email验证

				header("Location: ".APP_PATH."index.php?m=video&c=video&a=check_user_back&meunid=".$_GET['meunid'].'&pc_hash='.$_GET['pc_hash']);

				exit;

			}

			

			//配置不存在,跳转至盛大通行证登录页面 

			$user_back = APP_PATH . 'api.php?op=video_api';

			$user_back = str_replace("/","__",$user_back);

			$user_back = urlencode(str_replace(".php","@php",$user_back));

			include $this->admin_tpl('video_open');

		} else {

			$config_flag = false;

			if($this->ku6api->testapi()) {

				$config_flag = true;

			}

			include $this->admin_tpl('video_setting');

		} 

	}

	

	//完善详细资料,通过API接口完善资料,获取 SKEY,SN 

	public function complete_info() { 

 		if(isset($_POST['dosubmit'])) {

			$info = safe_replace($_POST['info']); //包含隐藏的uid

			if (CHARSET == 'gbk') {

				$info = array_iconv($info);

			}

			//提交数据,获取SKEY,SN  

			$return_skey_sn = $this->ku6api->complete_info($info);

 			if(is_array($return_skey_sn) && !empty($return_skey_sn)){

				$setting = array2string($return_skey_sn);

				setcache('video', $return_skey_sn);

				$this->ku6api->ku6api_skey = $return_skey_sn['skey'];

				$this->ku6api->ku6api_sn = $return_skey_sn['sn'];

				$this->module_db->update(array('setting'=>$setting),array('module'=>'video'));

				showmessage('资料提交成功,已成功开通视频应用,正在返回!','?m=video&c=video&a=open');

			}else{

				echo $return_skey_sn;exit;

			showmessage('资料提交失败,请联系商务人员处理!','?m=video&c=video&a=open');

			} 

		}else{ 

			//如果传递uid,snid则为登录通行证成功,返回完善资料,没有传递则为自行填写资料申请开通视频应用

			$uid = intval($_GET['uid']);

			$snid = $_GET['snid'];

			if(empty($this->setting['skey']) || empty($this->setting['sn'])){

				if(!$snid) showmessage("请先登录盛大通行证");

			}	

			//如果skey,sn存在,通过接口调取用户完善的资料,再提交为修改操作

			$skey_sn_array = getcache('video');

			if(!empty($skey_sn_array['skey']) && !empty($skey_sn_array['sn'])){ 

   				$return_info = $this->ku6api->Get_Complete_Info($skey_sn_array);

				if (CHARSET == 'gbk') {

					$return_info = array_iconv($return_info,'utf-8','gbk');

				} 

  				$complete_info = is_array($return_info) ? $return_info : array(); 

				$uid = $complete_info['uid'];

				$snid = $complete_info['sndaid'];

			}else{

				//没有配置则判断域名在聚合平台是否已经存在,如果存在进行验证获取SKEY

				$check_user_back = APP_PATH . 'api.php?op=video_api';

				$return_check = $this->ku6api->check_user_back($check_user_back);

				if($return_check==200){//存在同域名记录,进行email验证

					showmessage('域名已经存在,请验证开通视频应用!','?m=video&c=video&a=check_user_back');

				}

 				$complete_info = array();	

			}

			$show_dialog = 1;

			$show_header = $show_scroll = true;

			include $this->admin_tpl('video_complete_info');

		}

	}

	

	//Email 验证老网站,获取sn,skey

	public function check_user_back(){

		if(isset($_POST['dosubmit_new'])) {

			$data['email'] = $_POST['email'];

			$data['code'] = $_POST['code'];

			if(empty($data['email']) || empty($data['code'])) return false;

			$return_skey_sn = $this->ku6api->check_email_code($data);

			if(is_array($return_skey_sn) && !empty($return_skey_sn)){

				$setting = array2string($return_skey_sn);

				setcache('video', $return_skey_sn);

				$this->ku6api->ku6api_skey = $return_skey_sn['skey'];

				$this->ku6api->ku6api_sn = $return_skey_sn['sn'];

				$this->module_db->update(array('setting'=>$setting),array('module'=>'video'));

				showmessage('验证成功,已成功开通视频应用,正在返回!','?m=video&c=video&a=open');

			}else{

				showmessage('验证失败,请返回!',HTTP_REFERER);

			}  

		}else{

			$show_dialog = 1;

			$show_header = $show_scroll = true;

			include $this->admin_tpl('video_check_user_back');

		}

	}

	

	//由平台发送验证码到指定信箱

	public function send_code(){ 

		$data['email'] = $_GET['email'];

		$data['url'] = APP_PATH . 'api.php?op=video_api';

 		$return = $this->ku6api->send_code($data);

 		if($return['code']=='200'){

			echo 1;

		}else{

			echo 2;

		}

	}

	

	

	//获取传递的skey ,sn 写入缓存

	public function get_skey_sn(){

		$skey = $_REQUEST['skey'];

		$sn = $_REQUEST['sn'];

		if(empty($skey) || empty($sn)){

			showmessage('视频配置信息不能为空',HTTP_REFERER);

		}

		$setting_arr['skey'] = $skey;

		$setting_arr['sn'] = $sn;

		$setting = array2string($setting_arr);

		setcache('video', $setting_arr);//写缓存  

		$this->module_db->update(array('setting'=>$setting),array('module'=>'video'));//更新模版数据

		//验证配置

		$this->ku6api->ku6api_skey = $skey;

		$this->ku6api->ku6api_sn = $sn;

		if(!$this->ku6api->testapi()) {

			showmessage(L('vms_sn_skey_error'),'?m=video&c=video&a=open');

		}

		showmessage(L('operation_success'),'?m=video&c=video&a=open');

	}

	

	public function open_setting() {

		if(isset($_POST['dosubmit'])) {

			$setting = array2string($_POST['setting']);

			setcache('video', $_POST['setting']);

			$this->ku6api->ku6api_skey = $_POST['setting']['skey'];

			$this->ku6api->ku6api_sn = $_POST['setting']['sn'];

			$this->module_db->update(array('setting'=>$setting),array('module'=>'video'));

			if(!$this->ku6api->testapi()) {

				showmessage(L('vms_sn_skey_error'),HTTP_REFERER);

			}

			showmessage(L('operation_success'),HTTP_REFERER);

		} else {

			$show_pc_hash = '';

			$v_model_categorys = $this->ku6api->get_categorys(true, $this->setting['catid']);

			$category_list = '<select name="setting[catid]" id="catid"><option value="0">'.L('please_choose_catid').'</option>'.$v_model_categorys.'</select>';

			include $this->admin_tpl('video_opensetting');

		}

	}

	

	//获取userid下的视频

	public function ajax_getuseridvideo(){

		$userid = intval($_GET['userid']);

		if (!$userid) exit(0);

		$url = "http://v.ku6.com/video.htm?t=list&uid=" . $userid . "&p=1";

		$data = @file_get_contents($url);

		$data = json_decode($data, 1);

		$list = $data['data'];

		if (is_array($list)) {

			$sub['userid'] = $userid;

			$result = $this->ku6api->checkusersubscribe($sub);

			$status = $result['status'];

			exit($status);

		} 

		exit('0');

	}



	/**

	 * 订阅用户视频

	 */

	public function subscribe_uservideo() {

		if (is_array($_GET['sub']) && !empty($_GET['sub'])) {

			$sub = $_GET['sub'];

			if (!$sub['userid'] || !$sub['catid']) showmessage(L('please_choose_catid_and_channel'));

			$sub['catid'] = intval($sub['catid']);

			$sub['posid'] = intval($sub['posid']);

			$result = $this->ku6api->usersubscribe($sub);

			if ($result['check'] == 6) showmessage(L('subscribe_for_default')); 

			if ($result['code'] == 200) showmessage(L('operation_success'), 'index.php?m=video&c=video&a=subscribe_list&type=2');

			else showmessage(L('subscribe_set_failed'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid']);

		} else {

			showmessage(L('please_choose_catid_and_iputuserid'), 'index.php?m=video&c=video&a=subscribe_list&meunid='.$_GET['meunid'].'&type=2');

		}

	}	

	

}



?>