video.func.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. /**
  3. * 获取点击数量
  4. * @param $hitsid
  5. */
  6. function get_views($hitsid) {
  7. global $db;
  8. if(!$hitsid){ return false;}
  9. $db = pc_base::load_model('hits_model');
  10. $r = $db->get_one(array('hitsid'=>$hitsid));
  11. if($r){
  12. echo $r['views'];
  13. }else{
  14. echo '0';
  15. }
  16. }
  17. /**
  18. * 获取评论数
  19. * @param $comment
  20. */
  21. function get_comments($commentid) {
  22. global $db;
  23. if(!$commentid){return false;}
  24. $db = pc_base::load_model('comment_model');
  25. $r = $db->get_one(array('commentid'=>$commentid));
  26. if($r){
  27. echo $r['total'];
  28. }else{
  29. echo '0';
  30. }
  31. }
  32. /**
  33. * 获取视频图片
  34. * @param $id
  35. */
  36. function get_pic($id,$catid) {
  37. global $db;
  38. $id = intval($id);
  39. $catid = intval($catid);
  40. if(!$id || empty($id)){ return false;}
  41. $db = pc_base::load_model('content_model');
  42. $db->set_catid($catid);
  43. $r = $db->get_content($catid,$id);
  44. if($r){
  45. return $r;
  46. }else{
  47. return '0';
  48. }
  49. }
  50. /**
  51. * 生成分类信息中的筛选菜单
  52. * @param $field 字段名称
  53. * @param $modelid 模型ID
  54. * @param $diyarr 数据包
  55. * @param $isall 是否显示全部
  56. */
  57. function video_filters($field = '',$modelid,$diyarr = array(),$isall = 1) {
  58. $fields = getcache('model_field_'.$modelid,'model');
  59. $options = empty($diyarr) ? explode("\n",$fields[$field]['options']) : $diyarr;
  60. $field_value = intval($_GET[$field]);
  61. foreach($options as $_k) {
  62. $v = explode("|",$_k);
  63. $k = trim($v[1]);
  64. $option[$k]['name'] = $v[0];
  65. $option[$k]['value'] = $k;
  66. $option[$k]['url'] = video_filters_url($field,array($field=>$k),2,$modelid);
  67. $option[$k]['menu'] = $field_value == $k ? '<a href="#" class="ac">'.$v[0].'</a>' : '<a href="'.$option[$k]['url'].'">'.$v[0].'</a>';
  68. }
  69. if ($isall) {
  70. $all['name'] = L('all');
  71. $all['url'] = video_filters_url($field,array($field=>''),2,$modelid);
  72. $all['menu'] = $field_value == '' ? '<a href="#" class="ac">'.$all['name'].'</a>' : '<a href="'.$all['url'].'">'.$all['name'].'</a>';
  73. array_unshift($option,$all);
  74. }
  75. return $option;
  76. }
  77. /**
  78. * 构造筛选URL
  79. */
  80. function video_filters_url($fieldname,$array=array(),$type = 1,$modelid, $isphp = 0) {
  81. if(empty($array)) {
  82. $array = $_GET;
  83. } else {
  84. $array = array_merge($_GET,$array);
  85. }
  86. //$setting = getcache('yp_setting', 'yp');
  87. //TODO
  88. $fields = getcache('model_field_'.$modelid,'model');
  89. if(is_array($fields) && !empty($fields)) {
  90. ksort($fields);
  91. foreach ($fields as $_v=>$_k) {
  92. if($_k['filtertype'] || $_k['rangetype']) {
  93. $urlpars .= '&'.$_v.'={$'.$_v.'}';
  94. }
  95. }
  96. }
  97. //伪静态url规则管理,apache伪静态支持9个参数
  98. $urlrule =APP_PATH.'index.php?m=content&c=index&a=lists&catid='.$_GET[catid].'&modelid='.$modelid.$urlpars.'&page={$page}';
  99. //根据get传值构造URL
  100. if (is_array($array)) foreach ($array as $_k=>$_v) {
  101. if($_k=='page') $_v=1;
  102. if($type == 1) if($_k==$fieldname) continue;
  103. $_findme[] = '/{\$'.$_k.'}/';
  104. if (strpos('_', $_v)===false) {
  105. $_v = intval($_v);
  106. } else {
  107. $str_arr = explode('_', $_v);
  108. $str_arr = array_map("intval", $str_arr);
  109. $_v = implode('_', $str_arr);
  110. }
  111. $_replaceme[] = $_v;
  112. }
  113. //type 模式的时候,构造排除该字段名称的正则
  114. if($type==1) $filter = '(?!'.$fieldname.'.)';
  115. $_findme[] = '/{\$'.$filter.'([a-z0-9_]+)}/';
  116. $_replaceme[] = '';
  117. $urlrule = preg_replace($_findme, $_replaceme, $urlrule);
  118. $b = isset($_GET['b']) ? intval($_GET['b']) : 1;
  119. $urlrule .='&b='.$b;
  120. return $urlrule;
  121. }
  122. /**
  123. * 构造筛选时候的sql语句
  124. */
  125. function video_filters_sql($modelid,$catid) {
  126. $sql = $fieldname = $min = $max = '';
  127. $fieldvalue = array();
  128. $modelid = intval($modelid);
  129. $model = getcache('video_model','model');
  130. $fields = getcache('model_field_'.$modelid,'model');
  131. $fields_key = array_keys($fields);
  132. //TODO
  133. $siteid = get_siteid();
  134. $sql = '`status` = \'99\'';
  135. $category = getcache('category_content_'.$siteid);
  136. if ($category[$catid]['child']) {
  137. $sql .= ' AND `catid` IN('.$datas[$catid]['arrchildid'].')';
  138. } else {
  139. $sql .= ' AND `catid`=\''.$catid.'\'';
  140. }
  141. foreach ($_GET as $k=>$r) {
  142. if(in_array($k,$fields_key) && intval($r)!=0 && ($fields[$k]['filtertype'] || $fields[$k]['rangetype'])) {
  143. if($fields[$k]['formtype'] == 'linkage') {
  144. $datas = getcache($fields[$k]['linkageid'],'linkage');
  145. $infos = $datas['data'];
  146. if($infos[$r]['arrchildid']) {
  147. $sql .= ' AND `'.$k.'` in('.$infos[$r]['arrchildid'].')';
  148. }
  149. } elseif($fields[$k]['formtype'] == 'catids') {
  150. $datas = getcache('category_content_'.$modelid);
  151. if ($datas[$r]['child']) {
  152. $sql .= ' AND `'.$k.'` IN('.$datas[$r]['arrchildid'].')';
  153. } else {
  154. $sql .= ' AND `'.$k.'`=\''.$r.'\'';
  155. }
  156. } elseif($fields[$k]['rangetype']) {
  157. if(is_numeric($r)) {
  158. $sql .=" AND `$k` = '$r'";
  159. } else {
  160. $fieldvalue = explode('_',$r);
  161. $min = intval($fieldvalue[0]);
  162. $max = $fieldvalue[1] ? intval($fieldvalue[1]) : 999999;
  163. $sql .=" AND `$k` >= '$min' AND `$k` < '$max'";
  164. }
  165. } else {
  166. $sql .=" AND `$k` = '$r'";
  167. }
  168. }
  169. }
  170. return $sql;
  171. }
  172. function video_makeurlrule() {
  173. $setting = getcache('video', 'video');
  174. if($setting['enable_rewrite'] == 0) {
  175. return url_par('page={$'.'page}');
  176. }
  177. else {
  178. $url = preg_replace('/-[0-9]+.html$/','-{$page}.html',get_url());
  179. return $url;
  180. }
  181. }
  182. function player_code($id = 'video_player',$channelid,$vid,$width = 622, $height = 460, $style_projectid = '') {
  183. if(!$channelid) return 'channelid empty!';
  184. if(!$vid) return 'vid empty!';
  185. $player = getcache('player', 'video');
  186. $player_config = $player[$channelid];
  187. $default_style = $player_config['default'];
  188. $style_projectid = $style_projectid ? $style_projectid : $default_style;
  189. $_config = $player_config['STY-'.$style_projectid];
  190. if(empty($_config)) return 'style error!';
  191. $playerurl = pc_base::load_config('ku6server', 'player_url').$vid.'/style/'.$style_projectid.'/v.swf';
  192. $string = '<embed id="'.$id.'" name="'.$id.'" src="'.$playerurl.'" width="'.$width.'" height="'.$height.'" quality="high" align="middle" allowScriptAccess="always" allowfullscreen="true" type="application/x-shockwave-flash"></embed>';
  193. return $string;
  194. }
  195. ?>