protected function getPage($pageSlug, $topicSlug = null) { if (is_null($topicSlug)) { $query = Page::whereSlug($pageSlug); } else { $query = Topic::slug($topicSlug)->firstOrFail()->pages()->whereSlug($pageSlug); } if (Auth::check() === false || Auth::user()->hasRole('admin') === false) { $query->whereActive(true); } $page = $query->get()->first(); if (is_null($page)) { throw (new ModelNotFoundException())->setModel(Page::class); } return $page; }
/** * Formbuilder. * * @param null $form * @param \Illuminate\Database\Eloquent\Model|null $entry * * @return mixed */ public function getForm($form = null, Model $entry = null) { $selectedCategory = ''; $selectedTopic = ''; if (!empty($entry->category_id)) { // only for edit $selectedCategory = $entry->category_id; } if (!empty($entry->topic_id)) { // only for edit $selectedTopic = $entry->topic_id; } $categories = Category::orderBy('title', 'asc')->pluck('title', 'id'); $categories->prepend(trans('page::category.no_category'), ''); $topics = Topic::orderBy('title', 'asc')->pluck('title', 'id'); $topics->prepend(trans('page::topic.no_topic'), ''); $formFields = ['id' => $form->hidden('id'), 'title' => $form->text(trans('crud::crud.title'), 'title')->addClass('is-title'), 'slug' => $form->text(trans('crud::crud.slug'), 'slug')->addClass('is-title-to-slug'), 'topic_id' => $form->select(trans('page::topic.topic'), 'topic_id')->options($topics)->select($selectedTopic), 'category_id' => $form->select(trans('page::category.category'), 'category_id')->options($categories)->select($selectedCategory), 'body' => $form->textarea(trans('crud::crud.body'), 'body')->addClass('is-summernote'), 'html_title' => $form->text(trans('page::page.html_title'), 'html_title'), 'meta_description' => $form->text(trans('page::page.meta_description'), 'meta_description'), 'meta_robots' => $form->text(trans('page::page.meta_robots'), 'meta_robots'), 'active' => $form->checkbox(trans('page::page.active'), 'active')->defaultToChecked(), 'submit' => $form->submit(trans('crud::crud.save'))]; return $formFields; }