FIX: fix cache-related bug
This commit is contained in:
@@ -1,10 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Templates\Base\OnePage\Http\Controllers\Admin;
|
namespace Templates\Base\OnePage\Http\Controllers\Admin;
|
||||||
|
|
||||||
use App\CMS\Contracts\Repositories\Content as IContent;
|
use App\CMS\Contracts\Repositories\Content as IContent;
|
||||||
use App\CMS\Helpers\Settings;
|
use App\CMS\Helpers\Settings;
|
||||||
use App\Http\Controllers\Admin\Controller;
|
use App\Http\Controllers\Admin\Controller;
|
||||||
use App\Models\Settings as SettingsModel;
|
use App\Models\Settings as SettingsModel;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
use Templates\Base\OnePage\Events\AddPageIntoHomepage;
|
use Templates\Base\OnePage\Events\AddPageIntoHomepage;
|
||||||
@@ -32,7 +34,6 @@ class SetHomepage extends Controller
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Display form for organizing pages on homepage
|
* Display form for organizing pages on homepage
|
||||||
*
|
|
||||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||||
*/
|
*/
|
||||||
public function getPages()
|
public function getPages()
|
||||||
@@ -90,18 +91,11 @@ class SetHomepage extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// try to get page config
|
// try to get page config
|
||||||
$settingsEntry = SettingsModel::where('key', OnePage::HOMEPAGE_PAGES_SETTINGS_KEY)
|
$settingsEntry = SettingsModel::firstOrCreate([
|
||||||
->where('language', LaravelLocalization::getCurrentLocale())
|
'language' => LaravelLocalization::getCurrentLocale(),
|
||||||
->first();
|
'key' => OnePage::HOMEPAGE_PAGES_SETTINGS_KEY
|
||||||
|
]);
|
||||||
if (!$settingsEntry) {
|
$usedPagesIds = (array)json_decode($settingsEntry->value);
|
||||||
$settingsEntry = new SettingsModel();
|
|
||||||
$settingsEntry->language = LaravelLocalization::getCurrentLocale();
|
|
||||||
$settingsEntry->key = OnePage::HOMEPAGE_PAGES_SETTINGS_KEY;
|
|
||||||
$usedPagesIds = [];
|
|
||||||
} else {
|
|
||||||
$usedPagesIds = (array)json_decode($settingsEntry->value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// add page into list of used pages - if not already there
|
// add page into list of used pages - if not already there
|
||||||
if (!in_array($id, $usedPagesIds)) {
|
if (!in_array($id, $usedPagesIds)) {
|
||||||
@@ -111,6 +105,8 @@ class SetHomepage extends Controller
|
|||||||
$settingsEntry->value = json_encode($usedPagesIds);
|
$settingsEntry->value = json_encode($usedPagesIds);
|
||||||
$settingsEntry->save();
|
$settingsEntry->save();
|
||||||
|
|
||||||
|
Cache::forget('settings');
|
||||||
|
|
||||||
// inform other application parts about this event
|
// inform other application parts about this event
|
||||||
Event::fire(new AddPageIntoHomepage($page));
|
Event::fire(new AddPageIntoHomepage($page));
|
||||||
|
|
||||||
@@ -145,10 +141,12 @@ class SetHomepage extends Controller
|
|||||||
$pages = array_values($pages);
|
$pages = array_values($pages);
|
||||||
|
|
||||||
// update in database
|
// update in database
|
||||||
SettingsModel::where('key', OnePage::HOMEPAGE_PAGES_SETTINGS_KEY)
|
$val = SettingsModel::where('key', OnePage::HOMEPAGE_PAGES_SETTINGS_KEY)
|
||||||
->where('language', LaravelLocalization::getCurrentLocale())
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
->update(['value' => json_encode($pages)]);
|
->update(['value' => json_encode($pages)]);
|
||||||
|
|
||||||
|
Cache::forget('settings');
|
||||||
|
|
||||||
// inform other application parts about this event
|
// inform other application parts about this event
|
||||||
Event::fire(new RemovePageFromHomepage($page));
|
Event::fire(new RemovePageFromHomepage($page));
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ Improvement: http://www.html5rocks.com/en/tutorials/dnd/basics/
|
|||||||
@if(isset($homepage))
|
@if(isset($homepage))
|
||||||
@include('admin.snippets.card', [
|
@include('admin.snippets.card', [
|
||||||
'type' => 'primary',
|
'type' => 'primary',
|
||||||
'title' => $homepage->title.' <small>'.trans($homepage->module_name).'</small>',
|
'title' => $homepage->title.' <small>'.trans($homepage->module->name).'</small>',
|
||||||
'body' => '<p>'.str_limit(strip_tags($homepage->content), 200).'</p>',
|
'body' => '<p>'.str_limit(strip_tags($homepage->content), 200).'</p>',
|
||||||
'footerClass' => 'text-right',
|
'footerClass' => 'text-right',
|
||||||
'footer' => '<a href="'.route('content.edit', ['page' => $homepage]).'" class="btn btn-secondary btn-sm"><i class="fa fa-fw fa-pencil"></i></a>'
|
'footer' => '<a href="'.route('content.edit', ['page' => $homepage]).'" class="btn btn-secondary btn-sm"><i class="fa fa-fw fa-pencil"></i></a>'
|
||||||
@@ -34,7 +34,7 @@ Improvement: http://www.html5rocks.com/en/tutorials/dnd/basics/
|
|||||||
|
|
||||||
|
|
||||||
@include('admin.snippets.card', [
|
@include('admin.snippets.card', [
|
||||||
'title' => $allPages[$pageId]->title.' <small>'.trans($allPages[$pageId]->module_name).'</small>',
|
'title' => $allPages[$pageId]->title.' <small>'.trans($allPages[$pageId]->module->name).'</small>',
|
||||||
'body' => '<p>'.str_limit(strip_tags($allPages[$pageId]->content), 200).'</p>',
|
'body' => '<p>'.str_limit(strip_tags($allPages[$pageId]->content), 200).'</p>',
|
||||||
'footerClass' => 'text-right',
|
'footerClass' => 'text-right',
|
||||||
'footer' => '
|
'footer' => '
|
||||||
@@ -55,7 +55,7 @@ Improvement: http://www.html5rocks.com/en/tutorials/dnd/basics/
|
|||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<div class="header-block">
|
<div class="header-block">
|
||||||
<p class="title">{{$page->title}}
|
<p class="title">{{$page->title}}
|
||||||
<small>@lang($page->module_name)</small>
|
<small>@lang($page->module->name)</small>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user