import.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. /**
  4. *
  5. * ------------------------------------------
  6. * video import class
  7. * ------------------------------------------
  8. *
  9. * 导入KU6视频
  10. *
  11. * @copyright CopyRight (c) 2006-2012 上海盛大网络发展有限公司
  12. *
  13. */
  14. pc_base::load_app_class('admin', 'admin', 0);
  15. pc_base::load_sys_class('form', 0, 0);
  16. pc_base::load_app_func('global', 'video');
  17. pc_base::load_sys_class('push_factory', '', 0);
  18. class import extends admin {
  19. public $db,$module_db;
  20. public function __construct() {
  21. parent::__construct();
  22. $this->db = pc_base::load_model('video_store_model');
  23. $this->module_db = pc_base::load_model('module_model');
  24. $this->userid = $_SESSION['userid'];
  25. pc_base::load_app_class('ku6api', 'video', 0);
  26. pc_base::load_app_class('v', 'video', 0);
  27. $this->v = new v($this->db);
  28. //获取短信平台配置信息
  29. $this->setting = getcache('video');
  30. if(empty($this->setting) && ROUTE_A!='setting') {
  31. showmessage(L('video_setting_not_succfull'), 'index.php?m=video&c=video&a=setting&meunid='.$_GET['meunid']);
  32. }
  33. $this->ku6api = new ku6api($this->setting['sn'], $this->setting['skey']);
  34. }
  35. /**
  36. * 执行视频导入
  37. */
  38. public function doimport(){
  39. $importdata = $_POST['importdata'];
  40. $select_category = intval($_POST['select_category']);//栏目ID
  41. $is_category = intval($_POST['is_category']);//是否导入栏目
  42. $siteid = get_siteid();
  43. $ids = $_POST['ids'];
  44. $datas = array();
  45. if(is_array($ids)){
  46. foreach ($_POST['importdata'] as $vv) {//重组勾选数据
  47. if(in_array($vv['vid'], $ids)) {
  48. $datas[] = $vv;
  49. }
  50. }
  51. $video_store_db = pc_base::load_model('video_store_model');
  52. $content_model = pc_base::load_model('content_model');
  53. $content_model->set_catid($select_category);
  54. $CATEGORYS = getcache('category_content_'.$siteid,'commons');
  55. $modelid = $CATEGORYS[$select_category]['modelid'];// 所选视频栏目对应的modelid
  56. $model_field = pc_base::load_model('sitemodel_field_model');
  57. $r = $model_field->get_one(array('modelid'=>$modelid, 'formtype'=>'video'), 'field');
  58. $fieldname = $r['field'];//查出视频字段
  59. //导入推荐位使用
  60. $this->push = push_factory::get_instance()->get_api('admin');
  61. //循环勾选数据,进行请求ku6vms入库接口进行入库,成功后插入本系统对应栏目,并自动进行video_content对应关系
  62. $new_s = array();
  63. foreach ($datas as $data) {
  64. $data['cid'] = $select_category;
  65. $data['import'] = 1;
  66. $data['channelid'] = 1;
  67. $return_data = array();
  68. $return_data = $this->ku6api->vms_add($data);//插入VMS,返回能播放使用的vid
  69. //$new_s[] = $return_data;
  70. $vid = $return_data['vid'];
  71. if(!$vid){
  72. showmessage('导入VMS系统时,发生错误!',HTTP_REFERER);
  73. }
  74. //入本机视频库
  75. $video_data = array();
  76. $video_data['title'] = str_cut($data['title'],80,false);
  77. $video_data['vid'] = $vid;
  78. $video_data['keywords'] = str_cut($data['tag'],36);
  79. $video_data['description'] = str_cut($data['desc'],200);
  80. $video_data['status'] = $data['status'];
  81. $video_data['addtime'] = $data['uploadtime'] ? substr($data['uploadtime'],0,10) : SYS_TIME;
  82. $video_data['picpath'] = safe_replace( format_url($data['picpath']) );
  83. $video_data['timelen'] = intval($data['timelen']);
  84. $video_data['size'] = intval($data['size']);
  85. $video_data['channelid'] = 1;
  86. $videoid = $video_store_db->insert($video_data, true);//插入视频库
  87. if($is_category==1){//视频直接发布到指定栏目
  88. //组合POST数据
  89. //根据模型id,得到视频字段名
  90. $content_data = array();
  91. $content_data[$fieldname] = 1;
  92. $content_data['catid'] = $select_category;
  93. $content_data['title'] = str_cut($data['title'],80,' ');
  94. $content_data['content'] = $data['desc'];
  95. $content_data['description'] = str_cut($data['desc'],198,' ');
  96. $content_data['keywords'] = str_cut($data['tag'],38,' ');
  97. $content_data = array_filter($content_data,'rtrim');
  98. $content_data['thumb'] = $data['picpath'];
  99. $content_data['status'] = 99;
  100. //组合POST数据,入库时会自动对应关系
  101. $_POST[$fieldname.'_video'][1] = array('videoid'=>$videoid, 'listorder'=>1);
  102. //调接口,插入数据库
  103. $cid = $content_model->add_content($content_data);
  104. //入推荐位
  105. $position = $_POST['sub']['posid'];
  106. if($position){
  107. $info = array();//组成提交信息数据
  108. $pos_content_data = $content_data;
  109. $pos_content_data['id'] = $cid;
  110. $pos_content_data['inputtime'] = SYS_TIME;
  111. $pos_content_data['updatetime'] = SYS_TIME;
  112. $info[$cid]= $pos_content_data;//信息数据
  113. $pos_array = array();//推荐位ID,要求是数组下面使用
  114. $pos_array[] = $position;
  115. $post_array = '';//position 所用
  116. $post_array['modelid'] = $modelid;
  117. $post_array['catid'] = $select_category;
  118. $post_array['id'] = $cid;
  119. $post_array['posid'] = $pos_array;
  120. $post_array['dosubmit'] = '提交';
  121. $post_array['pc_hash'] = $_GET['pc_hash'];
  122. $this->push->position_list($info, $post_array);//调用admin position_list()方法
  123. }
  124. //更新点击次数
  125. if ($data['viewcount']) {
  126. $views = intval($data['viewcount']);
  127. $hitsid = 'c-'.$modelid.'-'.$cid;
  128. $count = pc_base::load_model('hits_model');
  129. $count->update(array('views'=>$views), array('hitsid'=>$hitsid));
  130. }
  131. }
  132. }
  133. $page = intval($_POST['page']) + 1;
  134. if($_POST['fenlei'] || $_POST['keyword']){
  135. $forward = "?m=video&c=video&a=import_ku6video&menuid=".$_POST['menuid']."&fenlei=".$_POST['fenlei']."&srctype=".$_POST['srctype']."&videotime=".$_POST['videotime']."&keyword=".$_POST['keyword']."&dosubmit=%CB%D1%CB%&page=".$page;
  136. }else{
  137. $forward = "?m=video&c=video&a=import_ku6video&menuid=".$_POST['menuid'];
  138. }
  139. showmessage('KU6视频导入成功,正在返回!',$forward);
  140. }else{
  141. showmessage('请选择要导入的视频!',HTTP_REFERER);
  142. }
  143. }
  144. /**
  145. * 获取站点栏目数据
  146. */
  147. /**
  148. *
  149. * 视频列表
  150. */
  151. public function init() {
  152. $where = '1';
  153. $page = $_GET['page'];
  154. $pagesize = 20;
  155. if (isset($_GET['type'])) {
  156. if ($_GET['type']==1) {
  157. $where .= ' AND `videoid`=\''.$_GET['q'].'\'';
  158. } else {
  159. $where .= " AND `title` LIKE '%".$_GET['q']."%'";
  160. }
  161. }
  162. if (isset($_GET['start_time'])) {
  163. $where .= ' AND `addtime`>=\''.strtotime($_GET['start_time']).'\'';
  164. }
  165. if (isset($_GET['end_time'])) {
  166. $where .= ' AND `addtime`<=\''.strtotime($_GET['end_time']).'\'';
  167. }
  168. if (isset($_GET['status'])) {
  169. $status = intval($_GET['status']);
  170. $where .= ' AND `status`=\''.$status.'\'';
  171. }
  172. $infos = $this->db->listinfo($where, 'videoid DESC', $page, $pagesize);
  173. $pages = $this->db->pages;
  174. include $this->admin_tpl('video_list');
  175. }
  176. }
  177. ?>