diff --git a/app/Models/Content.php b/app/Models/Content.php index c07804aa..ce6e4b4f 100644 --- a/app/Models/Content.php +++ b/app/Models/Content.php @@ -3,6 +3,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\DB; /** * Class Content @@ -29,4 +30,38 @@ class Content extends Model const STATUS_DRAFT = 'draft'; const STATUS_PROTECTED = 'protected'; const STATUS_PUBLIC = 'public'; + + /** + * Getter for overview of all content pages of given handler (module type) + * + * @param $handler + * @param bool $joinAuthor + * + */ + public function getByType($handler, $joinAuthor = false) + { + $query = DB::table('contents') + ->select('contents.*') + ->where('contents.status', '<>', self::STATUS_DELETED) + ->where('module_handler', $handler) + ->orderBy('created_at'); + + // join user email and user name to results when needed + if ($joinAuthor) { + $query = $query->join('users', 'users.id', '=', 'contents.user_id') + ->select('contents.*', 'users.name AS author_name', 'users.email AS author_email'); + } + + return $query; + } + + /** + * Mark relationship with users table + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function author() + { + return $this->belongsTo('App\Models\User', 'user_id'); + } } \ No newline at end of file diff --git a/modules/StaticPages/Http/Controllers/Admin/StaticPageOverview.php b/modules/StaticPages/Http/Controllers/Admin/StaticPageOverview.php index bd833785..3abc63f6 100644 --- a/modules/StaticPages/Http/Controllers/Admin/StaticPageOverview.php +++ b/modules/StaticPages/Http/Controllers/Admin/StaticPageOverview.php @@ -1,11 +1,22 @@ getByType(config('staticpages.handler'), true); + + // add filtering by status + if (!is_null($status) && in_array($status, ContentStatuses::getSimple())) { + $pages = $pages->where('status', $status); + } + $pages = $pages->paginate($perPage); + + return view('staticpages::admin.overview', ['pages' => $pages]); } } \ No newline at end of file diff --git a/modules/StaticPages/Resources/lang/en/admin.php b/modules/StaticPages/Resources/lang/en/admin.php index 28d751cb..45a8ab68 100644 --- a/modules/StaticPages/Resources/lang/en/admin.php +++ b/modules/StaticPages/Resources/lang/en/admin.php @@ -13,5 +13,11 @@ return [ 'field_meta_description' => 'Page description', 'field_published_from' => 'Published from', 'field_published_to' => 'Published to', - 'successfullyCreated' => 'Page successfully created' + 'successfullyCreated' => 'Page successfully created', + 'noPagesAvailable' => 'No static pages available. Try to create one first.', + 'viewPage' => 'View page on web', + 'edit' => 'Edit page', + 'deletePage' => 'Delete page (ireversible!)', + 'makePublic' => 'Publish page', + 'makeDraft' => 'Disable page and make it draft' ]; \ No newline at end of file diff --git a/modules/StaticPages/Resources/views/admin/overview.blade.php b/modules/StaticPages/Resources/views/admin/overview.blade.php index a587a878..783c6e80 100644 --- a/modules/StaticPages/Resources/views/admin/overview.blade.php +++ b/modules/StaticPages/Resources/views/admin/overview.blade.php @@ -4,4 +4,56 @@
{{str_limit($page->meta_description)}}
+ @else +{{str_limit(strip_tags($page->content))}}
+ @endif + + @if ($page->meta_keywords) +{{$page->meta_keywords}}
+ @endif + +