NavigationService.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace App\Services\Content;
  3. use App\Repositories\NavigationRepository;
  4. use App\Repositories\PageRepository;
  5. use Illuminate\Support\Facades\Cache;
  6. use Illuminate\Support\Facades\Route;
  7. class NavigationService
  8. {
  9. protected $navigationRepository;
  10. protected $pageRepository;
  11. /**
  12. * NavigationService constructor.
  13. * @param $navigationRepository
  14. * @param $pageRepository
  15. */
  16. public function __construct(NavigationRepository $navigationRepository, PageRepository $pageRepository)
  17. {
  18. $this->navigationRepository = $navigationRepository;
  19. $this->pageRepository = $pageRepository;
  20. }
  21. public function getTopNav($where)
  22. {
  23. //return $this->navigationRepository->where($where)->all();
  24. return $this->navigationRepository->getNav($where);
  25. }
  26. public function getTopNavs($where, $limit)
  27. {
  28. $navs = $this->navigationRepository->getNavs();
  29. if (array_key_exists($where['alias'], $navs)) {
  30. $list = $navs[$where['alias']];
  31. if ($list) {
  32. foreach ($list as $k => $v) {
  33. if ($v->is_personal !=$where['is_personal']) {
  34. unset($list[$k]);
  35. }
  36. }
  37. }
  38. $return_navs= array_slice($list, 0, $limit);
  39. } else {
  40. $return_navs = null;
  41. }
  42. foreach ($return_navs as $k => $v) {
  43. $arr = $v;
  44. $arr->fullurl = null;
  45. if ($v->url!='' && $v->urltype == 0) { //其它链接
  46. //$arr->url = $v->url;
  47. //判断是否是完整的url路由
  48. $arr->fullurl = url($v->url);
  49. } else if ($v->type_id!='') {
  50. $arr->url = url_rewrite($v['pagealias'], array('id'=>$v['type_id']));
  51. } else {
  52. $arr->url = url_rewrite($v->pagealias);
  53. }
  54. if ($v->color!='') {
  55. $arr['title'] = "<font color='".$v->color."'>".$v->title."</font>";
  56. }
  57. $return_navs[$k] = $arr;
  58. }
  59. return $return_navs;
  60. }
  61. //处理页面seo
  62. public function getSeo($url_info)
  63. {
  64. $page_seo = $this->pageRepository->getPage();
  65. $url_name = $url_info->getName();
  66. if (array_has($page_seo, $url_name) || array_has($page_seo, strtolower($url_name))) {
  67. $page = array_get($page_seo, $url_name)? array_get($page_seo, $url_name):array_get($page_seo, strtolower($url_name));
  68. } else {
  69. $page = array();
  70. }
  71. return $page;
  72. }
  73. }