diff --git a/templates/Base/OnePage/Events/AddPageIntoHomepage.php b/templates/Base/OnePage/Events/AddPageIntoHomepage.php
new file mode 100644
index 00000000..82209e0b
--- /dev/null
+++ b/templates/Base/OnePage/Events/AddPageIntoHomepage.php
@@ -0,0 +1,18 @@
+page = $page;
+ }
+}
\ No newline at end of file
diff --git a/templates/Base/OnePage/Events/RemovePageFromHomepage.php b/templates/Base/OnePage/Events/RemovePageFromHomepage.php
new file mode 100644
index 00000000..3a1889a3
--- /dev/null
+++ b/templates/Base/OnePage/Events/RemovePageFromHomepage.php
@@ -0,0 +1,18 @@
+page = $page;
+ }
+}
\ No newline at end of file
diff --git a/templates/Base/OnePage/Handlers/OnePage.php b/templates/Base/OnePage/Handlers/OnePage.php
index d68b2181..28155fb1 100644
--- a/templates/Base/OnePage/Handlers/OnePage.php
+++ b/templates/Base/OnePage/Handlers/OnePage.php
@@ -4,6 +4,7 @@ namespace Templates\Base\OnePage\Handlers;
use App\Handlers\Contracts\TemplateHandler;
use App\Helpers\PageRenderer;
use App\Helpers\Settings;
+use App\Models\ActionLogType;
use App\Models\Content;
use App\Models\Module;
use App\Models\User;
@@ -58,13 +59,14 @@ abstract class OnePage implements TemplateHandler
// create real content from pages
$pagesRaw = $pagesInTemplates = [];
foreach ($pages as $page) {
+ // save pages as models only
$pagesRaw[$page->url] = $page;
+
+ // save rendered pages
$pagesInTemplates[$page->url] = PageRenderer::render($page)
->render();
}
- // dd($pagesRaw);
-
// return pages into template
return ['pagesHtml' => $pagesInTemplates, 'pagesRaw' => $pagesRaw];
}
@@ -74,14 +76,37 @@ abstract class OnePage implements TemplateHandler
/**
* Install module
- *
- * @return mixed
*/
public static function install()
{
+ // register action log types
+
+ $types = [
+ [
+ 'string_id' => 'pageRemovedFromHomepage',
+ 'name' => 'template::admin/setHomepage.events.names.removedPage',
+ 'value' => 'template::admin/setHomepage.events.descriptions.removedPage',
+ ],
+ [
+ 'string_id' => 'pageAddedIntoHomepage',
+ 'name' => 'template::admin/setHomepage.events.names.addedPage',
+ 'value' => 'template::admin/setHomepage.events.descriptions.addedPage',
+ ],
+
+ ];
+ foreach ($types as $type) {
+ ActionLogType::create($type);
+ }
}
+ /**
+ * Uninstall template
+ *
+ * @param Module $template
+ */
public static function uninstall(Module $template)
{
+ ActionLogType::whereIn('string_id', ['pageRemovedFromHomepage', 'pageAddedIntoHomepage'])
+ ->delete();
}
}
\ No newline at end of file
diff --git a/templates/Base/OnePage/Http/Controllers/Admin/SetHomepage.php b/templates/Base/OnePage/Http/Controllers/Admin/SetHomepage.php
index 026e4a1f..b50a2d83 100644
--- a/templates/Base/OnePage/Http/Controllers/Admin/SetHomepage.php
+++ b/templates/Base/OnePage/Http/Controllers/Admin/SetHomepage.php
@@ -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()
diff --git a/templates/Base/OnePage/Listeners/LogAddingPage.php b/templates/Base/OnePage/Listeners/LogAddingPage.php
new file mode 100644
index 00000000..264bc91d
--- /dev/null
+++ b/templates/Base/OnePage/Listeners/LogAddingPage.php
@@ -0,0 +1,23 @@
+ $event->page->id,
+ 'title' => $event->page->title
+ ];
+
+ $this->saveLog($parameters);
+ }
+
+ protected function getName()
+ {
+ return 'pageAddedIntoHomepage';
+ }
+}
\ No newline at end of file
diff --git a/templates/Base/OnePage/Listeners/LogRemovingPage.php b/templates/Base/OnePage/Listeners/LogRemovingPage.php
new file mode 100644
index 00000000..fd0872de
--- /dev/null
+++ b/templates/Base/OnePage/Listeners/LogRemovingPage.php
@@ -0,0 +1,23 @@
+ $event->page->id,
+ 'title' => $event->page->title
+ ];
+
+ $this->saveLog($parameters);
+ }
+
+ protected function getName()
+ {
+ return 'pageRemovedFromHomepage';
+ }
+}
\ No newline at end of file
diff --git a/templates/Base/OnePage/Providers/EventProvider.php b/templates/Base/OnePage/Providers/EventProvider.php
index 801b4b16..1a4c68b0 100644
--- a/templates/Base/OnePage/Providers/EventProvider.php
+++ b/templates/Base/OnePage/Providers/EventProvider.php
@@ -3,11 +3,17 @@ namespace Templates\Base\OnePage\Providers;
use App\Events\SetHomepage;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
+use Templates\Base\OnePage\Events\AddPageIntoHomepage;
+use Templates\Base\OnePage\Events\RemovePageFromHomepage;
use Templates\Base\OnePage\Listeners\HomepageChanged;
+use Templates\Base\OnePage\Listeners\LogAddingPage;
+use Templates\Base\OnePage\Listeners\LogRemovingPage;
class EventProvider extends ServiceProvider
{
protected $listen = [
- SetHomepage::class => [HomepageChanged::class]
+ SetHomepage::class => [HomepageChanged::class],
+ AddPageIntoHomepage::class => [LogAddingPage::class],
+ RemovePageFromHomepage::class => [LogRemovingPage::class],
];
}
\ No newline at end of file
diff --git a/templates/Base/OnePage/Resources/lang/en/admin/setHomepage.php b/templates/Base/OnePage/Resources/lang/en/admin/setHomepage.php
index 7da9432c..9b3038ae 100644
--- a/templates/Base/OnePage/Resources/lang/en/admin/setHomepage.php
+++ b/templates/Base/OnePage/Resources/lang/en/admin/setHomepage.php
@@ -10,6 +10,16 @@ return [
'usedPages' => 'Used pages',
'notUsedPages' => 'Not used pages',
'reallyRemovePage' => 'Do you really want to remove this page from homepage?',
- 'cannotSetHomepageAsPartOfHomepage' => 'Cannot set currently set homepage as one of homepage pages.'
-
+ 'cannotSetHomepageAsPartOfHomepage' => 'Cannot set currently set homepage as one of homepage pages.',
+ 'addToHomepage' => 'Add page into homepage',
+ 'events' => [
+ 'names' => [
+ 'removedPage' => 'Removed page from homepage',
+ 'addedPage' => 'Added page into homepage'
+ ],
+ 'descriptions' => [
+ 'removedPage' => 'Removed page #:id ":title" from homepage.',
+ 'addedPage' => 'Added page #:id ":title" into homepage.'
+ ]
+ ]
];
\ No newline at end of file
diff --git a/templates/Base/OnePage/Resources/views/admin/homepage/set.blade.php b/templates/Base/OnePage/Resources/views/admin/homepage/set.blade.php
index 1d7e96a6..7ddc086f 100644
--- a/templates/Base/OnePage/Resources/views/admin/homepage/set.blade.php
+++ b/templates/Base/OnePage/Resources/views/admin/homepage/set.blade.php
@@ -14,10 +14,8 @@ Improvement: http://www.html5rocks.com/en/tutorials/dnd/basics/
@include('admin.snippets.card', [
'type' => 'primary',
- 'title' => $homepage->title,
- 'body' => '
-
'.trans($homepage->module_name).'
-
'.str_limit(strip_tags($homepage->content), 200).'
',
+ 'title' => $homepage->title.'
'.trans($homepage->module_name).'',
+ 'body' => '
'.str_limit(strip_tags($homepage->content), 200).'
',
'footerClass' => 'text-right',
'footer' => '
'
])
@@ -33,10 +31,8 @@ Improvement: http://www.html5rocks.com/en/tutorials/dnd/basics/
@include('admin.snippets.card', [
- 'title' => $allPages[$pageId]->title,
- 'body' => '
-
'.trans($allPages[$pageId]->module_name).'
-
'.str_limit(strip_tags($allPages[$pageId]->content), 200).'
',
+ 'title' => $allPages[$pageId]->title.'
'.trans($allPages[$pageId]->module_name).'',
+ 'body' => '
'.str_limit(strip_tags($allPages[$pageId]->content), 200).'
',
'footerClass' => 'text-right',
'footer' => '
@@ -55,21 +51,25 @@ Improvement: http://www.html5rocks.com/en/tutorials/dnd/basics/
-
- (@lang($page->module_name))
-
-
{{str_limit(strip_tags($page->content), 100)}}
+ {{str_limit(strip_tags($page->content), 100)}}
@empty
diff --git a/templates/Jednostrankovka/Handler.php b/templates/Jednostrankovka/Handler.php
index 753a92af..7f5b1db8 100644
--- a/templates/Jednostrankovka/Handler.php
+++ b/templates/Jednostrankovka/Handler.php
@@ -31,8 +31,13 @@ class Handler extends OnePage
{
}
+ /**
+ * Install template
+ */
public static function install()
{
+ parent::install();
+
try {
Artisan::call('install-module', ['name' => 'StaticPages']);
} catch (\Exception $e) {