diff --git a/app/Helpers/CurrentTemplate.php b/app/Helpers/CurrentTemplate.php index 30489d6b..2dfaa2cc 100644 --- a/app/Helpers/CurrentTemplate.php +++ b/app/Helpers/CurrentTemplate.php @@ -1,6 +1,44 @@ 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; + } } \ No newline at end of file diff --git a/app/Http/Controllers/Admin/Contents/CreateNewContent.php b/app/Http/Controllers/Admin/Contents/CreateNewContent.php index e5ce6257..abfc43db 100644 --- a/app/Http/Controllers/Admin/Contents/CreateNewContent.php +++ b/app/Http/Controllers/Admin/Contents/CreateNewContent.php @@ -3,8 +3,9 @@ namespace App\Http\Controllers\Admin\Contents; use App\Enumerations\ContentStatuses; use App\Events\CreateNewContent as CreateNewContentEvent; -use App\Http\Requests\CreateNewContentRequest; +use App\Helpers\CurrentTemplate; use App\Http\Controllers\Admin\Controller; +use App\Http\Requests\CreateNewContentRequest; use App\Models\Content; use App\Models\File; use App\Models\Module; @@ -89,9 +90,6 @@ class CreateNewContent extends Controller public function postNew(CreateNewContentRequest $request, $moduleId) { $page = new Content(); - $template = Module::where('is_template', true) - ->where('enabled', true) - ->first(); try { $module = Module::findOrFail($moduleId); } catch (NotFoundHttpException $e) { @@ -127,7 +125,7 @@ class CreateNewContent extends Controller // 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 call_user_func_array([$module->handler, 'createNew'], [&$page, $request]); diff --git a/app/Http/Controllers/Admin/Contents/EditContent.php b/app/Http/Controllers/Admin/Contents/EditContent.php index be430ce7..00201cc0 100644 --- a/app/Http/Controllers/Admin/Contents/EditContent.php +++ b/app/Http/Controllers/Admin/Contents/EditContent.php @@ -8,6 +8,7 @@ use App\Events\EditContent as EditContentEvent; use App\Events\MakeDraftFromContent; use App\Events\PublishContent; use App\Events\SetHomepage; +use App\Helpers\CurrentTemplate; use App\Http\Controllers\Admin\Controller; use App\Http\Requests\EditContentRequest; use App\Http\Requests\Request; @@ -56,11 +57,6 @@ class EditContent extends Controller $page = Content::findOrFail($id); $page->module_settings = json_decode($page->module_settings); - // select template - $template = Module::where('is_template', true) - ->where('enabled', true) - ->first(); - // get module ID $module = Module::where('handler', $page->module_handler) ->firstOrFail(); @@ -81,7 +77,7 @@ class EditContent extends Controller } // 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); @@ -117,10 +113,6 @@ class EditContent extends Controller * @var $page Content */ $page = Content::findOrFail($id); - - $template = Module::where('is_template', true) - ->where('enabled', true) - ->first(); } catch (NotFoundHttpException $e) { // log attempt of invalid edit @@ -136,7 +128,7 @@ class EditContent extends Controller $file = $page->uploadTitlePhoto($request); // 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->parentPage = $request->parentPage ? $request->parentPage : null; diff --git a/app/Http/Controllers/Visitor/ContentPage.php b/app/Http/Controllers/Visitor/ContentPage.php index 4b66d127..4d85bfce 100644 --- a/app/Http/Controllers/Visitor/ContentPage.php +++ b/app/Http/Controllers/Visitor/ContentPage.php @@ -2,11 +2,9 @@ namespace App\Http\Controllers\Visitor; +use App\Helpers\CurrentTemplate; use App\Http\Controllers\Controller; -use App\Http\Requests; use App\Models\Content; -use App\Models\Module; -use App\Models\Template; use Illuminate\Support\Facades\Auth; class ContentPage extends Controller @@ -61,10 +59,8 @@ class ContentPage extends Controller // get handler $handler = new $page->module_handler; - $template = Module::where('is_template', true)->where('enabled', true)->first(); - // do something template-specific - call_user_func_array([$template->handler, 'beforeRender'], [&$page]); + call_user_func_array([CurrentTemplate::handler(), 'beforeRender'], [&$page]); // render page return $handler->render($page, '');