diff --git a/app/Http/Controllers/Admin/ContentOverview.php b/app/Http/Controllers/Admin/ContentOverview.php index fad1e58c..592b68e7 100644 --- a/app/Http/Controllers/Admin/ContentOverview.php +++ b/app/Http/Controllers/Admin/ContentOverview.php @@ -7,6 +7,18 @@ use Illuminate\Support\Facades\Input; class ContentOverview extends Controller { + /** + * @var Content + */ + private $content; + + public function __construct(Content $content) + { + parent::__construct(); + + $this->content = $content; + } + /** * Overview for all content pages. * @@ -27,10 +39,12 @@ class ContentOverview extends Controller } // get pages for overview - $model = new Content(); - $pages = $model->getOverview($moduleFilterHandler, $status, true) - ->paginate($perPage); + $pages = $this->content->getOverview($moduleFilterHandler, $status, true) + ->paginate($perPage); - return view('admin.content.overview', ['pages' => $pages]); + // get homepage - for checking if homepage is set and available + $homepage = $this->content->getHomepage(); + + return view('admin.content.overview', ['pages' => $pages, 'homepage' => $homepage]); } } \ No newline at end of file diff --git a/app/Models/Content.php b/app/Models/Content.php index 18350112..74b675f8 100644 --- a/app/Models/Content.php +++ b/app/Models/Content.php @@ -88,6 +88,42 @@ class Content extends Model return $this->subpages; } + /** + * Is current content draft? + * + * @return bool + */ + public function isDraft() { + return $this->status == self::STATUS_DRAFT; + } + + /** + * Is current content visible for all visitors? + * + * @return bool + */ + public function isPublic() { + return $this->status == self::STATUS_PUBLIC; + } + + /** + * Is current content visible only for logged users? + * + * @return bool + */ + public function isProtected() { + return $this->status == self::STATUS_PROTECTED; + } + + /** + * Is current content visible for logged user OR for everyone? + * + * @return bool + */ + public function isVisible() { + return $this->isPublic() || $this->isProtected(); + } + /** * Returns list of all root pages - those pages, which parent_id is null * diff --git a/resources/lang/en/admin/contents.php b/resources/lang/en/admin/contents.php index 40ebb560..1aaf3ae9 100644 --- a/resources/lang/en/admin/contents.php +++ b/resources/lang/en/admin/contents.php @@ -37,5 +37,7 @@ return [ 'homepageSetup' => 'Homepage successfully set up.', 'setHomepage' => 'Set page as homepage', 'noParentPage' => ' -- No parent page -- ', - 'uploadTitleImage' => 'Upload title image' + 'uploadTitleImage' => 'Upload title image', + 'noHomepage' => 'You have not set up your homepage yet, or your current homepage is draft! Try to select another one.', + 'homepageProtected' => 'Your homepage is displayed only for logged in users. This may or may not be an error.' ]; \ No newline at end of file diff --git a/resources/views/admin/content/overview.blade.php b/resources/views/admin/content/overview.blade.php index 8d02d42b..307c64a9 100644 --- a/resources/views/admin/content/overview.blade.php +++ b/resources/views/admin/content/overview.blade.php @@ -17,6 +17,22 @@ @endif + @if (!$homepage) +