From d3e4f44656ae6cbcc23da4acad44e21258614ba4 Mon Sep 17 00:00:00 2001 From: simba77 Date: Sat, 10 Feb 2024 11:20:48 +0300 Subject: [PATCH] Added automatic slug generation for the content elements --- src/Controllers/Admin/ContentElementsController.php | 5 +++-- src/Forms/ContentElementForm.php | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Controllers/Admin/ContentElementsController.php b/src/Controllers/Admin/ContentElementsController.php index 8e4b681..6c02068 100644 --- a/src/Controllers/Admin/ContentElementsController.php +++ b/src/Controllers/Admin/ContentElementsController.php @@ -4,6 +4,7 @@ namespace Johncms\Content\Controllers\Admin; +use Illuminate\Support\Str; use Johncms\Content\Forms\ContentElementForm; use Johncms\Content\Models\ContentElement; use Johncms\Content\Services\NavChainService; @@ -36,7 +37,7 @@ public function create(int $type, ?int $sectionId, Request $request, ContentElem try { $form->validate(); $values = $form->getRequestValues(); - // TODO: Refactoring + $values['code'] = empty($values['code']) ? Str::slug($values['name']) : Str::slug($values['code']); $values['content_type_id'] = $type; if ($sectionId > 0) { $values['section_id'] = $sectionId; @@ -69,7 +70,6 @@ public function edit(int $elementId, Request $request, ContentElementForm $form) $this->metaTagManager->setAll($element->name); $this->navChain->add($element->name); - // TODO: Refactoring $form->setValues( [ 'name' => $element->name, @@ -84,6 +84,7 @@ public function edit(int $elementId, Request $request, ContentElementForm $form) try { $form->validate(); $values = $form->getRequestValues(); + $values['code'] = empty($values['code']) ? Str::slug($values['name']) : Str::slug($values['code']); $element->update($values); $this->session->flash('message', __('The Element was Successfully Updated')); diff --git a/src/Forms/ContentElementForm.php b/src/Forms/ContentElementForm.php index 9e0919c..f09319d 100644 --- a/src/Forms/ContentElementForm.php +++ b/src/Forms/ContentElementForm.php @@ -24,8 +24,7 @@ protected function prepareFormFields(): array ->setLabel(__('Code')) ->setPlaceholder(p__('placeholder', 'Enter the Code of the Element')) ->setNameAndId('code') - ->setValue($this->getValue('code')) - ->setValidationRules(['NotEmpty']); + ->setValue($this->getValue('code')); $fields['detail_text'] = (new Textarea()) ->setLabel(__('Detail Text'))