Base.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: 庞涛
  5. * Date: 2018/8/28
  6. * Time: 10:30
  7. */
  8. namespace app\mobile\controller;
  9. class Base extends \think\Controller
  10. {
  11. protected $site;
  12. private $controller;
  13. private $seo;
  14. protected $menuSeo = true;
  15. public function _initialize(){
  16. parent::_initialize();
  17. if(request()->isMobile()){
  18. }
  19. $site = cache('site');
  20. if($site['status'] == 0){
  21. die($site['reson']);
  22. }
  23. $this->site = $site;
  24. $this->seo = [
  25. 'title' => $site['title'],
  26. 'seo_title' => $site['seo_title'],
  27. 'seo_keys' => $site['seo_keys'],
  28. 'seo_desc' => $site['seo_desc']
  29. ];
  30. $qq = str_replace(',',',',$site['qq']);
  31. $qq = explode(',',$qq);
  32. $this->controller = strtolower(request()->controller());
  33. $this->getMenu();
  34. $this->setSeo();
  35. $this->getCate();//单页分类
  36. $this->assign('site',$site);
  37. $this->assign('qq',$qq);
  38. $this->assign('controller',$this->controller);
  39. }
  40. //设置站点优化
  41. protected function setSeo($info='',$field='title',$q=''){
  42. if(!empty($info)){
  43. $info['title'] = isset($info['title']) ? $info['title'] : $info[$field];
  44. $seo['title'] = empty($info['seo_title']) ? $info[$field].'_'.$this->seo['title'] : $info['seo_title'].'_'.$this->seo['title'];
  45. $seo['keys'] = empty($info['seo_keys']) ? (empty($info['seo_title']) ? $info['title']:$info['seo_title']) : $info['seo_keys'];//$seoarr[$key]['keys'];
  46. $seo['desc'] = empty($info['seo_desc']) ? '' : $info['seo_desc'];//$seoarr[$key]['desc'];
  47. }else{
  48. $site['title'] = empty($q) ? $this->seo['seo_title'].'_'.$this->seo['title'] : $q .'_'.$this->seo['title'];
  49. $site['keys'] = empty($this->seo['seo_keys']) ? $this->seo['seo_title'] : $this->seo['seo_keys'];
  50. $site['desc'] = empty($this->seo['seo_desc']) ? '' : $this->seo['seo_desc'];
  51. $seo = $site;
  52. }
  53. $this->assign('seo',$seo);
  54. }
  55. /**
  56. * 读取站点导航
  57. */
  58. private function getMenu(){
  59. $menu = cache('nav');
  60. if(!$menu){
  61. $map['status'] = 1;
  62. $lists = model('nav')->where($map)->order('ordid asc')->select();
  63. if($lists){
  64. $cate = objToArray($lists);//普通列表
  65. $temp = [];
  66. foreach($cate as $v){
  67. if(!empty($v['alias'])){
  68. $temp[$v['alias']] = $v;
  69. }else{
  70. $temp[$v['model']] = $v;
  71. }
  72. }
  73. $menu = $temp;
  74. cache('nav',$temp);
  75. }
  76. }
  77. if(isset($menu[$this->controller]) && $this->menuSeo){
  78. $this->seo = [
  79. 'title' =>$this->site['title'],
  80. 'seo_title' => empty($menu[$this->controller]['seo_title']) ? $menu[$this->controller]['title'] : $menu[$this->controller]['seo_title'],
  81. 'seo_keys' => $menu[$this->controller]['seo_keys'],
  82. 'seo_desc' => $menu[$this->controller]['seo_desc']
  83. ];
  84. }
  85. $this->assign('menu',$menu);
  86. }
  87. /**
  88. * @return mixed
  89. * 空操作 找不到操作方法时执行
  90. */
  91. public function _empty(){
  92. return $this->fetch('public/404');
  93. }
  94. private function getCate(){
  95. $cate = cache('oneCate');
  96. $articleCate = cache('articleCate');
  97. $this->assign('articleCate',$articleCate);
  98. $this->assign('oneCate',$cate);
  99. }
  100. }