Common.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace addons\cms\controller\wxapp;
  3. use addons\cms\model\Block;
  4. use addons\cms\model\Channel;
  5. use think\Config;
  6. use think\Hook;
  7. /**
  8. * 公共
  9. */
  10. class Common extends Base
  11. {
  12. protected $noNeedLogin = '*';
  13. /**
  14. * 初始化
  15. */
  16. public function init()
  17. {
  18. //焦点图
  19. $bannerList = [];
  20. $list = Block::getBlockList(['name' => 'wxappfocus', 'row' => 5]);
  21. foreach ($list as $index => $item) {
  22. $bannerList[] = ['image' => cdnurl($item['image'], true), 'url' => $item['url'], 'title' => $item['title']];
  23. }
  24. //首页Tab列表
  25. $indexTabList = $newsTabList = $productTabList = [['id' => 0, 'title' => '全部']];
  26. $channelList = Channel::where('status', 'normal')
  27. ->where("FIND_IN_SET('recommend', flag)")
  28. ->where('type', 'in', ['list'])
  29. ->field('id,parent_id,model_id,name,diyname')
  30. ->order('weigh desc,id desc')
  31. ->select();
  32. foreach ($channelList as $index => $item) {
  33. $data = ['id' => $item['id'], 'title' => $item['name']];
  34. $indexTabList[] = $data;
  35. if ($item['model_id'] == 1) {
  36. $newsTabList[] = $data;
  37. }
  38. if ($item['model_id'] == 2) {
  39. $productTabList[] = $data;
  40. }
  41. }
  42. //配置信息
  43. $upload = Config::get('upload');
  44. //如果非服务端中转模式需要修改为中转
  45. if ($upload['storage'] != 'local' && isset($upload['uploadmode']) && $upload['uploadmode'] != 'server') {
  46. //临时修改上传模式为服务端中转
  47. set_addon_config($upload['storage'], ["uploadmode" => "server"], false);
  48. $upload = \app\common\model\Config::upload();
  49. // 上传信息配置后
  50. Hook::listen("upload_config_init", $upload);
  51. $upload = Config::set('upload', array_merge(Config::get('upload'), $upload));
  52. }
  53. $upload['cdnurl'] = $upload['cdnurl'] ? $upload['cdnurl'] : cdnurl('', true);
  54. $upload['uploadurl'] = preg_match("/^((?:[a-z]+:)?\/\/)(.*)/i", $upload['uploadurl']) ? $upload['uploadurl'] : url($upload['storage'] == 'local' ? '/api/common/upload' : $upload['uploadurl'], '', false, true);
  55. $config = [
  56. 'upload' => $upload
  57. ];
  58. $data = [
  59. 'bannerList' => $bannerList,
  60. 'indexTabList' => $indexTabList,
  61. 'newsTabList' => $newsTabList,
  62. 'productTabList' => $productTabList,
  63. 'config' => $config
  64. ];
  65. $this->success('', $data);
  66. }
  67. }