diff --git a/app/Http/Controllers/Admin/EditContent.php b/app/Http/Controllers/Admin/EditContent.php
index dd6c3e49..ed5f9dbc 100644
--- a/app/Http/Controllers/Admin/EditContent.php
+++ b/app/Http/Controllers/Admin/EditContent.php
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin;
use App\Enumerations\ContentStatuses;
use App\Enumerations\ModulesHandlerToId;
use App\Http\Requests\EditContentRequest;
+use App\Http\Requests\Request;
use App\Models\Content;
use App\Models\ContentHistory;
use App\Models\File;
@@ -59,7 +60,7 @@ class EditContent extends Controller
'rootPages' => $page->rootPages(),
'templates' => $templates,
'formSectionNames' => call_user_func([$page->module_handler, 'getExtendedFormSections']),
- 'formSections' => call_user_func([$page->module_handler, 'getExtendedFormInputsCreate']),
+ 'formSections' => call_user_func([$page->module_handler, 'getExtendedFormInputsEdit']),
'historySize' => count($history['changesets'])
]);
}
@@ -111,7 +112,8 @@ class EditContent extends Controller
];
// save new values with history
- list($revision, $changedColumns) = $page->updateWithHistory($fields, $this->getFields($request, $fields));
+ $data = self::getFields($request, $fields);
+ list($revision, $changedColumns) = $page->updateWithHistory($fields, $data);
$changedColumns += call_user_func_array([$page->module_handler, 'edit'], [&$page, $request, $revision]);
@@ -275,7 +277,15 @@ class EditContent extends Controller
]));
}
- private function getFields(EditContentRequest $request, $fields)
+ /**
+ * Convert object of all request data into array of only wanted fields
+ *
+ * @param Request $request
+ * @param $fields
+ *
+ * @return array
+ */
+ public static function getFields(Request $request, $fields)
{
$requestData = [];
diff --git a/app/Models/Content.php b/app/Models/Content.php
index 70fa0972..ee83c568 100644
--- a/app/Models/Content.php
+++ b/app/Models/Content.php
@@ -14,10 +14,13 @@ class Content extends Model
public $timestamps = true;
protected $fillable = [
'user_id',
+ 'parent_id',
'module_handler',
'published_from',
'published_to',
'title_photo',
+ 'template',
+ 'is_homepage',
'title',
'url',
'meta_keywords',
@@ -152,15 +155,31 @@ class Content extends Model
foreach ($fields as $fieldDB => $fieldRequest) {
// ignore non-existing fields
- if ((!isset($this->$fieldDB) && !is_null($this->$fieldDB)) || (!isset($request[$fieldRequest]) && !is_null($request[$fieldRequest]))) {
+ if (!isset($request[$fieldRequest]) && !is_null($request[$fieldRequest])) {
continue;
}
- // remove any whitespaces around real content
- if (!is_null($request[$fieldRequest]))
- $request[$fieldRequest] = trim($request[$fieldRequest]);
+ // if module settings is still JSON, decode it to normal stdClass
+ if (is_string($this->module_settings)) {
+ $this->module_settings = json_decode($this->module_settings);
+ }
- if (trim($this->$fieldDB) != $request[$fieldRequest]) {
+ // are we editing common settings, or module-specific settings?
+ if (!in_array($fieldDB, $this->fillable)) {
+ // this field is not part of "core" content - probably it will be module settings
+ $commonField = false;
+ $fieldValue = $this->module_settings->$fieldDB;
+ } else {
+ $commonField = true;
+ $fieldValue = $this->$fieldDB;
+ }
+
+ // remove any whitespaces around real content
+ if (!is_null($request[$fieldRequest])) {
+ $request[$fieldRequest] = trim($request[$fieldRequest]);
+ }
+
+ if (trim($fieldValue) != $request[$fieldRequest]) {
// setup history object
$history = [
@@ -168,7 +187,7 @@ class Content extends Model
'content_id' => $this->id,
'edit_batch' => $revisionId,
'column' => $fieldRequest,
- 'old_value' => $this->$fieldDB,
+ 'old_value' => $fieldValue,
'new_value' => $request[$fieldRequest]
];
@@ -176,12 +195,21 @@ class Content extends Model
ContentHistory::create($history);
// save change into database
- $this->$fieldDB = $request[$fieldRequest];
+ if ($commonField) {
+ $this->$fieldDB = $request[$fieldRequest];
+ } else {
+ $this->module_settings->$fieldDB = $request[$fieldRequest];
+ }
$changed++;
}
}
+ // make JSON from stdClass
+ if (!is_string($this->module_settings)) {
+ $this->module_settings = json_encode($this->module_settings);
+ }
+
$this->save();
return [$revisionId, $changed];
diff --git a/resources/views/visitor/cwbs/layout.blade.php b/resources/views/visitor/cwbs/layout.blade.php
index 8082817e..3f7b2027 100644
--- a/resources/views/visitor/cwbs/layout.blade.php
+++ b/resources/views/visitor/cwbs/layout.blade.php
@@ -78,6 +78,14 @@
+
+
+
+ @yield('content')
+
+
+
+
Náš sortiment
diff --git a/resources/views/visitor/cwbs/modules/ContactForm/contact.blade.php b/resources/views/visitor/cwbs/modules/ContactForm/contact.blade.php
new file mode 100644
index 00000000..e69de29b
diff --git a/resources/views/visitor/cwbs/modules/StaticPages/homepage.blade.php b/resources/views/visitor/cwbs/modules/StaticPages/homepage.blade.php
new file mode 100644
index 00000000..01fb27dd
--- /dev/null
+++ b/resources/views/visitor/cwbs/modules/StaticPages/homepage.blade.php
@@ -0,0 +1,15 @@
+@extendVisitor('layout')
+
+@section('content')
+ {!! $page->content !!}
+
+
Subpages
+ @forelse($page->subpages() as $subpage)
+
{{$subpage->title}}
+
+
{{$subpage->meta_description}}
+ @empty
+
None :(
+ @endforelse
+
+@endsection
\ No newline at end of file