FEATURE: minor UI tweaks in template settings + add events into OnePage base template
This commit is contained in:
@@ -4,7 +4,11 @@ namespace Templates\Base\OnePage\Http\Controllers\Admin;
|
||||
use App\Helpers\Settings;
|
||||
use App\Http\Controllers\Admin\Controller;
|
||||
use App\Models\Content;
|
||||
use App\Models\Settings as SettingsModel;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||
use Templates\Base\OnePage\Events\AddPageIntoHomepage;
|
||||
use Templates\Base\OnePage\Events\RemovePageFromHomepage;
|
||||
use Templates\Base\OnePage\Handlers\OnePage;
|
||||
|
||||
class SetHomepage extends Controller
|
||||
@@ -79,19 +83,19 @@ class SetHomepage extends Controller
|
||||
{
|
||||
$page = Content::findOrFail($id);
|
||||
|
||||
if ($page->is_template) {
|
||||
if ($page->is_homepage) {
|
||||
return redirect()
|
||||
->back()
|
||||
->with('error', trans('template::admin/setHomepage.cannotSetHomepageAsPartOfHomepage'));
|
||||
}
|
||||
|
||||
// try to get page config
|
||||
$settingsEntry = \App\Models\Settings::where('key', OnePage::HOMEPAGE_PAGES_SETTINGS_KEY)
|
||||
->where('language', LaravelLocalization::getCurrentLocale())
|
||||
->first();
|
||||
$settingsEntry = SettingsModel::where('key', OnePage::HOMEPAGE_PAGES_SETTINGS_KEY)
|
||||
->where('language', LaravelLocalization::getCurrentLocale())
|
||||
->first();
|
||||
|
||||
if (!$settingsEntry) {
|
||||
$settingsEntry = new \App\Models\Settings();
|
||||
$settingsEntry = new SettingsModel();
|
||||
$settingsEntry->language = LaravelLocalization::getCurrentLocale();
|
||||
$settingsEntry->key = OnePage::HOMEPAGE_PAGES_SETTINGS_KEY;
|
||||
$usedPagesIds = [];
|
||||
@@ -99,6 +103,7 @@ class SetHomepage extends Controller
|
||||
$usedPagesIds = (array)json_decode($settingsEntry->value);
|
||||
}
|
||||
|
||||
// add page into list of used pages - if not already there
|
||||
if (!in_array($id, $usedPagesIds)) {
|
||||
$usedPagesIds[] = $id;
|
||||
}
|
||||
@@ -106,6 +111,9 @@ class SetHomepage extends Controller
|
||||
$settingsEntry->value = json_encode($usedPagesIds);
|
||||
$settingsEntry->save();
|
||||
|
||||
// inform other application parts about this event
|
||||
Event::fire(new AddPageIntoHomepage($page));
|
||||
|
||||
return redirect()
|
||||
->back()
|
||||
->with('success', trans('template::admin/setHomepage.successfullyAdded'));
|
||||
@@ -122,6 +130,8 @@ class SetHomepage extends Controller
|
||||
{
|
||||
$pages = (array)json_decode(Settings::get(OnePage::HOMEPAGE_PAGES_SETTINGS_KEY, '{}'));
|
||||
|
||||
$page = Content::findOrFail($id);
|
||||
|
||||
if (!in_array($id, $pages)) {
|
||||
return redirect()
|
||||
->back()
|
||||
@@ -135,9 +145,12 @@ class SetHomepage extends Controller
|
||||
$pages = array_values($pages);
|
||||
|
||||
// update in database
|
||||
\App\Models\Settings::where('key', OnePage::HOMEPAGE_PAGES_SETTINGS_KEY)
|
||||
->where('language', LaravelLocalization::getCurrentLocale())
|
||||
->update(['value' => json_encode($pages)]);
|
||||
SettingsModel::where('key', OnePage::HOMEPAGE_PAGES_SETTINGS_KEY)
|
||||
->where('language', LaravelLocalization::getCurrentLocale())
|
||||
->update(['value' => json_encode($pages)]);
|
||||
|
||||
// inform other application parts about this event
|
||||
Event::fire(new RemovePageFromHomepage($page));
|
||||
|
||||
return redirect()
|
||||
->back()
|
||||
|
||||
Reference in New Issue
Block a user