Merge branch 'dev' into module_contact_form

This commit is contained in:
Michal Kváček
2016-04-01 20:49:00 +02:00
5 changed files with 71 additions and 10 deletions
+13 -3
View File
@@ -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 = [];
+34 -6
View File
@@ -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
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];
@@ -78,6 +78,14 @@
</div>
<div id="content">
<div class="row column text-center m-t-25">
<hr>
@yield('content')
<hr>
<h2 id="assortment">Náš sortiment</h2>
<hr>
<p class="text-center">
@@ -0,0 +1,15 @@
@extendVisitor('layout')
@section('content')
{!! $page->content !!}
<h3>Subpages</h3>
@forelse($page->subpages() as $subpage)
<h3>{{$subpage->title}}</h3>
<p>{{$subpage->meta_description}}</p>
@empty
<em>None :(</em>
@endforelse
@endsection