<?php namespace MovieSite\MovieSite\Http\Controllers; use App\Http\Controllers\PublicController as BaseController; use App\Http\Requests\PublicRequest; use Litepie\Repository\Filter\RequestFilter; use MovieSite\MovieSite\Interfaces\MovieSiteRepositoryInterface; use MovieSite\MovieSite\Repositories\Eloquent\Filters\MovieSitePublicFilter; use MovieSite\MovieSite\Repositories\Eloquent\Presenters\MovieSiteListPresenter; class MovieSitePublicController extends BaseController { /** * Constructor. * * @return void */ public function __construct( MovieSiteRepositoryInterface $movie_site ) { parent::__construct(); $this->modules = $this->modules(config('movie_site.movie_site.modules'), 'movie_site', guard_url('movie_site')); $this->repository = $movie_site; } /** * Show movie_site's list. * * @return response */ protected function index(PublicRequest $request) { $search = $request->search; $pageLimit = $request->input('pageLimit', config('database.pagination.limit')); $data = $this->repository ->pushFilter(RequestFilter::class) ->pushFilter(MovieSitePublicFilter::class) ->setPresenter(MovieSiteListPresenter::class) ->select('movie_sites.*') ->paginate($pageLimit) ->withQueryString() ->toArray(); extract($data); $categories = []; $tags = []; $recent = []; return $this->response->setMetaTitle(trans('movie_site::movie_site.names')) ->view('movie_site::public.movie_site.index') ->data(compact('data', 'meta', 'categories', 'tags', 'recent')) ->output(); } /** * Show movie_site. * * @param string $slug * * @return response */ protected function show(PublicRequest $request, $slug) { $data = $this->repository ->findBySlug($slug) ->toArray(); $categories = []; $tags = []; $recent = []; return $this->response->setMetaTitle($data['title'] . trans('movie_site::movie_site.name')) ->view('movie_site::public.movie_site.show') ->data(compact('data', 'categories', 'tags', 'recent')) ->output(); } }