Files
core/app/Http/Controllers/Admin/Contents/ContentOverview.php
T

60 lines
1.8 KiB
PHP

<?php
namespace App\Http\Controllers\Admin\Contents;
use App\CMS\Contracts\Repositories\Content as IContent;
use App\CMS\Contracts\Repositories\Module as IModule;
use App\CMS\Enumerations\ContentStatuses;
use App\Http\Controllers\Admin\Controller;
use App\Models\Module;
class ContentOverview extends Controller
{
/**
* @var IContent
*/
private $content;
/**
* @var IModule
*/
private $module;
public function __construct(IContent $content, IModule $module)
{
$this->content = $content;
$this->module = $module;
}
/**
* Overview for all content pages.
*
* @param Module|null $module
* @param null $status
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
* @internal param int|null $moduleId
*/
public function index(Module $module = null, $status = null)
{
// get module settings
$pageHeading = $this->module->getOverviewTitle($module);
// get pages for overview
$handler = $module->exists ? $module->handler : null;
$pages = $this->content->getOverview($handler, [$status])
->paginate(setting('paginatedResults', 20));
// get homepage - for checking if homepage is set and available
$homepage = $this->content->getHomepage();
$contentModules = app(\App\CMS\Repositories\Module::class)->getContentModules();
return view('admin.content.overview', [
'pages' => $pages,
'homepage' => $homepage,
'pageHeading' => $pageHeading,
'contentModules' => $contentModules,
'statuses' => ContentStatuses::getWithTranslations(),
'module' => isset($module) ? $module : null
]);
}
}