X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/a6633642232efd164d4708967ab59e498fbff896..refs/pull/2820/head:/app/Http/Controllers/HomeController.php diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 3258f4369..4a71b56b9 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -1,17 +1,19 @@ - 0 ? 0.5 : 1; $recents = $this->isSignedIn() ? - Views::getUserRecentlyViewed(12*$recentFactor, 1) + (new RecentlyViewed())->run(12 * $recentFactor, 1) : Book::visible()->orderBy('created_at', 'desc')->take(12 * $recentFactor)->get(); + $favourites = (new TopFavourites())->run(6); $recentlyUpdatedPages = Page::visible()->with('book') ->where('draft', false) ->orderBy('updated_at', 'desc') - ->take(12) + ->take($favourites->count() > 0 ? 6 : 12) ->get(); $homepageOptions = ['default', 'books', 'bookshelves', 'page']; @@ -47,29 +50,30 @@ class HomeController extends Controller } $commonData = [ - 'activity' => $activity, - 'recents' => $recents, + 'activity' => $activity, + 'recents' => $recents, 'recentlyUpdatedPages' => $recentlyUpdatedPages, - 'draftPages' => $draftPages, + 'draftPages' => $draftPages, + 'favourites' => $favourites, ]; // Add required list ordering & sorting for books & shelves views. if ($homepageOption === 'bookshelves' || $homepageOption === 'books') { $key = $homepageOption; - $view = setting()->getForCurrentUser($key . '_view_type', config('app.views.' . $key)); + $view = setting()->getForCurrentUser($key . '_view_type'); $sort = setting()->getForCurrentUser($key . '_sort', 'name'); $order = setting()->getForCurrentUser($key . '_sort_order', 'asc'); $sortOptions = [ - 'name' => trans('common.sort_name'), + 'name' => trans('common.sort_name'), 'created_at' => trans('common.sort_created_at'), 'updated_at' => trans('common.sort_updated_at'), ]; $commonData = array_merge($commonData, [ - 'view' => $view, - 'sort' => $sort, - 'order' => $order, + 'view' => $view, + 'sort' => $sort, + 'order' => $order, 'sortOptions' => $sortOptions, ]); } @@ -77,6 +81,7 @@ class HomeController extends Controller if ($homepageOption === 'bookshelves') { $shelves = app(BookshelfRepo::class)->getAllPaginated(18, $commonData['sort'], $commonData['order']); $data = array_merge($commonData, ['shelves' => $shelves]); + return view('common.home-shelves', $data); } @@ -84,6 +89,7 @@ class HomeController extends Controller $bookRepo = app(BookRepo::class); $books = $bookRepo->getAllPaginated(18, $commonData['sort'], $commonData['order']); $data = array_merge($commonData, ['books' => $books]); + return view('common.home-book', $data); } @@ -93,6 +99,7 @@ class HomeController extends Controller $customHomepage = Page::query()->where('draft', '=', false)->findOrFail($id); $pageContent = new PageContent($customHomepage); $customHomepage->html = $pageContent->render(true); + return view('common.home-custom', array_merge($commonData, ['customHomepage' => $customHomepage])); } @@ -101,15 +108,16 @@ class HomeController extends Controller /** * Get custom head HTML, Used in ajax calls to show in editor. + * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function customHeadContent() { - return view('partials.custom-head-content'); + return view('partials.custom-head'); } /** - * Show the view for /robots.txt + * Show the view for /robots.txt. */ public function getRobots() {