Content.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688
  1. <?php
  2. namespace Main\Src;
  3. use Dever;
  4. use Main\Lib\Core;
  5. use Dever\Routing\Uri;
  6. class Content
  7. {
  8. # 基本配置
  9. public function config()
  10. {
  11. $data = Dever::db('main/config')->one();
  12. $data['contact'] = Dever::url('contact');
  13. return $data;
  14. }
  15. # 分享js配置
  16. public function share()
  17. {
  18. $title = '';
  19. $pic = '';
  20. $content = '';
  21. $uri = Uri::$value;
  22. $id = Dever::input('id');
  23. $config = Dever::load('main/content.config');
  24. if ($id) {
  25. if ($uri == 'xnr-detail') {
  26. $data = Dever::db('content/xuniren')->one($id);
  27. if (isset($data['ins']) && $data['ins']) {
  28. $config['ins'] = $data['ins'];
  29. }
  30. if (isset($data['ins_link']) && $data['ins_link']) {
  31. $config['ins_link'] = $data['ins_link'];
  32. }
  33. if (isset($data['douyin']) && $data['douyin']) {
  34. $config['douyin'] = $data['douyin'];
  35. }
  36. if (isset($data['bilibili']) && $data['bilibili']) {
  37. $config['bilibili'] = $data['bilibili'];
  38. }
  39. } elseif ($uri == 'zwz-detail') {
  40. $data = Dever::db('content/creater')->one($id);
  41. $data['pic'] = $data['logo'];
  42. } else {
  43. $data = Dever::db('content/news')->one($id);
  44. }
  45. if (isset($data['share_title']) && $data['share_title']) {
  46. $title = $data['share_title'];
  47. } else {
  48. $title = $data['name'];
  49. }
  50. if (isset($data['share_pic']) && $data['share_pic']) {
  51. $pic = $data['share_pic'];
  52. } else {
  53. $pic = $data['pic'];
  54. }
  55. if (isset($data['share_content']) && $data['share_content']) {
  56. $pic = $data['share_content'];
  57. } else {
  58. $pic = $data['info'];
  59. }
  60. } else {
  61. $title = $config['name'];
  62. $pic = $config['logo'];
  63. }
  64. $ralateUid = '';
  65. $appkey = '';
  66. $url = Dever::url();
  67. $share = 'config.wbshare = {
  68. title: "'.$title.'",
  69. url: "'.$url.'",
  70. pic: "'.$pic.'",
  71. ralateUid: "'.$ralateUid.'",
  72. appkey: "'.$appkey.'",
  73. content: "'.$content.'"
  74. }';
  75. $share .= ';config.ins="'.$config['ins'].'"';
  76. $share .= ';config.ins_link="'.$config['ins_link'].'"';
  77. $share .= ';config.douyin="'.$config['douyin'].'"';
  78. $share .= ';config.bili="'.$config['bilibili'].'"';
  79. return $share;
  80. }
  81. # 获取菜单
  82. public function menu()
  83. {
  84. $uri = Uri::$value;
  85. $type = Dever::input('type');
  86. $menu = array
  87. (
  88. 'home' => array
  89. (
  90. 'name' => '<span>首</span><span>页</span>',
  91. 'active' => $uri == 'search' ? true : false,
  92. ),
  93. 'news' => array
  94. (
  95. 'name' => '<span>资</span><span>讯</span>',
  96. 'active' => $type == 1 ? true : false,
  97. ),
  98. 'xnr' => array
  99. (
  100. 'name' => '<span>虚</span><span>拟</span><span>人</span>',
  101. 'active' => false,
  102. 'uri' => array('xnr-detail', 'zwz-detail'),
  103. ),
  104. 'feature' => array
  105. (
  106. 'name' => '<span>专</span><span>题</span>',
  107. 'active' => $type == 2 ? true : false,
  108. ),
  109. 'video' => array
  110. (
  111. 'name' => '<span>视</span><span>频</span>',
  112. 'active' => $type == 3 ? true : false,
  113. ),
  114. 'activity' => array
  115. (
  116. 'name' => '<span>活</span><span>动</span>',
  117. 'active' => $type == 4 ? true : false,
  118. ),
  119. 'contact' => array
  120. (
  121. 'name' => '<span>关</span><span>于</span><span>我</span><span>们</span>',
  122. 'active' => false,
  123. ),
  124. );
  125. foreach ($menu as $k => $v) {
  126. $menu[$k]['link'] = Dever::url($k);
  127. if ($v['active'] || $uri == $k || (isset($v['uri']) && in_array($uri, $v['uri']))) {
  128. $menu[$k]['class'] = 'active';
  129. } else {
  130. $menu[$k]['class'] = '';
  131. }
  132. $menu[$k]['html'] = $this->getMenuHtml($k, $menu[$k]);
  133. }
  134. return $menu;
  135. }
  136. private function getMenuHtml($k, $v)
  137. {
  138. $html = '<a href="'.$v['link'].'">'.$v['name'].'</a>';
  139. if ($k == 'news' || $k == 'feature') {
  140. $name = strip_tags($v['name']);
  141. if ($k == 'news') {
  142. $t = 1;
  143. } else {
  144. $t = 2;
  145. }
  146. $data = Dever::load('push/lib/data')->get('menu_' . $k, '菜单里的' . $name . '推荐列表', 4, '1,3,5');
  147. if (!$data) {
  148. $data = Dever::load('content/lib/news')->getHome($t, 4);
  149. }
  150. if ($data) {
  151. $html .= '<div class="'.$k.'-rec-layer header-recommend-layer">';
  152. foreach ($data as $k1 => $v1) {
  153. $html .= '<dl>
  154. <a href="'.$v1['link'].'" target="_blank">
  155. <dt class="poster"><img src="'.$v1['pic'].'" alt="" /></dt>
  156. <dd>'.$v1['name'].'</dd>
  157. </a>
  158. </dl>';
  159. }
  160. $html .= '</div>';
  161. }
  162. }
  163. return $html;
  164. }
  165. # 首页广告
  166. public function ad()
  167. {
  168. $key = Dever::input('key', 'home_ad');
  169. $name = Dever::input('name', '首页广告');
  170. return Dever::load('push/lib/data')->get($key, $name, 3, '1,5');
  171. }
  172. # 焦点图
  173. public function focus()
  174. {
  175. $key = Dever::input('key', 'home_focus');
  176. $name = Dever::input('name', '首页焦点图');
  177. $num = Dever::input('num', 0);
  178. return Dever::load('push/lib/data')->get($key, $name, 5, '1,2,5', '10', false, $num);
  179. }
  180. # 获取热门推荐
  181. public function hot()
  182. {
  183. $type = Dever::input('type');
  184. if ($type == 1) {
  185. $key = 'news';
  186. $name = '资讯';
  187. } elseif ($type == 2) {
  188. $key = 'feature';
  189. $name = '专题';
  190. } elseif ($type == 3) {
  191. $key = 'video';
  192. $name = '视频';
  193. } elseif ($type == 4) {
  194. $key = 'act';
  195. $name = '活动';
  196. }
  197. $data = Dever::load('push/lib/data')->get($key . '_hot', $name . '详情页热门推荐', 4, '1,3,5', ($type + 2). ',10');
  198. if (!$data) {
  199. $data = Dever::load('content/lib/news')->getHome($type, 4);
  200. }
  201. return $data;
  202. }
  203. # 获取首页资讯
  204. public function home_news()
  205. {
  206. //$data = Dever::load('push/lib/data')->get('home_news', '首页资讯', 3, '1,2,3,4,5,6,7');
  207. $data = false;
  208. if (!$data) {
  209. $data = Dever::load('content/lib/news')->getHome(1, 10);
  210. }
  211. return $data;
  212. }
  213. # 获取首页专题
  214. public function home_feature()
  215. {
  216. $data = Dever::load('push/lib/data')->get('home_feature', '首页专题', 5, '1,2,3,4,5,6,7');
  217. //$data = false;
  218. if (!$data) {
  219. $data = Dever::load('content/lib/news')->getHome(2, 5);
  220. }
  221. return $data;
  222. }
  223. # 获取列表页专题
  224. public function list_feature()
  225. {
  226. $data = Dever::load('push/lib/data')->get('list_feature', '专题列表顶部推荐位', 5, '1,2,3,4,5,6,7');
  227. //$data = false;
  228. if (!$data) {
  229. $data = Dever::load('content/lib/news')->getHome(2, 5);
  230. }
  231. return $data;
  232. }
  233. # 获取首页视频
  234. public function home_video_first()
  235. {
  236. //$data = Dever::load('push/lib/data')->get('home_video', '首页视频', 5, '1,2,3,4,5,6,7');
  237. $data = false;
  238. if (!$data) {
  239. $data = Dever::load('content/lib/news')->getHome(3, 3);
  240. }
  241. if ($data) {
  242. $data[0]['sname'] = '<a href="'.$data[0]['link'].'">'.$data[0]['sname'].'</a>';
  243. $data[0]['info'] = Dever::cut($data[0]['info'], 70);
  244. return $data[0];
  245. }
  246. return false;
  247. }
  248. public function home_video_other()
  249. {
  250. //$data = Dever::load('push/lib/data')->get('home_video', '首页视频', 5, '1,2,3,4,5,6,7');
  251. $data = false;
  252. if (!$data) {
  253. $data = Dever::load('content/lib/news')->getHome(3, 3);
  254. }
  255. if ($data) {
  256. unset($data[0]);
  257. }
  258. return $data;
  259. }
  260. # 获取首页活动
  261. public function home_act()
  262. {
  263. //$data = Dever::load('push/lib/data')->get('home_act', '首页活动', 4, '1,2,3,4,5,6,7');
  264. $data = false;
  265. if (!$data) {
  266. $data = Dever::load('content/lib/news')->getHome(4, 4);
  267. }
  268. return $data;
  269. }
  270. # 获取首页虚拟人
  271. public function home_xnr()
  272. {
  273. //$data = Dever::load('push/lib/data')->get('home_xnr', '首页虚拟人', 10, '1,2,3,4,5');
  274. $data = false;
  275. if (!$data) {
  276. $data = Dever::load('content/lib/xuniren')->getHome(10);
  277. }
  278. return $data;
  279. }
  280. # 获取资讯
  281. public function news()
  282. {
  283. $type = Dever::input('type', 1);
  284. $name = Dever::input('v');
  285. $data = Dever::load('content/lib/news')->getAll($type, $name);
  286. return $data;
  287. }
  288. # 获取资讯
  289. public function getNews()
  290. {
  291. $data = Dever::load('main/content.news');
  292. if ($data) {
  293. return true;
  294. }
  295. return false;
  296. }
  297. # 获取资讯
  298. public function getNoNews()
  299. {
  300. $pg = Dever::input('pg');
  301. $data = Dever::load('main/content.news');
  302. if ($data || $pg > 1) {
  303. return false;
  304. }
  305. return true;
  306. }
  307. # 获取资讯详情
  308. public function view()
  309. {
  310. $type = Dever::input('type', 1);
  311. $id = Dever::input('id');
  312. if (!$id) {
  313. Dever::alert('错误的数据id');
  314. }
  315. $data = Dever::load('content/lib/news')->getInfo($type, $id);
  316. return $data;
  317. }
  318. # 获取底层页封面图
  319. public function view_pic()
  320. {
  321. $data = Dever::load('main/content.view_video_1');
  322. if ($data) {
  323. return false;
  324. }
  325. return true;
  326. }
  327. # 获取底层页视频
  328. public function view_video()
  329. {
  330. $data = Dever::load('main/content.view');
  331. $result = array();
  332. if ($data['video']) {
  333. return true;
  334. }
  335. return false;
  336. }
  337. # 获取底层页头部视频
  338. public function view_video_1()
  339. {
  340. $data = Dever::load('main/content.view');
  341. $result = array();
  342. if ($data['type'] == 3 && $data['video']) {
  343. return true;
  344. }
  345. return false;
  346. }
  347. # 获取底层页尾部视频
  348. public function view_video_2()
  349. {
  350. $data = Dever::load('main/content.view');
  351. $result = array();
  352. if ($data['type'] != 3 && $data['content_video']) {
  353. return true;
  354. }
  355. return false;
  356. }
  357. # 获取标签
  358. public function view_tag()
  359. {
  360. $data = Dever::load('main/content.view');
  361. $result = array();
  362. if ($data['tag']) {
  363. $tag = '';
  364. if (strstr($data['tag'], ',')) {
  365. $tag = explode(',', $data['tag']);
  366. } elseif (strstr($data['tag'], ',')) {
  367. $tag = explode(',', $data['tag']);
  368. } else {
  369. $tag = explode(',', $data['tag']);
  370. }
  371. if ($tag && is_array($tag)) {
  372. foreach($tag as $k => $v) {
  373. $result[$k]['name'] = $v;
  374. $result[$k]['link'] = Dever::url('search?type='.$data['type'].'&v=' . $v);
  375. }
  376. }
  377. }
  378. return $result;
  379. }
  380. # 获取单页内容
  381. public function getPage()
  382. {
  383. $key = Dever::input('key', 1);
  384. $where['key'] = $key;
  385. $data = Dever::db('main/page')->one($where);
  386. return $data;
  387. }
  388. # 获取单页内容
  389. public function getAbout()
  390. {
  391. Dever::setInput('key', 'about');
  392. return $this->getPage();
  393. }
  394. # 搜索页面
  395. public function search()
  396. {
  397. $url = Dever::url('search?v=');
  398. $html = 'location.href=\''.$url.'\'+$(\'#search\').val()';
  399. return $html;
  400. }
  401. # 手机搜索页面
  402. public function msearch()
  403. {
  404. $url = Dever::url('search?v=');
  405. $html = 'location.href=\''.$url.'\'+$(\'#msearch\').val()';
  406. return $html;
  407. }
  408. # 获取联系我们的需求分类
  409. public function contact_xuqiu()
  410. {
  411. return Dever::db('act/contact')->config['xuqiu'];
  412. }
  413. # 新增联系我们
  414. public function contact_add()
  415. {
  416. $username = Dever::input('username');
  417. $mobile = Dever::input('mobile');
  418. $email = Dever::input('email');
  419. $content = Dever::input('content');
  420. $xuqiu = Dever::input('xuqiu', 3);
  421. if (!$username) {
  422. Dever::alert('请填写姓名');
  423. }
  424. if (!$mobile) {
  425. Dever::alert('请填写联系电话');
  426. }
  427. if (!$email) {
  428. Dever::alert('请填写电子信箱');
  429. }
  430. Dever::load('act/lib/contact')->add($username, $mobile, $email, $content, $xuqiu);
  431. return 'ok';
  432. }
  433. # 新增订阅
  434. public function ding_add()
  435. {
  436. $username = Dever::input('username');
  437. $email = Dever::input('email');
  438. $qudao = Dever::input('qudao', 1);
  439. if (!$username) {
  440. Dever::alert('请填写用户名');
  441. }
  442. if (!$email) {
  443. Dever::alert('请填写电子信箱');
  444. }
  445. Dever::load('act/lib/ding')->add($username, $email, $qudao);
  446. return 'ok';
  447. }
  448. # 新增分享
  449. public function share_add()
  450. {
  451. $name = Dever::input('name');
  452. $link = Dever::input('link');
  453. $type = Dever::input('type', 1);
  454. if (!$name) {
  455. Dever::alert('请填写内容名称');
  456. }
  457. if (!$link) {
  458. Dever::alert('请填写链接');
  459. }
  460. Dever::load('act/lib/share')->add($name, $link, $type);
  461. return 'ok';
  462. }
  463. # 造物主信息
  464. public function getZwzOne()
  465. {
  466. $id = Dever::input('id');
  467. if (!$id) {
  468. Dever::alert('错误的数据id');
  469. }
  470. $data = Dever::load('content/lib/creater')->getInfo($id);
  471. return $data;
  472. }
  473. # 获取造物主下的虚拟人列表
  474. public function getXnrByZwz()
  475. {
  476. $id = Dever::input('id');
  477. if (!$id) {
  478. Dever::alert('错误的数据id');
  479. }
  480. $data = Dever::load('content/lib/xuniren')->getDataByCreater($id);
  481. return $data;
  482. }
  483. # 虚拟人信息
  484. public function getXnrOne()
  485. {
  486. $id = Dever::input('id');
  487. if (!$id) {
  488. Dever::alert('错误的数据id');
  489. }
  490. $data = Dever::load('content/lib/xuniren')->getInfo($id);
  491. return $data;
  492. }
  493. # 虚拟人信息 相关资讯
  494. public function getXnrOne_news()
  495. {
  496. $data = Dever::load('main/content.getXnrOne');
  497. if ($data && $data['news']) {
  498. foreach($data['news'] as $k => $v) {
  499. $data['news'][$k]['class'] = '';
  500. }
  501. $data['news'][] = array
  502. (
  503. 'name' => '相关资讯',
  504. 'link' => '#',
  505. 'class' => 'tag',
  506. );
  507. return $data['news'];
  508. }
  509. return array();
  510. }
  511. # 虚拟人信息 多个图片
  512. public function getXnrOne_pic()
  513. {
  514. $data = Dever::load('main/content.getXnrOne');
  515. if ($data && isset($data['pic_list']) && $data['pic_list']) {
  516. return $data['pic_list'];
  517. }
  518. return array();
  519. }
  520. # 获取虚拟人列表
  521. public function getXnr()
  522. {
  523. $data = Dever::db('content/xuniren')->getAll();
  524. $html = '';
  525. foreach ($data as $k => $v) {
  526. $k = strtoupper($k);
  527. $html .= '<dl id="'.$k.'"><dt>' . $k . '</dt><dd>';
  528. foreach ($v as $k1 => $v1) {
  529. $url = Dever::url('main/xnr-detail?id=' . $v1['id']);
  530. $html .= '<a href="'.$url.'">'.$v1['name'].'</a>';
  531. }
  532. $html .= '</dl>';
  533. }
  534. return $html;
  535. }
  536. # 获取造物主列表
  537. public function getZwz()
  538. {
  539. $data = Dever::db('content/creater')->getAll();
  540. $html = '';
  541. foreach ($data as $k => $v) {
  542. $k = strtoupper($k);
  543. $html .= '<dl id="'.$k.'"><dt>' . $k . '</dt><dd>';
  544. foreach ($v as $k1 => $v1) {
  545. $url = Dever::url('main/zwz-detail?id=' . $v1['id']);
  546. $html .= '<a href="'.$url.'">'.$v1['name'].'</a>';
  547. }
  548. $html .= '</dl>';
  549. }
  550. return $html;
  551. }
  552. # 播放视频
  553. public function video()
  554. {
  555. $id = Dever::input('id');
  556. $data = Dever::db('content/news')->one($id);
  557. $video = '';
  558. if ($data && $data['type'] == 3) {
  559. $video = $data['video'];
  560. } elseif ($data && $data['type'] != 3) {
  561. $video = $data['content_video'];
  562. }
  563. if ($data && $video) {
  564. $info['video'] = $video;
  565. if (strstr($info['video'], '.qq.com')) {
  566. $info['video'] = Dever::qqvideo($info['video']);
  567. }
  568. return $info;
  569. }
  570. return array();
  571. }
  572. }