60 lines
1.8 KiB
PHP
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
|
|
]);
|
|
}
|
|
} |