/home/techb158/immovalet.com/platform/plugins/blog/src/Http/Controllers
NameSizeModeActions
API/-0755rm
CategoryController.php91780644editdlrm
PostController.php65970644editdlrm
PublicController.php31810644editdlrm
TagController.php46770644editdlrm
Edit: /home/techb158/immovalet.com/platform/plugins/blog/src/Http/Controllers/CategoryController.php (9178B)
categoryRepository = $categoryRepository; } /** * @return BaseHttpResponse|Factory|View|string * @throws Throwable */ public function index(FormBuilder $formBuilder, Request $request, BaseHttpResponse $response) { page_title()->setTitle(trans('plugins/blog::categories.menu')); $categories = $this->categoryRepository->getCategories(['*'], [ 'created_at' => 'DESC', 'is_default' => 'DESC', 'order' => 'ASC', ]); $categories->load('slugable')->loadCount('posts'); if ($request->ajax()) { $data = view('core/base::forms.partials.tree-categories', $this->getOptions(compact('categories')))->render(); return $response->setData($data); } Assets::addStylesDirectly(['vendor/core/core/base/css/tree-category.css']) ->addScriptsDirectly(['vendor/core/core/base/js/tree-category.js']); $form = $formBuilder->create(CategoryForm::class, ['template' => 'core/base::forms.form-tree-category']); $form = $this->setFormOptions($form, null, compact('categories')); return $form->renderForm(); } /** * @param FormBuilder $formBuilder * @return BaseHttpResponse|string */ public function create(FormBuilder $formBuilder, Request $request, BaseHttpResponse $response) { page_title()->setTitle(trans('plugins/blog::categories.create')); if ($request->ajax()) { return $response->setData($this->getForm()); } return $formBuilder->create(CategoryForm::class)->renderForm(); } /** * @param CategoryRequest $request * @param BaseHttpResponse $response * @return BaseHttpResponse */ public function store(CategoryRequest $request, BaseHttpResponse $response) { if ($request->input('is_default')) { $this->categoryRepository->getModel()->where('id', '>', 0)->update(['is_default' => 0]); } $category = $this->categoryRepository->createOrUpdate(array_merge($request->input(), [ 'author_id' => Auth::id(), 'author_type' => User::class, ])); event(new CreatedContentEvent(CATEGORY_MODULE_SCREEN_NAME, $request, $category)); if ($request->ajax()) { $category = $this->categoryRepository->findOrFail($category->id); if ($request->input('submit') == 'save') { $form = $this->getForm(); } else { $form = $this->getForm($category); } $response->setData([ 'model' => $category, 'form' => $form ]); } return $response ->setPreviousUrl(route('categories.index')) ->setNextUrl(route('categories.edit', $category->id)) ->setMessage(trans('core/base::notices.create_success_message')); } /** * @param Request $request * @param int $id * @param FormBuilder $formBuilder * @return BaseHttpResponse|string */ public function edit($id, FormBuilder $formBuilder, Request $request, BaseHttpResponse $response) { $category = $this->categoryRepository->findOrFail($id); event(new BeforeEditContentEvent($request, $category)); if ($request->ajax()) { return $response->setData($this->getForm($category)); } page_title()->setTitle(trans('plugins/blog::categories.edit') . ' "' . $category->name . '"'); return $formBuilder->create(CategoryForm::class, ['model' => $category])->renderForm(); } /** * @param int $id * @param CategoryRequest $request * @param BaseHttpResponse $response * @return BaseHttpResponse */ public function update($id, CategoryRequest $request, BaseHttpResponse $response) { $category = $this->categoryRepository->findOrFail($id); if ($request->input('is_default')) { $this->categoryRepository->getModel()->where('id', '!=', $id)->update(['is_default' => 0]); } $category->fill($request->input()); $this->categoryRepository->createOrUpdate($category); event(new UpdatedContentEvent(CATEGORY_MODULE_SCREEN_NAME, $request, $category)); if ($request->ajax()) { $category = $this->categoryRepository->findOrFail($id); if ($request->input('submit') == 'save') { $form = $this->getForm(); } else { $form = $this->getForm($category); } $response->setData([ 'model' => $category, 'form' => $form ]); } return $response ->setPreviousUrl(route('categories.index')) ->setMessage(trans('core/base::notices.update_success_message')); } /** * @param Request $request * @param int $id * @param BaseHttpResponse $response * @return BaseHttpResponse */ public function destroy(Request $request, $id, BaseHttpResponse $response) { try { $category = $this->categoryRepository->findOrFail($id); if (!$category->is_default) { $this->categoryRepository->delete($category); event(new DeletedContentEvent(CATEGORY_MODULE_SCREEN_NAME, $request, $category)); } return $response->setMessage(trans('core/base::notices.delete_success_message')); } catch (Exception $exception) { return $response ->setError() ->setMessage($exception->getMessage()); } } /** * @param Request $request * @param BaseHttpResponse $response * @return BaseHttpResponse * @throws Exception */ public function deletes(Request $request, BaseHttpResponse $response) { $ids = $request->input('ids'); if (empty($ids)) { return $response->setMessage(trans('core/base::notices.no_select')); } foreach ($ids as $id) { $category = $this->categoryRepository->findOrFail($id); if (!$category->is_default) { $this->categoryRepository->delete($category); event(new DeletedContentEvent(CATEGORY_MODULE_SCREEN_NAME, $request, $category)); } } return $response->setMessage(trans('core/base::notices.delete_success_message')); } /** * @param CategoryForm|null $model * @return string */ protected function getForm($model = null) { $options = ['template' => 'core/base::forms.form-no-wrap']; if ($model) { $options['model'] = $model; } $form = app(FormBuilder::class)->create(CategoryForm::class, $options); $form = $this->setFormOptions($form, $model); return $form->renderForm(); } /** * @param FormAbstract $form * @param Category|null $model * @param array $options * @return FormAbstract */ protected function setFormOptions($form, $model = null, $options = []) { if (!$model) { $form->setUrl(route('categories.create')); } if (!Auth::user()->hasPermission('categories.create') && !$model) { $class = $form->getFormOption('class'); $form->setFormOption('class', $class . ' d-none'); } $form->setFormOptions($this->getOptions($options)); return $form; } /** * @param array $options * @return array */ protected function getOptions($options = []) { return array_merge([ 'canCreate' => Auth::user()->hasPermission('categories.create'), 'canEdit' => Auth::user()->hasPermission('categories.edit'), 'canDelete' => Auth::user()->hasPermission('categories.destroy'), 'createRoute' => 'categories.create', 'editRoute' => 'categories.edit', 'deleteRoute' => 'categories.destroy', ], $options); } }