From 10c78cf3cbee2afe67903b2508c9f4f943b5a0a7 Mon Sep 17 00:00:00 2001 From: DariusIII Date: Mon, 6 Oct 2025 13:28:53 +0200 Subject: [PATCH] Share data between views --- app/Http/Controllers/AdultController.php | 1 - app/Http/Controllers/AjaxController.php | 1 - app/Http/Controllers/AnimeController.php | 2 - app/Http/Controllers/ApiHelpController.php | 2 - app/Http/Controllers/BasePageController.php | 58 ++----- app/Http/Controllers/BooksController.php | 1 - app/Http/Controllers/BrowseController.php | 3 - .../Controllers/BrowseGroupController.php | 2 - app/Http/Controllers/CartController.php | 4 - app/Http/Controllers/ConsoleController.php | 1 - app/Http/Controllers/ContactUsController.php | 3 - app/Http/Controllers/ContentController.php | 1 - app/Http/Controllers/DetailsController.php | 2 - app/Http/Controllers/FileListController.php | 1 - app/Http/Controllers/ForumController.php | 164 ------------------ app/Http/Controllers/GamesController.php | 1 - app/Http/Controllers/GetNzbController.php | 1 - app/Http/Controllers/InvitationController.php | 6 - app/Http/Controllers/MovieController.php | 2 - app/Http/Controllers/MusicController.php | 1 - app/Http/Controllers/MyMoviesController.php | 1 - app/Http/Controllers/MyShowsController.php | 2 - app/Http/Controllers/NfoController.php | 2 - app/Http/Controllers/ProfileController.php | 3 - app/Http/Controllers/RssController.php | 2 - app/Http/Controllers/SearchController.php | 1 - app/Http/Controllers/SeriesController.php | 1 - app/Http/Controllers/TermsController.php | 1 - app/Providers/AppServiceProvider.php | 6 +- app/View/Composers/GlobalDataComposer.php | 56 ++++++ resources/views/browse/index.blade.php | 7 + 31 files changed, 78 insertions(+), 261 deletions(-) delete mode 100644 app/Http/Controllers/ForumController.php create mode 100644 app/View/Composers/GlobalDataComposer.php diff --git a/app/Http/Controllers/AdultController.php b/app/Http/Controllers/AdultController.php index c634abbc3..cd5f51ce1 100644 --- a/app/Http/Controllers/AdultController.php +++ b/app/Http/Controllers/AdultController.php @@ -14,7 +14,6 @@ class AdultController extends BasePageController */ public function show(Request $request, string $id = '') { - $this->setPreferences(); $adult = new XXX; $moviecats = Category::getChildren(Category::XXX_ROOT); diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php index 8920dddc2..b5023cbff 100644 --- a/app/Http/Controllers/AjaxController.php +++ b/app/Http/Controllers/AjaxController.php @@ -12,7 +12,6 @@ class AjaxController extends BasePageController */ public function profile(Request $request): void { - $this->setPreferences(); if ($request->has('action') && (int) $request->input('action') === 1 && $request->has('emailto')) { $emailTo = $request->input('emailto'); $ret = User::sendInvite(url('/'), $this->userdata->id, $emailTo); diff --git a/app/Http/Controllers/AnimeController.php b/app/Http/Controllers/AnimeController.php index 48f8e2aaa..428803f56 100644 --- a/app/Http/Controllers/AnimeController.php +++ b/app/Http/Controllers/AnimeController.php @@ -36,7 +36,6 @@ class AnimeController extends BasePageController */ public function showAnime(Request $request): void { - $this->setPreferences(); if ($request->has('id') && ctype_digit($request->input('id'))) { // force the category to TV_ANIME as it should be for anime, as $catarray was NULL and we know the category for sure for anime @@ -84,7 +83,6 @@ class AnimeController extends BasePageController */ public function showList(Request $request): void { - $this->setPreferences(); $letter = ($request->has('id') && preg_match('/^(0\-9|[A-Z])$/i', $request->input('id'))) ? $request->input('id') : '0-9'; $animeTitle = ($request->has('title') && ! empty($request->input('title'))) ? $request->input('title') : ''; diff --git a/app/Http/Controllers/ApiHelpController.php b/app/Http/Controllers/ApiHelpController.php index aaefb83fa..712c58e83 100644 --- a/app/Http/Controllers/ApiHelpController.php +++ b/app/Http/Controllers/ApiHelpController.php @@ -18,7 +18,6 @@ class ApiHelpController extends BasePageController */ public function index(): View { - $this->setPreferences(); $this->setAdminPrefs(); $this->viewData['title'] = 'Api Help'; @@ -35,7 +34,6 @@ class ApiHelpController extends BasePageController */ public function apiv2(): View { - $this->setPreferences(); $this->setAdminPrefs(); $this->viewData['title'] = 'Api V2 Help'; diff --git a/app/Http/Controllers/BasePageController.php b/app/Http/Controllers/BasePageController.php index f98e2b124..1d91b6ab0 100644 --- a/app/Http/Controllers/BasePageController.php +++ b/app/Http/Controllers/BasePageController.php @@ -2,7 +2,6 @@ namespace App\Http\Controllers; -use App\Events\UserLoggedIn; use App\Models\Category; use App\Models\Settings; use App\Models\User; @@ -50,6 +49,7 @@ class BasePageController extends Controller public function __construct() { $this->middleware(['auth', 'web', '2fa'])->except('api', 'contact', 'showContactForm', 'callback', 'getNzb', 'terms', 'capabilities', 'movie', 'apiSearch', 'tv', 'details', 'failed', 'showRssDesc', 'fullFeedRss', 'categoryFeedRss', 'cartRss', 'myMoviesRss', 'myShowsRss', 'release', 'reset', 'showLinkRequestForm'); + // Buffer settings/DB connection. $this->settings = new Settings; @@ -58,6 +58,16 @@ class BasePageController extends Controller 'serverroot' => url('/'), 'site' => $this->settings, ]; + + // Initialize userdata property for controllers that need it + $this->middleware(function ($request, $next) { + if (Auth::check()) { + $this->userdata = User::find(Auth::id()); + $this->userdata->categoryexclusions = User::getCategoryExclusionById(Auth::id()); + } + + return $next($request); + }); } public function paginate($query, $totalCount, $items, $page, $path, $reqQuery): LengthAwarePaginator @@ -65,28 +75,6 @@ class BasePageController extends Controller return new LengthAwarePaginator($query, $totalCount, $items, $page, ['path' => $path, 'query' => $reqQuery]); } - /** - * @throws \Exception - */ - protected function setPreferences(): void - { - if (Auth::check()) { - $this->userdata = User::find(Auth::id()); - $this->setUserPreferences(); - } else { - $this->viewData = array_merge($this->viewData, [ - 'isadmin' => false, - 'ismod' => false, - 'loggedin' => false, - ]); - } - - $this->viewData = array_merge($this->viewData, [ - 'theme' => 'Gentele', - 'site' => $this->settings, - ]); - } - /** * Check if request is POST. */ @@ -109,30 +97,6 @@ class BasePageController extends Controller return view('errors.404'); } - /** - * Set user preferences. - */ - protected function setUserPreferences(): void - { - $this->userdata->categoryexclusions = User::getCategoryExclusionById(Auth::id()); - - // Update last login every 15 mins. - if (now()->subHours(3) > $this->userdata->lastlogin) { - event(new UserLoggedIn($this->userdata)); - } - - $parentcatlist = Category::getForMenu($this->userdata->categoryexclusions); - - $this->viewData = array_merge($this->viewData, [ - 'userdata' => $this->userdata, - 'loggedin' => true, - 'isadmin' => $this->userdata->hasRole('Admin'), - 'ismod' => $this->userdata->hasRole('Moderator'), - 'parentcatlist' => $parentcatlist, - 'header_menu_cat' => request()->input('t', ''), - ]); - } - /** * Set admin preferences. */ diff --git a/app/Http/Controllers/BooksController.php b/app/Http/Controllers/BooksController.php index 1dab447ef..7dcf48187 100644 --- a/app/Http/Controllers/BooksController.php +++ b/app/Http/Controllers/BooksController.php @@ -14,7 +14,6 @@ class BooksController extends BasePageController */ public function index(Request $request, string $id = '') { - $this->setPreferences(); $book = new Books(['Settings' => $this->settings]); $boocats = Category::getChildren(Category::BOOKS_ROOT); diff --git a/app/Http/Controllers/BrowseController.php b/app/Http/Controllers/BrowseController.php index 644989bb9..69dc8a00d 100644 --- a/app/Http/Controllers/BrowseController.php +++ b/app/Http/Controllers/BrowseController.php @@ -14,7 +14,6 @@ class BrowseController extends BasePageController */ public function index(Request $request) { - $this->setPreferences(); $releases = new Releases; $ordering = $releases->getBrowseOrdering(); @@ -49,7 +48,6 @@ class BrowseController extends BasePageController */ public function show(Request $request, string $parentCategory, string $id = 'All') { - $this->setPreferences(); $releases = new Releases; $parentId = RootCategory::query()->where('title', $parentCategory)->value('id'); @@ -134,7 +132,6 @@ class BrowseController extends BasePageController */ public function group(Request $request) { - $this->setPreferences(); $releases = new Releases; if ($request->has('g')) { $group = $request->input('g'); diff --git a/app/Http/Controllers/BrowseGroupController.php b/app/Http/Controllers/BrowseGroupController.php index 400685e36..bdd2f11ab 100644 --- a/app/Http/Controllers/BrowseGroupController.php +++ b/app/Http/Controllers/BrowseGroupController.php @@ -12,8 +12,6 @@ class BrowseGroupController extends BasePageController */ public function show(Request $request): void { - $this->setPreferences(); - // Get the search term from the request $search = $request->get('search', '') ?? ''; diff --git a/app/Http/Controllers/CartController.php b/app/Http/Controllers/CartController.php index 0740b134d..cadccace0 100644 --- a/app/Http/Controllers/CartController.php +++ b/app/Http/Controllers/CartController.php @@ -15,8 +15,6 @@ class CartController extends BasePageController */ public function index() { - $this->setPreferences(); - $results = UsersRelease::getCart(Auth::id()); $this->viewData = array_merge($this->viewData, [ @@ -34,7 +32,6 @@ class CartController extends BasePageController */ public function store(Request $request): RedirectResponse|\Illuminate\Http\JsonResponse { - $this->setPreferences(); $guids = explode(',', $request->input('id')); $data = Release::query()->whereIn('guid', $guids)->select(['id'])->get(); @@ -70,7 +67,6 @@ class CartController extends BasePageController */ public function destroy(array|string $id): RedirectResponse { - $this->setPreferences(); $ids = null; if (! empty($id) && ! \is_array($id)) { $ids = explode(',', $id); diff --git a/app/Http/Controllers/ConsoleController.php b/app/Http/Controllers/ConsoleController.php index 493fbb192..2d0a8e3cd 100644 --- a/app/Http/Controllers/ConsoleController.php +++ b/app/Http/Controllers/ConsoleController.php @@ -15,7 +15,6 @@ class ConsoleController extends BasePageController */ public function show(Request $request, string $id = '') { - $this->setPreferences(); if ($id === 'WiiVare') { $id = 'WiiVareVC'; } diff --git a/app/Http/Controllers/ContactUsController.php b/app/Http/Controllers/ContactUsController.php index 515a39ed9..924b7d965 100644 --- a/app/Http/Controllers/ContactUsController.php +++ b/app/Http/Controllers/ContactUsController.php @@ -12,8 +12,6 @@ class ContactUsController extends BasePageController */ public function contact(ContactContactURequest $request) { - $this->setPreferences(); - if (config('captcha.enabled') === true && (! empty(config('captcha.secret')) && ! empty(config('captcha.sitekey')))) { $this->validate($request, [ 'g-recaptcha-response' => 'required|captcha', @@ -49,7 +47,6 @@ class ContactUsController extends BasePageController */ public function showContactForm(string $msg = '') { - $this->setPreferences(); $title = 'Contact '.config('app.name'); $meta_title = 'Contact '.config('app.name'); $meta_keywords = 'contact us,contact,get in touch,email'; diff --git a/app/Http/Controllers/ContentController.php b/app/Http/Controllers/ContentController.php index db30cdcef..1079dd9a6 100644 --- a/app/Http/Controllers/ContentController.php +++ b/app/Http/Controllers/ContentController.php @@ -14,7 +14,6 @@ class ContentController extends BasePageController */ public function show(Request $request) { - $this->setPreferences(); $contents = new Contents; $role = $this->userdata->role ?? 0; diff --git a/app/Http/Controllers/DetailsController.php b/app/Http/Controllers/DetailsController.php index 634a9d33c..7be45c4f8 100644 --- a/app/Http/Controllers/DetailsController.php +++ b/app/Http/Controllers/DetailsController.php @@ -27,8 +27,6 @@ class DetailsController extends BasePageController { public function show(Request $request, string $guid) { - $this->setPreferences(); - if ($guid !== null) { $releases = new Releases; $re = new ReleaseExtra; diff --git a/app/Http/Controllers/FileListController.php b/app/Http/Controllers/FileListController.php index 2a09559c4..06ce80bd6 100644 --- a/app/Http/Controllers/FileListController.php +++ b/app/Http/Controllers/FileListController.php @@ -12,7 +12,6 @@ class FileListController extends BasePageController */ public function show(string $guid): void { - $this->setPreferences(); $nzb = new NZB; if ($guid !== null) { diff --git a/app/Http/Controllers/ForumController.php b/app/Http/Controllers/ForumController.php deleted file mode 100644 index 327efaa48..000000000 --- a/app/Http/Controllers/ForumController.php +++ /dev/null @@ -1,164 +0,0 @@ -setPreferences(); - if ($this->isPostBack($request) && $request->has('addMessage') && $request->has('addSubject')) { - Forumpost::add(0, $this->userdata->id, $request->input('addSubject'), $request->input('addMessage')); - - return redirect()->to('forum'); - } - - $lock = $unlock = null; - - if ($request->has('lock')) { - $lock = $request->input('lock'); - } - - if ($request->has('unlock')) { - $unlock = $request->input('unlock'); - } - - if ($lock !== null) { - Forumpost::lockUnlockTopic($lock, 1); - - return redirect()->to('forum'); - } - - if ($unlock !== null) { - Forumpost::lockUnlockTopic($unlock, 0); - - return redirect()->to('forum'); - } - - $results = Forumpost::getBrowseRange(); - - $this->smarty->assign('privateprofiles', config('nntmux_settings.private_profiles')); - - $this->smarty->assign('results', $results); - - $meta_title = 'Forum'; - $meta_keywords = 'forum,chat,posts'; - $meta_description = 'Forum'; - - $content = $this->smarty->fetch('forum.tpl'); - - $this->smarty->assign( - compact('content', 'meta_title', 'meta_keywords', 'meta_description') - ); - $this->pagerender(); - } - - /** - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Foundation\Application|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|void - * - * @throws \Exception - */ - public function getPosts($id, Request $request): RedirectResponse - { - $this->setPreferences(); - - if ($request->has('addMessage') && $this->isPostBack($request)) { - Forumpost::add($id, $this->userdata->id, '', $request->input('addMessage')); - - return redirect('forumpost/'.$id.'#last'); - } - - $results = Forumpost::getPosts($id); - if (\count($results) === 0) { - return redirect()->to('forum'); - } - - $meta_title = 'Forum Post'; - $meta_keywords = 'view,forum,post,thread'; - $meta_description = 'View forum post'; - - $this->smarty->assign('results', $results); - $this->smarty->assign('privateprofiles', config('nntmux_settings.private_profiles')); - - $content = $this->smarty->fetch('forumpost.tpl'); - - $this->smarty->assign( - [ - 'content' => $content, - 'meta_title' => $meta_title, - 'meta_keywords' => $meta_keywords, - 'meta_description' => $meta_description, - ] - ); - $this->pagerender(); - } - - public function deleteTopic(Request $request): RedirectResponse - { - $id = $request->input('id') + 0; - - if ($id !== null) { - Forumpost::deleteParent($id); - - return redirect()->to('forum'); - } - - return redirect()->to('forum'); - } - - /** - * @throws \Exception - */ - public function edit(Request $request): void - { - $this->setPreferences(); - - if ($request->has('id') && ! empty($request->input('addMessage'))) { - $parent = Forumpost::getPost($request->input('id')); - Forumpost::editPost($request->input('id'), $request->input('addMessage'), Auth::id()); - if ((int) $parent['parentid'] !== 0) { - header('/forumpost/'.$parent['parentid'].'#last'); - } else { - header('/forumpost/'.$request->input('id')); - } - } - - $result = Forumpost::getPost($request->input('id')); - - $meta_title = 'Edit forum Post'; - $meta_keywords = 'edit, view,forum,post,thread'; - $meta_description = 'Edit forum post'; - - $this->smarty->assign('result', $result); - - $content = $this->smarty->fetch('post_edit.tpl'); - $this->smarty->assign( - compact('content', 'meta_title', 'meta_keywords', 'meta_description') - ); - $this->pagerender(); - } - - /** - * @throws \Exception - */ - public function destroy($id): RedirectResponse - { - $this->setPreferences(); - - if ($id) { - Forumpost::deletePost($id); - } - - return redirect()->back(); - } -} diff --git a/app/Http/Controllers/GamesController.php b/app/Http/Controllers/GamesController.php index a5bd40ecf..54d287365 100644 --- a/app/Http/Controllers/GamesController.php +++ b/app/Http/Controllers/GamesController.php @@ -14,7 +14,6 @@ class GamesController extends BasePageController */ public function show(Request $request) { - $this->setPreferences(); $games = new Games(['Settings' => $this->settings]); $gen = new Genres(['Settings' => $this->settings]); diff --git a/app/Http/Controllers/GetNzbController.php b/app/Http/Controllers/GetNzbController.php index 7b416e395..31e448d38 100644 --- a/app/Http/Controllers/GetNzbController.php +++ b/app/Http/Controllers/GetNzbController.php @@ -18,7 +18,6 @@ class GetNzbController extends BasePageController */ public function getNzb(Request $request, $guid = null) { - $this->setPreferences(); // If guid is passed as URL parameter, merge it into request as 'id' if ($guid !== null && ! $request->has('id')) { diff --git a/app/Http/Controllers/InvitationController.php b/app/Http/Controllers/InvitationController.php index 5a4487f82..191898ffa 100644 --- a/app/Http/Controllers/InvitationController.php +++ b/app/Http/Controllers/InvitationController.php @@ -26,7 +26,6 @@ class InvitationController extends BasePageController */ public function index(Request $request): View { - $this->setPreferences(); $inviteMode = (int) Settings::settingValue('registerstatus') === Settings::REGISTER_STATUS_INVITE; $status = $request->get('status'); @@ -89,7 +88,6 @@ class InvitationController extends BasePageController */ public function create(): View { - $this->setPreferences(); $inviteMode = (int) Settings::settingValue('registerstatus') === Settings::REGISTER_STATUS_INVITE; @@ -172,10 +170,6 @@ class InvitationController extends BasePageController */ public function show(string $token): View { - // For public invitation page, we need to handle both logged in and guest users - if (auth()->check()) { - $this->setPreferences(); - } $preview = $this->invitationService->getInvitationPreview($token); diff --git a/app/Http/Controllers/MovieController.php b/app/Http/Controllers/MovieController.php index 96257d751..4b5922463 100644 --- a/app/Http/Controllers/MovieController.php +++ b/app/Http/Controllers/MovieController.php @@ -13,7 +13,6 @@ class MovieController extends BasePageController */ public function showMovies(Request $request, string $id = '') { - $this->setPreferences(); $movie = new Movie(['Settings' => $this->settings]); $moviecats = Category::getChildren(Category::MOVIE_ROOT)->map(function ($mcat) { @@ -94,7 +93,6 @@ class MovieController extends BasePageController */ public function showMovie(Request $request, string $imdbid) { - $this->setPreferences(); $movie = new Movie(['Settings' => $this->settings]); // Get movie info diff --git a/app/Http/Controllers/MusicController.php b/app/Http/Controllers/MusicController.php index 8f8aa16ff..800774728 100644 --- a/app/Http/Controllers/MusicController.php +++ b/app/Http/Controllers/MusicController.php @@ -15,7 +15,6 @@ class MusicController extends BasePageController */ public function show(Request $request, string $id = '') { - $this->setPreferences(); $music = new Music(['Settings' => $this->settings]); $gen = new Genres(['Settings' => $this->settings]); diff --git a/app/Http/Controllers/MyMoviesController.php b/app/Http/Controllers/MyMoviesController.php index adf95b045..45b0ca635 100644 --- a/app/Http/Controllers/MyMoviesController.php +++ b/app/Http/Controllers/MyMoviesController.php @@ -13,7 +13,6 @@ class MyMoviesController extends BasePageController { public function show(Request $request) { - $this->setPreferences(); $mv = new Movie; $action = $request->input('id') ?? ''; diff --git a/app/Http/Controllers/MyShowsController.php b/app/Http/Controllers/MyShowsController.php index 224be15d7..8b04c65ed 100644 --- a/app/Http/Controllers/MyShowsController.php +++ b/app/Http/Controllers/MyShowsController.php @@ -13,7 +13,6 @@ class MyShowsController extends BasePageController { public function show(Request $request) { - $this->setPreferences(); $action = $request->input('action') ?? ''; $videoId = $request->input('id') ?? ''; @@ -162,7 +161,6 @@ class MyShowsController extends BasePageController */ public function browse(Request $request) { - $this->setPreferences(); $title = 'Browse My Shows'; $meta_title = 'My Shows'; $meta_keywords = 'search,add,to,cart,nzb,description,details'; diff --git a/app/Http/Controllers/NfoController.php b/app/Http/Controllers/NfoController.php index 1f8ded980..1b7d945cd 100644 --- a/app/Http/Controllers/NfoController.php +++ b/app/Http/Controllers/NfoController.php @@ -14,8 +14,6 @@ class NfoController extends BasePageController */ public function showNfo(Request $request, string $id = ''): void { - $this->setPreferences(); - if ($id) { $rel = Release::getByGuid($id); diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 837f1bb66..569a7f86e 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -24,7 +24,6 @@ class ProfileController extends BasePageController */ public function show(Request $request) { - $this->setPreferences(); $userID = $this->userdata->id; $privileged = $this->userdata->hasRole('Admin') || $this->userdata->hasRole('Moderator'); @@ -88,7 +87,6 @@ class ProfileController extends BasePageController */ public function edit(Request $request) { - $this->setPreferences(); $action = $request->input('action') ?? 'view'; @@ -286,7 +284,6 @@ class ProfileController extends BasePageController */ public function destroy(Request $request): Application|View|Factory|RedirectResponse|\Illuminate\Contracts\Foundation\Application { - $this->setPreferences(); $userId = $request->input('id'); if ($userId !== null && (int) $userId === $this->userdata->id && ! $this->userdata->hasRole('Admin')) { diff --git a/app/Http/Controllers/RssController.php b/app/Http/Controllers/RssController.php index 5d2a27919..cae88930d 100644 --- a/app/Http/Controllers/RssController.php +++ b/app/Http/Controllers/RssController.php @@ -67,7 +67,6 @@ class RssController extends BasePageController */ public function fullFeedRss(Request $request) { - $this->setPreferences(); $rss = new RSS; $offset = 0; $user = $this->userCheck($request); @@ -93,7 +92,6 @@ class RssController extends BasePageController */ public function showRssDesc() { - $this->setPreferences(); $rss = new RSS; $firstShow = $rss->getFirstInstance('videos_id', 'releases', 'id'); diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 275f3f88b..23a16f52a 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -14,7 +14,6 @@ class SearchController extends BasePageController */ public function search(Request $request) { - $this->setPreferences(); $releases = new Releases; $results = []; diff --git a/app/Http/Controllers/SeriesController.php b/app/Http/Controllers/SeriesController.php index beaca0306..ed1b391a1 100644 --- a/app/Http/Controllers/SeriesController.php +++ b/app/Http/Controllers/SeriesController.php @@ -15,7 +15,6 @@ class SeriesController extends BasePageController */ public function index(Request $request, string $id = '') { - $this->setPreferences(); $releases = new Releases; if ($id && ctype_digit($id)) { diff --git a/app/Http/Controllers/TermsController.php b/app/Http/Controllers/TermsController.php index c670cd34f..521c3f718 100644 --- a/app/Http/Controllers/TermsController.php +++ b/app/Http/Controllers/TermsController.php @@ -9,7 +9,6 @@ class TermsController extends BasePageController */ public function terms(): void { - $this->setPreferences(); $title = 'Terms and Conditions'; $meta_title = config('app.name').' - Terms and conditions'; $meta_keywords = 'terms,conditions'; diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index c2aa6e755..b8431d488 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -18,8 +18,10 @@ class AppServiceProvider extends ServiceProvider public function boot(): void { Paginator::useTailwind(); - $smarty = app('smarty.view'); - view()->share('smarty', $smarty); + + // Share global data with all views using View Composer + view()->composer('*', \App\View\Composers\GlobalDataComposer::class); + Gate::define('viewPulse', function (User $user) { return $user->hasRole('Admin'); }); diff --git a/app/View/Composers/GlobalDataComposer.php b/app/View/Composers/GlobalDataComposer.php new file mode 100644 index 000000000..acc5f6a69 --- /dev/null +++ b/app/View/Composers/GlobalDataComposer.php @@ -0,0 +1,56 @@ + url('/'), + 'site' => $settings, + 'theme' => 'Gentele', + ]; + + if (Auth::check()) { + $userdata = User::find(Auth::id()); + $userdata->categoryexclusions = User::getCategoryExclusionById(Auth::id()); + + // Update last login every 15 mins. + if (now()->subHours(3) > $userdata->lastlogin) { + event(new UserLoggedIn($userdata)); + } + + $parentcatlist = Category::getForMenu($userdata->categoryexclusions); + + $viewData = array_merge($viewData, [ + 'userdata' => $userdata, + 'loggedin' => true, + 'isadmin' => $userdata->hasRole('Admin'), + 'ismod' => $userdata->hasRole('Moderator'), + 'parentcatlist' => $parentcatlist, + 'header_menu_cat' => request()->input('t', ''), + ]); + } else { + $viewData = array_merge($viewData, [ + 'isadmin' => false, + 'ismod' => false, + 'loggedin' => false, + ]); + } + + $view->with($viewData); + } +} diff --git a/resources/views/browse/index.blade.php b/resources/views/browse/index.blade.php index 3b5385272..66ebbb0ec 100644 --- a/resources/views/browse/index.blade.php +++ b/resources/views/browse/index.blade.php @@ -156,6 +156,13 @@ Sample @endif + @if(isset($result->videos_id) && $result->videos_id > 0) + + View Series + + @endif @if(isset($result->reid) && $result->reid != null)