FEATURE: make shortcut for getting currently installed template
This commit is contained in:
@@ -1,6 +1,44 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\Helpers;
|
namespace App\Helpers;
|
||||||
|
|
||||||
class CurrentTemplate {
|
|
||||||
|
|
||||||
|
use App\Models\Module;
|
||||||
|
|
||||||
|
class CurrentTemplate
|
||||||
|
{
|
||||||
|
protected static $template;
|
||||||
|
protected static $initialized = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter for currently set template
|
||||||
|
*
|
||||||
|
* @return Module
|
||||||
|
*/
|
||||||
|
public static function get()
|
||||||
|
{
|
||||||
|
if (!self::$initialized) {
|
||||||
|
self::$template = Module::where('is_template', true)
|
||||||
|
->where('enabled', true)
|
||||||
|
->first();
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$template;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shortcut for getting template handler
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws \ErrorException
|
||||||
|
*/
|
||||||
|
public static function handler()
|
||||||
|
{
|
||||||
|
$template = self::get();
|
||||||
|
|
||||||
|
if (!$template) {
|
||||||
|
throw new \ErrorException('No template selected, no handler available!');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $template->handler;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -3,8 +3,9 @@ namespace App\Http\Controllers\Admin\Contents;
|
|||||||
|
|
||||||
use App\Enumerations\ContentStatuses;
|
use App\Enumerations\ContentStatuses;
|
||||||
use App\Events\CreateNewContent as CreateNewContentEvent;
|
use App\Events\CreateNewContent as CreateNewContentEvent;
|
||||||
use App\Http\Requests\CreateNewContentRequest;
|
use App\Helpers\CurrentTemplate;
|
||||||
use App\Http\Controllers\Admin\Controller;
|
use App\Http\Controllers\Admin\Controller;
|
||||||
|
use App\Http\Requests\CreateNewContentRequest;
|
||||||
use App\Models\Content;
|
use App\Models\Content;
|
||||||
use App\Models\File;
|
use App\Models\File;
|
||||||
use App\Models\Module;
|
use App\Models\Module;
|
||||||
@@ -89,9 +90,6 @@ class CreateNewContent extends Controller
|
|||||||
public function postNew(CreateNewContentRequest $request, $moduleId)
|
public function postNew(CreateNewContentRequest $request, $moduleId)
|
||||||
{
|
{
|
||||||
$page = new Content();
|
$page = new Content();
|
||||||
$template = Module::where('is_template', true)
|
|
||||||
->where('enabled', true)
|
|
||||||
->first();
|
|
||||||
try {
|
try {
|
||||||
$module = Module::findOrFail($moduleId);
|
$module = Module::findOrFail($moduleId);
|
||||||
} catch (NotFoundHttpException $e) {
|
} catch (NotFoundHttpException $e) {
|
||||||
@@ -127,7 +125,7 @@ class CreateNewContent extends Controller
|
|||||||
|
|
||||||
// let template to modify request and content page
|
// let template to modify request and content page
|
||||||
|
|
||||||
call_user_func_array([$template->handler, 'beforeSave'], [&$page, $request]);
|
call_user_func_array([CurrentTemplate::handler(), 'beforeSave'], [&$page, $request]);
|
||||||
|
|
||||||
// save module-specific stuff
|
// save module-specific stuff
|
||||||
call_user_func_array([$module->handler, 'createNew'], [&$page, $request]);
|
call_user_func_array([$module->handler, 'createNew'], [&$page, $request]);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ use App\Events\EditContent as EditContentEvent;
|
|||||||
use App\Events\MakeDraftFromContent;
|
use App\Events\MakeDraftFromContent;
|
||||||
use App\Events\PublishContent;
|
use App\Events\PublishContent;
|
||||||
use App\Events\SetHomepage;
|
use App\Events\SetHomepage;
|
||||||
|
use App\Helpers\CurrentTemplate;
|
||||||
use App\Http\Controllers\Admin\Controller;
|
use App\Http\Controllers\Admin\Controller;
|
||||||
use App\Http\Requests\EditContentRequest;
|
use App\Http\Requests\EditContentRequest;
|
||||||
use App\Http\Requests\Request;
|
use App\Http\Requests\Request;
|
||||||
@@ -56,11 +57,6 @@ class EditContent extends Controller
|
|||||||
$page = Content::findOrFail($id);
|
$page = Content::findOrFail($id);
|
||||||
$page->module_settings = json_decode($page->module_settings);
|
$page->module_settings = json_decode($page->module_settings);
|
||||||
|
|
||||||
// select template
|
|
||||||
$template = Module::where('is_template', true)
|
|
||||||
->where('enabled', true)
|
|
||||||
->first();
|
|
||||||
|
|
||||||
// get module ID
|
// get module ID
|
||||||
$module = Module::where('handler', $page->module_handler)
|
$module = Module::where('handler', $page->module_handler)
|
||||||
->firstOrFail();
|
->firstOrFail();
|
||||||
@@ -81,7 +77,7 @@ class EditContent extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// modify data for edit form according to installed template
|
// modify data for edit form according to installed template
|
||||||
call_user_func_array([$template->handler, 'beforePopulatingEditForm'], [&$page]);
|
call_user_func_array([CurrentTemplate::handler(), 'beforePopulatingEditForm'], [&$page]);
|
||||||
|
|
||||||
$history = $this->history->getStructuredHistoryOf($page);
|
$history = $this->history->getStructuredHistoryOf($page);
|
||||||
|
|
||||||
@@ -117,10 +113,6 @@ class EditContent extends Controller
|
|||||||
* @var $page Content
|
* @var $page Content
|
||||||
*/
|
*/
|
||||||
$page = Content::findOrFail($id);
|
$page = Content::findOrFail($id);
|
||||||
|
|
||||||
$template = Module::where('is_template', true)
|
|
||||||
->where('enabled', true)
|
|
||||||
->first();
|
|
||||||
} catch (NotFoundHttpException $e) {
|
} catch (NotFoundHttpException $e) {
|
||||||
|
|
||||||
// log attempt of invalid edit
|
// log attempt of invalid edit
|
||||||
@@ -136,7 +128,7 @@ class EditContent extends Controller
|
|||||||
$file = $page->uploadTitlePhoto($request);
|
$file = $page->uploadTitlePhoto($request);
|
||||||
|
|
||||||
// let template to modify request and content page
|
// let template to modify request and content page
|
||||||
call_user_func_array([$template->handler, 'beforeSave'], [&$page, $request]);
|
call_user_func_array([CurrentTemplate::handler(), 'beforeSave'], [&$page, $request]);
|
||||||
|
|
||||||
$request->url = Str::slug($request->url);
|
$request->url = Str::slug($request->url);
|
||||||
$request->parentPage = $request->parentPage ? $request->parentPage : null;
|
$request->parentPage = $request->parentPage ? $request->parentPage : null;
|
||||||
|
|||||||
@@ -2,11 +2,9 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers\Visitor;
|
namespace App\Http\Controllers\Visitor;
|
||||||
|
|
||||||
|
use App\Helpers\CurrentTemplate;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests;
|
|
||||||
use App\Models\Content;
|
use App\Models\Content;
|
||||||
use App\Models\Module;
|
|
||||||
use App\Models\Template;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class ContentPage extends Controller
|
class ContentPage extends Controller
|
||||||
@@ -61,10 +59,8 @@ class ContentPage extends Controller
|
|||||||
// get handler
|
// get handler
|
||||||
$handler = new $page->module_handler;
|
$handler = new $page->module_handler;
|
||||||
|
|
||||||
$template = Module::where('is_template', true)->where('enabled', true)->first();
|
|
||||||
|
|
||||||
// do something template-specific
|
// do something template-specific
|
||||||
call_user_func_array([$template->handler, 'beforeRender'], [&$page]);
|
call_user_func_array([CurrentTemplate::handler(), 'beforeRender'], [&$page]);
|
||||||
|
|
||||||
// render page
|
// render page
|
||||||
return $handler->render($page, '');
|
return $handler->render($page, '');
|
||||||
|
|||||||
Reference in New Issue
Block a user