REFACTORING: another ugly commit full of refactored code
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\CMS\Handlers\Contracts;
|
namespace App\CMS\Contracts\Content;
|
||||||
|
|
||||||
use App\Models\Content\Content;
|
use App\Models\Content\Content;
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,18 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\CMS\Contracts\Repositories;
|
namespace App\CMS\Contracts\Repositories;
|
||||||
|
|
||||||
|
use App\Models\Content\Content as ContentModel;
|
||||||
|
use App\Models\Module as ModuleModel;
|
||||||
|
|
||||||
interface Module extends BaseRepository {
|
interface Module extends BaseRepository {
|
||||||
|
|
||||||
public function getCreateContentTitle(\App\Models\Module $module);
|
public function getCreateContentTitle(ModuleModel $module);
|
||||||
|
|
||||||
public function getUpdateContentTitle(\App\Models\Module $module);
|
public function getUpdateContentTitle(ModuleModel $module, ContentModel $content = null);
|
||||||
|
|
||||||
public function getOverviewTitle(\App\Models\Module $module);
|
public function getOverviewTitle(ModuleModel $module);
|
||||||
|
|
||||||
|
public function getByHandler($handler);
|
||||||
|
|
||||||
|
public function call(ModuleModel $module, $method, ...$parameters);
|
||||||
}
|
}
|
||||||
@@ -2,15 +2,26 @@
|
|||||||
namespace App\Cms\Interactions\Admin\Content;
|
namespace App\Cms\Interactions\Admin\Content;
|
||||||
|
|
||||||
use App\CMS\Contracts\Interaction;
|
use App\CMS\Contracts\Interaction;
|
||||||
|
use App\CMS\Contracts\Repositories\Module;
|
||||||
use App\CMS\Enumerations\ContentStatuses;
|
use App\CMS\Enumerations\ContentStatuses;
|
||||||
use App\CMS\Helpers\CurrentTemplate;
|
use App\CMS\Helpers\CurrentTemplate;
|
||||||
use App\Events\EditContent as EditContentEvent;
|
use App\Events\EditContent as EditContentEvent;
|
||||||
use App\Http\Requests\Request;
|
use App\Http\Requests\Request;
|
||||||
|
use Illuminate\Support\Facades\App;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class EditContent implements Interaction
|
class EditContent implements Interaction
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var Module
|
||||||
|
*/
|
||||||
|
protected $module;
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->module = App::make(Module::class);
|
||||||
|
}
|
||||||
|
|
||||||
public function handle(Request $request, $parameters)
|
public function handle(Request $request, $parameters)
|
||||||
{
|
{
|
||||||
$page = $parameters[0];
|
$page = $parameters[0];
|
||||||
@@ -57,7 +68,10 @@ class EditContent implements Interaction
|
|||||||
|
|
||||||
list($revision, $changedColumns) = $page->updateWithHistory($fields, $data);
|
list($revision, $changedColumns) = $page->updateWithHistory($fields, $data);
|
||||||
|
|
||||||
$changedColumns += call_user_func_array([$page->module_handler, 'edit'], [&$page, $request, $revision]);
|
$module = $this->module->getByHandler($page->module_handler);
|
||||||
|
|
||||||
|
|
||||||
|
$changedColumns += $this->module->call($module, 'edit', [&$page, $request, $revision]);
|
||||||
|
|
||||||
|
|
||||||
// move to interaction
|
// move to interaction
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ class Content extends Repository implements IContent
|
|||||||
->orWhereNull('published_to');
|
->orWhereNull('published_to');
|
||||||
})
|
})
|
||||||
->where('language', LaravelLocalization::getCurrentLocale())
|
->where('language', LaravelLocalization::getCurrentLocale())
|
||||||
|
->whereNull('contents.deleted_at')
|
||||||
->where('modules.enabled', true);
|
->where('modules.enabled', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,64 +2,72 @@
|
|||||||
namespace App\CMS\Repositories;
|
namespace App\CMS\Repositories;
|
||||||
|
|
||||||
use App\CMS\Contracts\Repositories\Module as IModule;
|
use App\CMS\Contracts\Repositories\Module as IModule;
|
||||||
|
use App\Models\Content\Content;
|
||||||
use App\Models\Module as ModuleModel;
|
use App\Models\Module as ModuleModel;
|
||||||
|
|
||||||
class Module extends Repository implements IModule
|
class Module extends Repository implements IModule
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* @var ModuleModel
|
|
||||||
*/
|
|
||||||
private $module;
|
|
||||||
|
|
||||||
public function __construct(ModuleModel $module)
|
public function __construct(ModuleModel $module)
|
||||||
{
|
{
|
||||||
$this->module = $module;
|
$this->model = $module;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOne($id = null)
|
public function getOne($id = null)
|
||||||
{
|
{
|
||||||
if (!is_null($id)) {
|
if (is_null($id)) {
|
||||||
|
|
||||||
if (is_numeric($id)) {
|
|
||||||
return ModuleModel::findOrFail($id);
|
|
||||||
} else {
|
|
||||||
return ModuleModel::where('alias', $id)
|
|
||||||
->firstOrFail();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return new ModuleModel();
|
return new ModuleModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_numeric($id)) {
|
||||||
|
return ModuleModel::findOrFail($id);
|
||||||
|
} else {
|
||||||
|
return ModuleModel::where('alias', $id)
|
||||||
|
->firstOrFail();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getCreateContentTitle(ModuleModel $module)
|
public function getCreateContentTitle(ModuleModel $module)
|
||||||
{
|
{
|
||||||
$pageHeading = trans('admin/contents.new', ['name' => trans($module->name)]);
|
$pageHeading = trans('admin/contents.new', ['name' => trans($module->name)]);
|
||||||
if (is_callable([$module->handler, 'getCreateNewTitle'])) {
|
$moduleHeading = $this->call($module, 'getCreateNewTitle');
|
||||||
$pageHeading = call_user_func([$module->handler, 'getCreateNewTitle']);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $pageHeading;
|
return is_null($moduleHeading) ? $pageHeading : $moduleHeading;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUpdateContentTitle(ModuleModel $module)
|
public function getUpdateContentTitle(ModuleModel $module, Content $content = null)
|
||||||
{
|
{
|
||||||
// TODO: Implement getUpdateContentTitle() method.
|
$pageHeading = trans('admin/contents.new', ['name' => trans($module->name)]);
|
||||||
|
$moduleHeading = $this->call($module, 'getEditTitle', $content);
|
||||||
|
|
||||||
|
return is_null($moduleHeading) ? $pageHeading : $moduleHeading;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOverviewTitle(ModuleModel $module)
|
public function getOverviewTitle(ModuleModel $module)
|
||||||
{
|
{
|
||||||
$pageHeading = 'admin/contents.overview';
|
$pageHeading = 'admin/contents.overview';
|
||||||
|
$moduleHeading = $this->call($module, 'getOverviewTitle');
|
||||||
|
|
||||||
// does user want to filter results using module?
|
return is_null($moduleHeading) ? $pageHeading : $moduleHeading;
|
||||||
if (!is_null($module) && is_callable([$module->handler, 'getOverviewTitle'])) {
|
|
||||||
$pageHeading = call_user_func([$module->handler, 'getOverviewTitle']);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $pageHeading;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function all()
|
public function all()
|
||||||
{
|
{
|
||||||
// TODO: Implement all() method.
|
return ModuleModel::where('enabled', true)
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getByHandler($handler)
|
||||||
|
{
|
||||||
|
return ModuleModel::where('handler', $handler)
|
||||||
|
->firstOrFail();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function call(ModuleModel $module, $method, ...$parameters)
|
||||||
|
{
|
||||||
|
if (!is_null($module) && is_callable([$module->handler, $method])) {
|
||||||
|
return call_user_func_array([$module->handler, $method], $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\Http\Controllers\Admin\Contents;
|
namespace App\Http\Controllers\Admin\Contents;
|
||||||
|
|
||||||
|
use App\CMS\Contracts\Repositories\Content as IContent;
|
||||||
|
use App\CMS\Contracts\Repositories\Module as IModuleRepository;
|
||||||
|
use App\CMS\Contracts\Repositories\Template as ITemplate;
|
||||||
use App\CMS\Enumerations\ContentStatuses;
|
use App\CMS\Enumerations\ContentStatuses;
|
||||||
use App\Cms\Handlers\Interactions\Interaction;
|
use App\Cms\Handlers\Interactions\Interaction;
|
||||||
use App\CMS\Helpers\CurrentTemplate;
|
use App\CMS\Helpers\CurrentTemplate;
|
||||||
@@ -12,16 +15,9 @@ use App\Http\Requests\Request;
|
|||||||
use App\Models\Content\Content;
|
use App\Models\Content\Content;
|
||||||
use App\Models\Content\ContentHistory;
|
use App\Models\Content\ContentHistory;
|
||||||
use App\Models\FileManager\File;
|
use App\Models\FileManager\File;
|
||||||
use App\Models\Module;
|
|
||||||
use App\Models\Templates\Template;
|
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Modules\Categories\Entities\Category;
|
|
||||||
use Pingpong\Modules\Facades\Module as ModuleInstance;
|
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
|
||||||
use App\CMS\Contracts\Repositories\Content as IContent;
|
|
||||||
use App\CMS\Contracts\Repositories\Module as IModuleRepository;
|
|
||||||
use App\CMS\Contracts\Repositories\Template as ITemplate;
|
|
||||||
use Modules\Categories\Contracts\Repositories\Category as ICategory;
|
use Modules\Categories\Contracts\Repositories\Category as ICategory;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
|
||||||
class EditContent extends Controller
|
class EditContent extends Controller
|
||||||
{
|
{
|
||||||
@@ -85,15 +81,12 @@ class EditContent extends Controller
|
|||||||
$page = $this->content->getOne($url);
|
$page = $this->content->getOne($url);
|
||||||
|
|
||||||
// get module ID
|
// get module ID
|
||||||
$module = Module::where('handler', $page->module_handler)
|
$module = $this->module->getByHandler($page->module_handler);
|
||||||
->firstOrFail();
|
$pageHeading = $this->module->getUpdateContentTitle($module, $page);
|
||||||
|
|
||||||
$pageHeading = $this->module->getUpdateContentTitle($module);
|
|
||||||
$templates = $this->template->getForModule($module);
|
$templates = $this->template->getForModule($module);
|
||||||
$categories = $this->category->getForModule($module);
|
$categories = $this->category->getForModule($module);
|
||||||
$history = $this->history->getStructuredHistoryOf($page);
|
$history = $this->history->getStructuredHistoryOf($page);
|
||||||
|
|
||||||
|
|
||||||
// modify data for edit form according to installed template
|
// modify data for edit form according to installed template
|
||||||
call_user_func_array([CurrentTemplate::handler(), 'beforePopulatingEditForm'], [&$page]);
|
call_user_func_array([CurrentTemplate::handler(), 'beforePopulatingEditForm'], [&$page]);
|
||||||
|
|
||||||
@@ -106,8 +99,8 @@ class EditContent extends Controller
|
|||||||
'categories' => $categories,
|
'categories' => $categories,
|
||||||
'rootPages' => $this->content->getOverview(),
|
'rootPages' => $this->content->getOverview(),
|
||||||
'templates' => $templates,
|
'templates' => $templates,
|
||||||
'formSectionNames' => call_user_func([$page->module_handler, 'getExtendedFormSections']),
|
'formSectionNames' => $this->module->call($module, 'getExtendedFormSections'),
|
||||||
'formSections' => call_user_func([$page->module_handler, 'getExtendedFormInputsEdit']),
|
'formSections' => $this->module->call($module, 'getExtendedFormInputsEdit'),
|
||||||
'historySize' => count($history['changesets'])
|
'historySize' => count($history['changesets'])
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
@@ -126,7 +119,7 @@ class EditContent extends Controller
|
|||||||
/**
|
/**
|
||||||
* @var $page Content
|
* @var $page Content
|
||||||
*/
|
*/
|
||||||
$page = Content::findOrFail($id);
|
$page = $this->content->getOne($id);
|
||||||
} catch (NotFoundHttpException $e) {
|
} catch (NotFoundHttpException $e) {
|
||||||
|
|
||||||
// log attempt of invalid edit
|
// log attempt of invalid edit
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ class History extends Controller
|
|||||||
|
|
||||||
return view('admin/history.diff', [
|
return view('admin/history.diff', [
|
||||||
'change' => $change,
|
'change' => $change,
|
||||||
'columnName' => 'Page content',
|
|
||||||
'diff' => $diff
|
'diff' => $diff
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Visitor;
|
namespace App\Http\Controllers\Visitor;
|
||||||
|
|
||||||
|
use App\Models\Content\Content as ContentModel;
|
||||||
|
use App\CMS\Contracts\Repositories\Content;
|
||||||
use App\CMS\Helpers\PageRenderer;
|
use App\CMS\Helpers\PageRenderer;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\Content\Content;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class ContentPage extends Controller
|
class ContentPage extends Controller
|
||||||
@@ -43,11 +44,10 @@ class ContentPage extends Controller
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
protected function renderPage(Content $page)
|
protected function renderPage(ContentModel $page)
|
||||||
{
|
{
|
||||||
// test if loaded page is visible or not
|
// test if loaded page is visible or not
|
||||||
if ($page->status == Content::STATUS_PROTECTED && !Auth::user()) {
|
if ($page->isProtected() && !Auth::user()) {
|
||||||
// throw new \Exception('Cannot access protected resources');
|
|
||||||
abort(404);
|
abort(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Visitor;
|
namespace App\Http\Controllers\Visitor;
|
||||||
|
|
||||||
use App\Http\Requests;
|
|
||||||
|
|
||||||
class Homepage extends ContentPage
|
class Homepage extends ContentPage
|
||||||
{
|
{
|
||||||
public function getIndex()
|
public function getIndex()
|
||||||
@@ -17,10 +15,6 @@ class Homepage extends ContentPage
|
|||||||
}
|
}
|
||||||
|
|
||||||
// render page
|
// render page
|
||||||
// try {
|
return $this->renderPage($page);
|
||||||
return $this->renderPage($page);
|
|
||||||
// } catch (\Exception $e) {
|
|
||||||
// return view('errors.homepageNotAvailable', ['exception' => $e, 'reason' => 'exception']);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
namespace Modules\Blog\Article\Handlers;
|
namespace Modules\Blog\Article\Handlers;
|
||||||
|
|
||||||
use App\CMS\Contracts\Content\AdvancedContentModifier;
|
use App\CMS\Contracts\Content\AdvancedContentModifier;
|
||||||
|
use App\CMS\Contracts\Content\ContentTitles;
|
||||||
use App\CMS\Contracts\Modules\InstallableModule;
|
use App\CMS\Contracts\Modules\InstallableModule;
|
||||||
use App\CMS\Handlers\Contracts\ContentTitles;
|
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\Handler;
|
||||||
use App\Http\Controllers\Admin\Contents\EditContent;
|
use App\Http\Controllers\Admin\Contents\EditContent;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
@@ -58,8 +58,7 @@ class Article extends Handler implements ContentTitles, AdvancedContentModifier,
|
|||||||
* @param Content $content
|
* @param Content $content
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed|void
|
||||||
* @internal param Widget $widget
|
|
||||||
*/
|
*/
|
||||||
public static function createNew(Content &$content, Request $request)
|
public static function createNew(Content &$content, Request $request)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Modules\Blog\Article\Listeners;
|
namespace Modules\Blog\Article\Listeners;
|
||||||
|
|
||||||
use App\Listeners\Logger;
|
use App\Listeners\Loggers\Logger;
|
||||||
use Modules\Blog\Article\Events\ApprovedComment;
|
use Modules\Blog\Article\Events\ApprovedComment;
|
||||||
|
|
||||||
class LogCommentApproval extends Logger
|
class LogCommentApproval extends Logger
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
namespace Modules\Blog\Article\Listeners;
|
namespace Modules\Blog\Article\Listeners;
|
||||||
|
|
||||||
use App\Listeners\Logger;
|
use App\Listeners\Loggers\Logger;
|
||||||
use Modules\Blog\Article\Events\ApprovedComment;
|
|
||||||
use Modules\Blog\Article\Events\DeletedComment;
|
use Modules\Blog\Article\Events\DeletedComment;
|
||||||
|
|
||||||
class LogDeletedComment extends Logger
|
class LogDeletedComment extends Logger
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Modules\Blog\Article\Listeners;
|
namespace Modules\Blog\Article\Listeners;
|
||||||
|
|
||||||
use App\Listeners\Logger;
|
use App\Listeners\Loggers\Logger;
|
||||||
use Modules\Blog\Article\Events\CreatedComment;
|
use Modules\Blog\Article\Events\CreatedComment;
|
||||||
|
|
||||||
class LogNewComment extends Logger
|
class LogNewComment extends Logger
|
||||||
@@ -15,8 +15,9 @@ class LogNewComment extends Logger
|
|||||||
public function handle(CreatedComment $event)
|
public function handle(CreatedComment $event)
|
||||||
{
|
{
|
||||||
// log only logged-in users
|
// log only logged-in users
|
||||||
if (!$event->comment->user_id)
|
if (!$event->comment->user_id) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$parameters = [
|
$parameters = [
|
||||||
'author' => $event->comment->name,
|
'author' => $event->comment->name,
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
namespace Modules\ContactForm\Handlers;
|
namespace Modules\ContactForm\Handlers;
|
||||||
|
|
||||||
use App\CMS\Contracts\Content\AdvancedContentModifier;
|
use App\CMS\Contracts\Content\AdvancedContentModifier;
|
||||||
|
use App\CMS\Contracts\Content\ContentTitles;
|
||||||
use App\CMS\Enumerations\ModulesHandlerToId;
|
use App\CMS\Enumerations\ModulesHandlerToId;
|
||||||
use App\CMS\Handlers\Contracts\ContentTitles;
|
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\Handler;
|
||||||
use App\Http\Controllers\Admin\Contents\EditContent;
|
use App\Http\Controllers\Admin\Contents\EditContent;
|
||||||
use App\Http\Requests\Request;
|
use App\Http\Requests\Request;
|
||||||
|
|||||||
@@ -1,113 +0,0 @@
|
|||||||
<?php namespace Modules\Gallery\Http\Controllers\Admin;
|
|
||||||
|
|
||||||
use App\Models\Content\Content;
|
|
||||||
use App\Models\Widgets\Widget;
|
|
||||||
use App\Models\Widgets\WidgetType;
|
|
||||||
use App\CMS\Widgets\OrbitSlider\OrbitSlider;
|
|
||||||
use Pingpong\Modules\Routing\Controller;
|
|
||||||
|
|
||||||
class CreateOrbitSlider extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var Widget
|
|
||||||
*/
|
|
||||||
private $widget;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* CreateOrbitSlider constructor.
|
|
||||||
*
|
|
||||||
* @param Widget $widget
|
|
||||||
*/
|
|
||||||
public function __construct(Widget $widget)
|
|
||||||
{
|
|
||||||
$this->widget = $widget;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load gallery or redirect user back to content edit form
|
|
||||||
*
|
|
||||||
* @param $id
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
protected function getGallery($id)
|
|
||||||
{
|
|
||||||
$content = Content::where('module_handler', config('gallery.handler'))
|
|
||||||
->findOrFail($id);
|
|
||||||
$content->module_settings = json_decode($content->module_settings);
|
|
||||||
|
|
||||||
// check if gallery has assigned some directory id
|
|
||||||
if (!isset($content->module_settings->directoryId)) {
|
|
||||||
return redirect()
|
|
||||||
->route('content.edit', ['id' => $id])
|
|
||||||
->with('error', trans('gallery::admin/content.invalidGallery'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $content;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load widget type for Orbit Slider. In case it does not exist, redirect user back to content edit form.
|
|
||||||
*
|
|
||||||
* @param $id
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
protected function getOrbitSliderWidgetType($id)
|
|
||||||
{
|
|
||||||
// try to load widget type for slider
|
|
||||||
$widgetType = WidgetType::where('handler', OrbitSlider::class)
|
|
||||||
->first();
|
|
||||||
|
|
||||||
// check if widget type exists
|
|
||||||
if (!$widgetType) {
|
|
||||||
return redirect()
|
|
||||||
->route('content.edit', ['id' => $id])
|
|
||||||
->with('error', trans('gallery::admin/content.orbitSliderMissing'));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $widgetType;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method for creating slider from photogallery
|
|
||||||
*
|
|
||||||
* @param $id
|
|
||||||
*
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function createNew($id)
|
|
||||||
{
|
|
||||||
// try to find gallery with specified ID
|
|
||||||
$content = $this->getGallery($id);
|
|
||||||
|
|
||||||
// load info about orbit slider widget
|
|
||||||
$widgetType = $this->getOrbitSliderWidgetType($id);
|
|
||||||
|
|
||||||
// create slider basic config
|
|
||||||
$sliderSettings = (object)[
|
|
||||||
'name' => $content->title,
|
|
||||||
'description' => $content->meta_description,
|
|
||||||
'directoryId' => $content->module_settings->directoryId,
|
|
||||||
'useExistingDirectory' => true,
|
|
||||||
];
|
|
||||||
|
|
||||||
// try to create the slider
|
|
||||||
try {
|
|
||||||
$slider = $this->widget->createNew($widgetType, $sliderSettings);
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
return redirect()
|
|
||||||
->route('content.edit', ['id' => $id])
|
|
||||||
->with('error', trans('gallery::admin/content.sliderFailed', ['message' => $e->getMessage()]));
|
|
||||||
}
|
|
||||||
|
|
||||||
// update gallery info
|
|
||||||
$content->module_settings->slider = $slider->id;
|
|
||||||
$content->module_settings = json_encode($content->module_settings);
|
|
||||||
$content->save();
|
|
||||||
|
|
||||||
return redirect()
|
|
||||||
->route('content.edit', ['id' => $id])
|
|
||||||
->with('success', trans('gallery::admin/content.sliderCreated'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
<?php
|
|
||||||
Route::group([
|
|
||||||
'middleware' => ['admin'],
|
|
||||||
'namespace' => 'Modules\Gallery\Http\Controllers\Admin',
|
|
||||||
'prefix' => LaravelLocalization::setLocale() . 'admin/gallery'
|
|
||||||
], function () {
|
|
||||||
|
|
||||||
// method for creating slider from photogallery
|
|
||||||
Route::get('makeSlider/{id}', 'CreateOrbitSlider@createNew')
|
|
||||||
->name('gallery.makeSlider');
|
|
||||||
});
|
|
||||||
@@ -1,15 +1,2 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Register Namespaces And Routes
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| When a module starting, this file will executed automatically. This helps
|
|
||||||
| to register some namespaces like translator or view. Also this file
|
|
||||||
| will load the routes file for each module. You may also modify
|
|
||||||
| this file as you want.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
require __DIR__ . '/Http/routes.php';
|
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
<?php namespace Modules\Staticpages\Database\Seeders;
|
|
||||||
|
|
||||||
use Illuminate\Database\Seeder;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
|
|
||||||
class StaticPagesDatabaseSeeder extends Seeder {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Run the database seeds.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function run()
|
|
||||||
{
|
|
||||||
Model::unguard();
|
|
||||||
|
|
||||||
// $this->call("OthersTableSeeder");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Modules\StaticPages\Handlers;
|
namespace Modules\StaticPages\Handlers;
|
||||||
|
|
||||||
use App\CMS\Enumerations\ModulesHandlerToId;
|
use App\CMS\Contracts\Content\ContentTitles;
|
||||||
use App\CMS\Handlers\Contracts\ContentTitles;
|
|
||||||
use App\CMS\Handlers\Handler;
|
use App\CMS\Handlers\Handler;
|
||||||
use App\Models\Content\Content;
|
use App\Models\Content\Content;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
<?php
|
|
||||||
@@ -1,15 +1 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Register Namespaces And Routes
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| When a module starting, this file will executed automatically. This helps
|
|
||||||
| to register some namespaces like translator or view. Also this file
|
|
||||||
| will load the routes file for each module. You may also modify
|
|
||||||
| this file as you want.
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
require __DIR__ . '/Http/routes.php';
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning">
|
||||||
<strong>@lang('admin/contents.noHomepage')</strong>
|
<strong>@lang('admin/contents.noHomepage')</strong>
|
||||||
</div>
|
</div>
|
||||||
@elseif(!$homepage->isPublic())
|
@elseif($homepage->isProtected())
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info">
|
||||||
<strong>@lang('admin/contents.homepageProtected')</strong>
|
<strong>@lang('admin/contents.homepageProtected')</strong>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ namespace Templates\Base\OnePage\Handlers;
|
|||||||
|
|
||||||
use App\CMS\Contracts\Modules\InstallableModule;
|
use App\CMS\Contracts\Modules\InstallableModule;
|
||||||
use App\CMS\Contracts\Modules\TemplateHandler;
|
use App\CMS\Contracts\Modules\TemplateHandler;
|
||||||
|
use App\CMS\Contracts\Repositories\Content as IContent;
|
||||||
use App\CMS\Helpers\CurrentTemplate;
|
use App\CMS\Helpers\CurrentTemplate;
|
||||||
use App\CMS\Helpers\PageRenderer;
|
use App\CMS\Helpers\PageRenderer;
|
||||||
use App\CMS\Helpers\Settings;
|
use App\CMS\Helpers\Settings;
|
||||||
@@ -60,17 +61,18 @@ abstract class OnePage implements TemplateHandler, InstallableModule
|
|||||||
$pages = Content::whereIn('id', $pageIds);
|
$pages = Content::whereIn('id', $pageIds);
|
||||||
|
|
||||||
if (Auth::user()) {
|
if (Auth::user()) {
|
||||||
$pages = $pages->where('status', '!=', Content::STATUS_DRAFT);
|
$pages = $pages->where('status', '!=', IContent::STATUS_DRAFT);
|
||||||
} else {
|
} else {
|
||||||
$pages = $pages->where('status', Content::STATUS_PUBLIC);
|
$pages = $pages->where('status', IContent::STATUS_PUBLIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
$homepagePages = $pages->get()
|
$homepagePages = $pages->get()
|
||||||
->getDictionary();
|
->getDictionary();
|
||||||
|
|
||||||
foreach ($pageIds as $pageId) {
|
foreach ($pageIds as $pageId) {
|
||||||
if (!isset($homepagePages[$pageId]))
|
if (!isset($homepagePages[$pageId])) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
self::$homepagePages[] = $homepagePages[$pageId];
|
self::$homepagePages[] = $homepagePages[$pageId];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ namespace Templates\Base\OnePage\Http\Controllers\Admin;
|
|||||||
|
|
||||||
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\Content\Content;
|
use App\CMS\Contracts\Repositories\Content as IContent;
|
||||||
use App\Models\Settings as SettingsModel;
|
use App\Models\Settings as SettingsModel;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
|
||||||
@@ -14,7 +14,7 @@ use Templates\Base\OnePage\Handlers\OnePage;
|
|||||||
class SetHomepage extends Controller
|
class SetHomepage extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var Content
|
* @var IContent
|
||||||
*/
|
*/
|
||||||
private $content;
|
private $content;
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ class SetHomepage extends Controller
|
|||||||
*
|
*
|
||||||
* @param Content $content
|
* @param Content $content
|
||||||
*/
|
*/
|
||||||
public function __construct(Content $content)
|
public function __construct(IContent $content)
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
@@ -41,8 +41,7 @@ class SetHomepage extends Controller
|
|||||||
$usedPagesIds = (array)Settings::getJson(OnePage::HOMEPAGE_PAGES_SETTINGS_KEY);
|
$usedPagesIds = (array)Settings::getJson(OnePage::HOMEPAGE_PAGES_SETTINGS_KEY);
|
||||||
|
|
||||||
// get all pages - they will be separated for used and not used on next lines
|
// get all pages - they will be separated for used and not used on next lines
|
||||||
$allPages = $this->content->getOverview()
|
$allPages = $this->content->getOverview();
|
||||||
->get();
|
|
||||||
|
|
||||||
// separate pages to used and not used - with help of $usedPAgesIds array defined above
|
// separate pages to used and not used - with help of $usedPAgesIds array defined above
|
||||||
$pages = $used = $notUsed = [];
|
$pages = $used = $notUsed = [];
|
||||||
@@ -81,7 +80,7 @@ class SetHomepage extends Controller
|
|||||||
*/
|
*/
|
||||||
public function addPage($id)
|
public function addPage($id)
|
||||||
{
|
{
|
||||||
$page = Content::findOrFail($id);
|
$page = $this->content->getOne($id);
|
||||||
|
|
||||||
if ($page->is_homepage) {
|
if ($page->is_homepage) {
|
||||||
return redirect()
|
return redirect()
|
||||||
@@ -130,7 +129,7 @@ class SetHomepage extends Controller
|
|||||||
{
|
{
|
||||||
$pages = (array)Settings::getJson(OnePage::HOMEPAGE_PAGES_SETTINGS_KEY);
|
$pages = (array)Settings::getJson(OnePage::HOMEPAGE_PAGES_SETTINGS_KEY);
|
||||||
|
|
||||||
$page = Content::findOrFail($id);
|
$page = $this->content->getOne($id);
|
||||||
|
|
||||||
if (!in_array($id, $pages)) {
|
if (!in_array($id, $pages)) {
|
||||||
return redirect()
|
return redirect()
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ Improvement: http://www.html5rocks.com/en/tutorials/dnd/basics/
|
|||||||
'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', ['id' => $homepage->id]).'" class="btn btn-secondary btn-sm"><i class="fa fa-fw fa-pencil"></i></a>'
|
'footer' => '<a href="'.route('content.edit', ['url' => $homepage->url]).'" class="btn btn-secondary btn-sm"><i class="fa fa-fw fa-pencil"></i></a>'
|
||||||
])
|
])
|
||||||
@else
|
@else
|
||||||
<div class="alert alert-warning">@lang('template::admin/setHomepage.noHomepageSet')</div>
|
<div class="alert alert-warning">@lang('template::admin/setHomepage.noHomepageSet')</div>
|
||||||
@@ -38,7 +38,7 @@ Improvement: http://www.html5rocks.com/en/tutorials/dnd/basics/
|
|||||||
'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' => '
|
||||||
<a href="'.route('content.edit', ['id' => $allPages[$pageId]->id]).'" class="btn btn-secondary btn-sm"><i class="fa fa-fw fa-pencil"></i></a>
|
<a href="'.route('content.edit', ['url' => $allPages[$pageId]->url]).'" class="btn btn-secondary btn-sm"><i class="fa fa-fw fa-pencil"></i></a>
|
||||||
<a href="'.route('template.homepage.removePage', ['id' => $allPages[$pageId]->id]).'" class="btn btn-warning confirm btn-sm" data-message="'.trans('template::admin/setHomepage.reallyRemovePage').'"><i class="fa fa-fw fa-trash confirm"></i></a>
|
<a href="'.route('template.homepage.removePage', ['id' => $allPages[$pageId]->id]).'" class="btn btn-warning confirm btn-sm" data-message="'.trans('template::admin/setHomepage.reallyRemovePage').'"><i class="fa fa-fw fa-trash confirm"></i></a>
|
||||||
'
|
'
|
||||||
])
|
])
|
||||||
|
|||||||
Reference in New Issue
Block a user