output.inc.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. function video($field, $value) {
  2. $video_content_db = pc_base::load_model('video_content_model');
  3. $video_store_db = pc_base::load_model('video_store_model');
  4. //先获取目前contentid下面的videoid
  5. $videos = $video_content_db->select(array('contentid'=>$this->id, 'modelid'=>$this->modelid), 'videoid', '', '`listorder` ASC', '', 'videoid');
  6. if (is_array($videos) && !empty($videos)) {
  7. $videoids = '';
  8. foreach ($videos as $_vid => $r) {
  9. $videoids .= $_vid.',';
  10. }
  11. $videoids = substr($videoids, 0, -1);
  12. $result = $video_store_db->select("`videoid` IN($videoids) AND `status`=21", '*', '', '', '', 'videoid');
  13. $pagenumber = count($result);
  14. $return_data = array();
  15. if ($pagenumber>0) {
  16. if (is_array($result) && !empty($result)) {
  17. //首先对$result按照$videos的videoid排序
  18. foreach ($videos as $_vid => $v) {
  19. if ($result[$_vid]) $new_result[] = $result[$_vid];
  20. }
  21. unset($result, $_vid, $v);
  22. }
  23. $this->url = pc_base::load_app_class('url', 'content');
  24. for($i=1; $i<=$pagenumber; $i++) {
  25. $pageurls[$i] = $this->url->show($this->id, $i, $this->data['catid'], $this->data['inputtime']);
  26. }
  27. //构建返回数组
  28. foreach ($pageurls as $page =>$urls) {
  29. $_k = $page - 1;
  30. if ($_k==0) $arr = reset($new_result);
  31. else $arr = next($new_result);
  32. $return_data['data'][$page]['title'] = $arr['title'] ? new_html_special_chars($arr['title']) : new_html_special_chars($this->data['title']);
  33. $return_data['data'][$page]['url'] = $urls[0];
  34. $return_data['vid'] = $arr['vid'];
  35. $return_data['channelid'] = $arr['channelid'];
  36. }
  37. $category_db = pc_base::load_model('category_model');
  38. $r = $category_db->get_one(array('catid'=>$this->data['catid']), 'modelid, setting, siteid');
  39. $setting = string2array($r['setting']);
  40. $siteid = intval($r['siteid']);
  41. if ($setting['content_ishtml']) {
  42. if (!function_exists('content_pages')) {
  43. pc_base::load_app_func('util', 'content');
  44. }
  45. $modelid = intval($r['modelid']);
  46. $data = $this->data;
  47. unset($data[$field]);
  48. $output_data = $this->get($data);
  49. extract($output_data);
  50. $id = $this->id;
  51. //SEO
  52. $seo_keywords = '';
  53. if(!empty($keywords)) $seo_keywords = implode(',',$keywords);
  54. $SEO = seo($siteid, $catid, $title, $description, $seo_keywords);
  55. $this->html_root = pc_base::load_config('system','html_root');
  56. $this->sitelist = getcache('sitelist','commons');
  57. $this->queue = pc_base::load_model('queue_model');
  58. $template = $this->data['template'] ? $this->data['template'] : $setting['show_template'];
  59. foreach ($pageurls as $page => $urls) {
  60. $_k = $page - 1;
  61. if ($_k==0) {
  62. $arr = $first = reset($new_result);
  63. } else {
  64. $arr = next($new_result);
  65. }
  66. $return_data['vid'] = $arr['vid'];
  67. ${$field} = $return_data;
  68. $pagefile = $urls[1];
  69. if($siteid!=1) {
  70. $site_dir = $this->sitelist[$siteid]['dirname'];
  71. $pagefile = $this->html_root.'/'.$site_dir.$pagefile;
  72. }
  73. $this->queue->add_queue('add',$pagefile,$siteid);
  74. $pagefile = PHPCMS_PATH.$pagefile;
  75. ob_start();
  76. include template('content', $template);
  77. $data = ob_get_contents();
  78. ob_clean();
  79. $dir = dirname($pagefile);
  80. if(!is_dir($dir)) {
  81. mkdir($dir, 0777,1);
  82. }
  83. $strlen = file_put_contents($pagefile, $data);
  84. @chmod($file,0777);
  85. }
  86. $return_data['vid'] = $first['vid'];
  87. unset($new_result);
  88. }
  89. return $return_data;
  90. } else {
  91. return array();
  92. }
  93. }
  94. }